文档介绍:阿 May 的 SCJP 学 for 1 1 (010); 输出八进制数 010 的十进制值 8 注意是数字 0 开头, 不是字母 o 16 进制以 0x或 0X 开头 class ValHold{ public inti= 10; } public class ObParm{ public void amethod(){ ValHold v= new ValHold(); another(v); (); } public void another(ValHold v){ = 20; ValHold vh= new ValHold(); v =vh; (); } public static void main(String[] argv){ ObParm o= new ObParm(); (); }} 此题的答案是 10 20 为什么不是 10 10 呢? 这样解释吧,按照 sun 官方的说法:当一个引用变量作为参数传递给一个方法时, 在这个方法内可以改变变量的值,即改变引用指向的对象, (本题中将 vh 赋给 v )但是方法的调用结束后,改变量恢复原来的值,即变量仍然指向原来的对象。(即 another(v) 调用结束之后, v 又回复到第一次 ValHold v= new ValHold(); 时指向的地址空间。) 但是如果在方法内改变了引用指向的对象的数据( 属性), 那么当方法的调用结束后,尽管引用仍然指向原来的对象,这个对象的某个属性已经被改变了( v的i 值在执行 =20 的时候就已经被改变了, 所以调用 another 结束后, 已经变成了 20 ) 重载 overload 方法不能用返回值判断, 而应当以参数判断( 有无参数、参数类型、参数个数、参数排列顺序) public class InOut{ String s= new String("Between"); public void amethod(final int iArgs) { int iam; class Bicycle{ Bicycle() { (s); // 这两句话可以,也就是说可以访问 s (iArgs); //和 final int 常量//(iOther); }} new Bicycle(); } public void another() { int iOther; } Inner class I nner class 能够存取外部类的所有实例变量---- 无论这些实例变量有什么样的存取控制符(比如 private ), 就像类中的方法能够存取方法所在类的所有变量一样; 如果 inner class 定义在方法中,则 inner class 能够存取方法所在的类中的实例变量,也能存取该方法中的局部变量,但该局部变量必须是 final 的,也就是只能访问方法中的常量.( 上面所说的都是普通内部类, 不是静态内部类的情况) 阿 May 的 SCJP 学 for 2 2 public static void main(String[] args) { InOut inout= new InOut(); (22); }} float f=1/3; float f=10; // 输出 int i=1/3; intx= (int)(); double d=999d; 都是合法的表达式如果将 float f=1/3; 改成 float f=1/3 f;则 f= i=0 d= f= Integer 没有 setValue 方法。 instanceof Tests whether an instance derives from a particular class or interface 。注意:实现了某接口的类的对象也是该接口的实例; 某类的对象也是该类父类的实例。 Interfaces cannot have constructors 接口没有构造函数接口中的所有数据成员都是 static final ,即静态常量(这两个关键字可以不写)但必须给常量赋初值; 接口中的所有方法都只有定义没有实现细节,并且全部为 public (可以不写出来) ,所以接口中的方法全部是抽象方法接口比抽象类更抽象 Runnable 接口只有 run() 一个方法注意:不带参数 X 位的数据类