1.float f4[] = new float[] { 1.0f. 2.0f. 3.0f},这样写数组定义是错误的,因为数组元素隔离应该用“逗号”而不是“点”。
2.一个对象被释放(没在被任何对象引用)后,垃圾收集器并不会立刻回收它,而是等到运行该段代码的示例下次被被垃圾收集器扫描的时候才回收该对象的。
3.如果你用==去比较两个字符串对象,你实际上是在比较两个字符串是否是引用同一个对象,而不是比较他们的内容是否相等;比较内容是否相等使用equal方法是最简单的。
4.jAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
5.方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载 Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。换句话说:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
6.请特别注意, finally 块区域中的代码虽然在 return 语句之前被执行,但是 finally 块区域中的代码是不能够通过重新赋值的方式来改变 return 语句的返回值。
7.catch(X x) can catch subclasses of X.“catch语句能够捕捉子类异常”是正确的。
8.Assertion expressions should not contain side effects.断言表达式不能包含边界效应。
9.若Switch语句中没有使用break或continue语句则满足某个条件后的其他语句也同样会执行。
10.Switch中的表达式必须是和int相容的表达式(如float类型就是错误的。)
11.如果两个对象互相引用,则当他们形成隔离区使则可以被垃圾回收器回收!!!。
12.如果一个for循环中存在一个switch语句,则在该switch语句中的break语句只退出当前switch。
13.默认的构造函数调用父类的无参数构造函数。
14.注意考试陷阱“0”和“O”的区别。如return 0是错误的return o才是正确的。
15.If语句中只能使用布尔表达式,不能向switch语句一样使用整型值。
16.方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载,java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。
17.线程的执行是从方法“run( )”开始的,该方法是由系统调用的。程序员手工调用方法start(),使线程变为可运行状态。
18.静态方法不能直接访问非静态成员
19.native关键字指明是对本地方法的调用,在JAVA中是只能访问但不能写的方法,它的位置在访问权限修饰语的后面及返回值的前面
20.main()方法的参数是字符串数组,参数名可以任意定义。
21.方法覆盖时,子类方法的访问权限不能小于父类方法的访问权限。
22.用“==”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编译出错。
23.构造函数没有方法,他们没有返回值且不可被继承。
24.FlowLayout的特性是其中的控件大小不随着容器尺寸的变化而变化,但控件的相对位置会有所改变。
25.Java中的标识符是以字符开头,字符包括字母、下划线“_”、美圆符“$”。不能以数字开头,也不能是Java关键字。
26.整型变量默认初始化值为0。
27.自动变量(没有public、private等修饰符的变量)不能被static修饰。
28.int a[][] = new int[][]定义数组是不对的而这样定义数组int []a[] = new int[10][10]是对的。
29.JAVA语言的任何关键字都没有大写(打头)字母。
30.访问修饰符
private:方法或变量只能在该类内部才能被访问
protected:方法或变量只能在同一个包里面的类或该类的子类才能访问
public:方法或变量其他任何类都可以访问
31.native:标识一个变量是使用平台不独立的语言编写的。
32.throw:扔出的是异常对象,在方法中使用;throw:扔出的是异常类,在方法定义时使用。
33.byte:8位有符号值(-27~+27-1)
char:16位无符号值(0~216-1)
short:16位有符号值(-215~+215-1)
int:32位有符号值(-231~+231-1)
float:32位有符号值(-231~+231-1)
long:64位有符号值(-263~+263-1)
double:64位有符号值
34.const和goto是JAVA中不用的两个保留字。其中public const用static final代替其功能
35.根据JAVA语言规范,null, true, and false只是(文字的)常量,不是关键字
36.JAVA语言全部关键字列表
37.JAVA语言对十六进制中的字母不区分大小写即大小写表示的值是一样的。
38.float f = 23.9067985表达式是错误的,因为floating-pointer(浮点值)默认数值是double类型,把他赋给一个float类型的变量会出现编译错误;以下两种形式是对的:float f = 23.9067985F或double f = 23.9067985
39.boolean类型变量的值只能是true和false;同理if语句的条件表达式也必须是boolean类型。
40.可以赋给char类型变量一个整型值,如一下语句是合法的:
char c = (char) 70000; // The cast is required;
char d = (char) -98; // Ridiculous, but legal
备注:0~65535范围内的值可以直接赋,这个范围以外的值需要使用char()来转换后在赋值。
41.这样的数组声明也是对的如:String[] ManagerName [];另外在数组声明语句中绝对不能
出现数组长度的定义。整型数组默认元素值是0。new语句中一定要给出数组的长度!如下定义是错误的:int []Test = new int[];对于多维数组,则在new语句中最少要给出第一个长度参数值,如int[][] ratings = new int[3][]是对的,int[][] ratings = new int[][]和int[][] ratings = new int[][3]就是错误的 |
|