文章列表
位运算:
左移 "<<" 右移 ">>" 无符号右移 ">>>"
计算机里内存中数据的是以补码形式出现
5 << 2 = 20
5的补码为:
0000 0000 0000 0000 0000 0000 0000 0101
<<2
0000 0000 0000 0000 0000 0000 0001 0100
--> 20
-5 << 2
-5的补码:
1111 1111 1111 1111 1111 1111 1111 101 ...
- 2009-06-29 15:17
- 浏览 725
- 评论(0)
JDK1.5出来的东西,提供了一个更好的方式来定义常量.枚举也就是相当于java当中的一个类,一个类型.也可以在里面加入构造子,当必须定义为私有的.也可定义属性,方法如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package enumpkg;
/**
*
* @author Administrator
*/
public enum Action {
SHOOT("SHOOT&qu ...
- 2009-05-22 17:26
- 浏览 727
- 评论(0)
java中的泛型提供了在编译时期的类型检查,这让java语言更具健壮.
在泛型没有出来之前,也就是JDK1.5之前,往往使用的是Object这个根类来进行接口的声明.然后进行具体的类型转化.
更多的形式如下:
foo.setFoo(new Integer(5));
Integer i =(Integer)foo.getFoo();
而泛型的出现则省去了这一环节.典型的就是以一个参数如T 进行类型的申明.在实例与具体操作时进行类型的指定.如Foo<T>
当我们申明了:
Foo<Integer> foo1 = null;
Foo<Boolean> foo2 ...
- 2009-05-22 16:42
- 浏览 721
- 评论(0)
java的反映机制提供了调用方法的方法.在非映射代码中,如果不实例化就无法调用(非静态)方法.映射机制提供了java.lang.reflect.Method.invoke()方法.如下示例:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Locale;
import static java.lang.System.out;
import static java.la ...
- 2009-05-16 13:57
- 浏览 1025
- 评论(0)
可能的方法的修饰符:
访问修饰符:public ,protected,private;
限制一个实例:static;
禁止修改:final;
要求重写:abstract;
线程安全:synchronized;
指明实现实现其它语言:native;
要求进行准确浮点运算行为:strictpf.
以下示例获取到被给方法名的修饰符,也显示了是否为synthetic(编译器生成的).
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import static java.lang.System.out;
...
- 2009-05-16 11:38
- 浏览 1022
- 评论(0)
java.lang.reflect.Method 类提供了访问方法的修饰符,返回类型,方法参数,注解,和可能抛也的异常的API.也可以调用方法.:
获取方法类型信息:
如何来列举申明在类中的方法,以及如何获取其类型信息.
一个方法的申明包括方法名,修饰符,参数,返回类型,以及可能抛也的异常.我们可能通过java.lang.reflect.Method来获取.如下示例:
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import static java.lang.System.out;
public ...
- 2009-05-16 10:50
- 浏览 776
- 评论(0)
当给了一个类的实例时,它可以去使用映射去配置这个类字段的值.如果在正常的情况下不可用时,这将会为我们完成工作.如下:
import java.lang.reflect.Field;
import java.util.Arrays;
import static java.lang.System.out;
enum Tweedle {DEE,DUM}
public class Book {
public long chapters = 0;
public String[] characters = {"Alice", "White Rab ...
- 2009-05-16 00:44
- 浏览 798
- 评论(0)
一个字段的修饰符可能也现以下:
访问修饰符:public,protected,private;
管理运行时的修饰符:transient,volatile;
限制一个实例:static
禁止修改:final
注解:Annotations
如下:
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import static java.lang.System.out;
enum Spy { BLACK , WHITE }
public class FieldModifierSpy {
...
- 2009-05-16 00:23
- 浏览 1123
- 评论(0)
transient
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
volatile
在多线程编程中,可以让多个线程共享一个成员.
- 2009-05-15 23:18
- 浏览 857
- 评论(0)
一个字段包括基本数据类型和引用数据类型.基本数据类型:boolean,byte,short,int long,char,float,double. 一个引用型的类型可以是java.lang.Object直接,间接的子类,以及接口,数组,枚举类型.
以下示例了如何来获取字段类型.
import java.lang.reflect.Field;
import java.util.List;
import static java.lang.System.out;
public class FieldSpy<T> {
public boolean[][] b = {{fa ...
- 2009-05-14 22:30
- 浏览 1367
- 评论(0)
一个类可以被申明一个到多个影响它运行时行为的修饰符.
访问修饰符:public,protected,private;
需要重写的修饰符:abstract;
限制一个实例的修饰符的static;
禁止被修改的修饰符:final;
强制准确的浮点行为的strictfp;
注解
这些修饰符不是对所有的类都适合.如一个接口就不能为final,一个枚举不能是抽象的.java.lang.reflect.Modifier包含了所有可能的修饰符申明.
import java.lang.annotation.Annotation;
import java.lang.reflect.Modifier;
...
- 2009-05-14 20:21
- 浏览 1060
- 评论(0)
对于每一个类型对象,java虚拟机都会实例一个不变的java.lang.Class的对象,用来提供运行时的信息检查.Class也提供了创建新的classes和对象的能力.更重要的是它是映射API的一个入口点.
在java.lang.reflect包下所有的类以及java.lang.reflect.ReflectPermission(当然它也是类),都没有一个公共的构造子.为了获取这些类的对象,Class类提供了相应的方法.所以我们说它是映射API的一个入口,正是基于此.
这里有几种方法来获取一个Class
Object.getClass()
如果一个对象实例可用,那么一个最简单的方法去获取它的 ...
在java中你可以在一个类中定义一个类,这叫做嵌套类.分为两种,内部类(没有static 修饰)和静态嵌套类(含有static修饰).
内部类
因为一个内部类的实例中总是含有一个外部类实例的引用所以同部类可以任意的使用外部类的的成员变量与方法.又因为内部类总是与一个实例想联系所以内部类不能含有任何静态的成员.如下就是定义了一个内部类的的格式:
class OuterClass {
/**
*外部类的成员
/*
class InnerClass {
/**
*内部类的成员
/*
}
...
java中当应用程序企图在需要对象的地方使用null时,就会抛出NullPointerException的运行时异常.包括以下几种情况:
* 调用 null 对象的实例方法。
例如一个String类型的变量str 我们没有其进行赋初始值,默认为null,此时如果我们调str.equals("quit")时就会抛出 NullPointerException异常.如果我们换一个方式"quit".equals(str)则可以避免NullPointerException异常.
* 访问或修改 null 对象的字段。
* 将 null 作为一个数组,获得其 ...
在java中,数据分为基本数据和引用型数据(也就是用new关键字创建的),java对这两种数据的传递的方式是不一样的,对于基本数据是传值而对于引用型数据则传递的是数据的引用.
一个整形的数组我们用冒泡排序法进行排序,以下是两种示例代码:
第一种:
public class BubbleSort {
public static void main(String[] args) {
int[] arr ={4,6,2,7,3,1,5,8};
int n = arr.length;
for(int i = 0; i < n;i++) {
...