整理的时候,书被借走了,不保证全部正确,记不清楚的地方都 说明了一下。不过大多数还是没有问题的,:)大牛就不用看了, 这是面向一般读者的,呵呵 里面有些术语有可能比较怪些,,不过大家应该还是能够理解的 1,初始化 类变量自动初始化为0或者null,局部变量使用前一定要初始化 2,主类型过载 类型匹配顺序:按照byte->short->char->int->long->float->double 顺序匹配。一种主类型只能匹配参数范围不小于其本身和其本身 范围最接近的函数 即有int i;1.f(short s);2.f(long l);i只能适用于第2个f函数 如果是常数,则编译器作为int处理 3,主类型计算结果的类型 和最大范围计算子的类型一致,但是最小也要是int,即byte+byte 结果为int型。 4,short型和char型不能互相赋值(因为short有符号,char无符号) 5,package一定要放在java文件第一行(除注释空行外) 6,import只能放在第一行或者package下面 7,多个import的package里面如果有同名class,使用时必须指定package 8,interface中只能有方法宣言和定数 9,class实现interface必须实现全部方法 10,同一java文件中class和interface只能有一个public 11,为了宣言定数,在变量前加final修饰子,变量不可改变,但是object的 属性可以改变(有点忘记了,请确认,:)) 12,配列不能在宣言的时候用char arr[12];形式指定,必须要用new指定 大小。指定完毕后自动初期化;也可以new的时候用{0,0,0}形式指定 13,如果一个object为null,使用其属性或者方法,产生NullPointerException 14,如果使用一个越界index访问配列,产生ArrayOfBoundsException 15,配列长用配列名.length 16,constructor如果有返回值,编译器作为一般方法看待 17,constructor里面如果要用super(..)和this(..),必须放在第一行,而且只 能用一次 18,如果没有显式调用super和this,编译器自动在第一行插入super();要求超类 必须存在无参数的constructor 19,如果没有显式声明constructor,编译器自动生成默认无参数constructor。一旦 声明,则无默认constructor 20,修饰子(访问范围大小顺序) public 完全公开 protected 同一package或者子类中 无 同一package private本class 21,override的方法不能使访问范围缩小 即父类中public方法不能被protected override 22,static方法不能被override?确认 23,constructor不能被继承 24,抽象class不能同时被static修饰子修饰 25,native:方法被java以外其它语言实现 26,interface里面: 方法默认为public abstract修饰 变量默认为public static final修饰 27,abstract和final,abstract和static,abstract和private不能同时指定 28,&&,||为短路条件运算符 &,|为不短路条件运算符 29,switch()只能判断byte,short,int,char(long,float,double不行) 30,Exception包括可check Exception和Runtime Exception 可check Exception可以被编译器检查,Runtime Exception不被编译器检查,但是 可以被catch捕捉 31,try{}catch{}catch{}多个catch语句按照声明顺序检查,一旦被捕捉,以后catch 就直接跳过,超类Exception可以捕捉子类Exception 32,try中即使有return,finally段也会被执行 33,method声明用throws,抛出Exception用throw 34,强制垃圾回收,system.gc();促使垃圾回收,但不是马上回收 35,finalize();在垃圾回收的时候自动调用;建议显式调用super.finalize(); 36,main方法的args[0]是第一个参数,例如:java Test a b c,args[0]是"a" 37,类中static段中不能throw异常,constructor里面不能throw异常 38,对于除零:整数运算抛出ArithmeticException 实数运算不抛出异常;返回Infinity或者-Infinity 39,instanceof运算子,is的意思,例如:betty instanceof girl,返回true,:) 40,override和overload的区别 很简单,不多写了 41,inner class(内部类:重点注意) nest class:class内部定义的class 包括(member class:作为class的member定义的class local class:作为method局部变量定义的class anonymous class:用new生成的没有名字的class) 42,inner class:除了static member class以外的所有nest class总称 inner class中不能定义static段 inner class里面不能定义没有final修饰子修饰的static变量 inner class不能定义interface?(记不清了,自己确认一下) 43,member class的使用方法:TopClass.memberClass 44,static宣言的member class的生成方法: TopClass的instance.new memberClass()或者 new TopClass.memberClass(); 45,local class不能显式被修饰子修饰 46,local class只能存取被final修饰子修饰的上级变量(注意) 47,anonymous class instance生成方法: new SuperClass名(){.......}或者 new Interface名(){......} 48,anonymous class 不能定义sub class(因为自己没有名字) 不能定义为abstract class 不能定义constructor(注意) 49,Thread生成方法 继承java.lang.Thread 实现java.lang.Runnable interface,然后用new Thread(实现Runnable接口 的class)来生成Thread instance 50,Thread的join方法,等待Thread结束 51,Object的wait()方法和notify(),notifyAll()方法(线程同期化,自己好好 看看) 52,同期化保留字:synchronized(有可能要求拼写) 53,如果用synchronized修饰static方法,static写在前头 54,String和StringBuffer区别:String初始化后不可改变,StringBuffer可以改 变 String s1="hello";String s2="hello"; if (s1==s2){System.out.println("OK");} 执行结果是打印出OK 55,>>运算符是高位填充符号位,是为算术移位 >>>运算符高位填0,是为逻辑移位 其余有关swt,util,IO之类的东东,基本上都是死记硬背的,这里 就不多说了 最后祝大家顺利通过SCJP考试,:)
|