java基础
1 . public、private、static都不能修饰局部变量。
2 . 用“==”进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编译出错。
3 . JAVA语言的任何关键字都没有大写(打头)字母。
4 . 访问修饰符
private:方法或变量只能在该类内部才能被访问。
protected:方法或变量只能在同一个包里面的类或者是其子类才能访问。
public:方法或变量其他任何类都可以访问。
5 . native:标识一个变量是使用平台不独立的语言编写的。
6 . throw:扔出的是异常对象,在方法中使用;throws:扔出的是异常类,在方法定义时使用。
7 . 根据JAVA语言规范,null, true, andfalse只是(文字的)常量,不是关键字。
8 . JAVA语言对十六进制中的字母不区分大小写即大小写表示的值是一样的。
9 . float f =23.9067985表达式是错误的,因为floating-pointer(浮点值)默认数值是double类型,把他赋给一个float类型的变量会出现编译错误;以下两种形式是对的: floatf = 23.9067985F或double f = 23.9067985
10 . boolean类型变量的值只能是true和false;同理if语句的条件表达式也必须是boolean类型。
11 . 可以赋给char类型变量一个整型值,如一下语句是合法的:
char c =(char) 70000; // The cast is required;
char d = (char) -98; // Ridiculous, butlegal
备注:0~65535范围内的值可以直接赋,这个范围以外的值需要使用char()来转换后在赋值。
12 . 这样的数组声明也是对的如:String[] ManagerName[];另外在数组声明语句中绝对不能
出现数组长度的定义。整型数组默认元素值是0。new语句中一定要给出数组的长度!如下定义是错误的:int []Test = newint[];对于多维数组,则在new语句中最少要给出 第一个长度参数值,如int[][] ratings = newint[3][]是对的,int[][] ratings = new int[][]和int[][] ratings = newint[][3]就是错误的。
13 . 访问数组元素时若元素标号超出了数组元素界限,则只会出现运行异常,不会出现编译异常,如int [] TestArray = newint[5],若代码中出现TestArray[5]则编译不会出错, 直到程序运行到还行时才会出现运行错误。
14 . 直接调用数组的length属性就可显示数组的长度(即数组拥有多少个元素);
15 . 如果一个数组被声明为接口类型,则数组元素可以引用任何该接口的类的实例。
16 . 子类的数组变量可以直接赋(值)给父类的数组变量如:
Car[] cars;
Honda[] cuteCars = new Honda[5];
cars = cuteCars; // OK because Honda isa type of Car
17 . 维度不同的数组变量之间(即使符合IS-A标准)不能互相赋值。
18 . 变量没有被初始化就使用会出现编译错误(编译不通过)如:
stringstrTemp;
system.out.println(strTemp.toLowerCase);
19 . 数组定义(用new方法构造该数组)时,(数组元素)默认初始化为数组类型的默认值。
20 . 在方法或方法参数列表中定义的变量叫本地变量(Localvariable),注意:本地变量在使用之前一定要手动赋值(因为它不会象成员变量那样被构造函数自动初始化),否则 编译不会通过,即使是在判断语句中也不能使用未被手动赋值的本地变量。【编者按:实例(引用)变量经常会被初始化为null。
21 . 即使在判断分支中只有一个分支使用了为手动初始化的本地变量,而且该分支也不可能会执行,系统编译时仍然会报错。
22 . 主函数public static void mani(string[]args){}中的参数数组名不一定非得取名“args”。
23 . 当一个对象数组被初始化后,在数组中的对象不会自动被初始化,但是所有的引用都会得到默认值null。JAVA语言中boolean变量的默认值是false。
24 . JAVA语言中的所有数字都是带符号的(signed不是JAVA语言的关键字)。
(1.) 可以通过扩展一个实际(普通)类来生成一个抽象类(Abstract Class);
(2.) 类和接口不能被标记为static;同时类(非嵌套类)和接口也不能被标记成protected;
(3.) Transient只能用来修饰变量(接口中的变量不能使用protected或transient来修饰,接口中的方法不能使用static和final来修饰);
(4.) 接口中定义的变量都默认是defaultfinal&static修饰的,故一旦被初始化将不能再被修改;
(5.) 若一个抽象类实现一个接口,在该抽象类的定义中可以不存在接口的任何实现;
(6.) 位与(&)比位或(|)有较高的优先级;
(7.) 当数组作为方法的参数时,若在方法中改变了数组的值,实际数组的值也将改变;
(8.) Case语句中的表达式必须是常量(或final类型的变量),static类型的都不行!!
(9.) If…else if 语句中,只要有一个判断匹配上了,下面(else if 语句)的就不再判断;
(10.) Continue语句只能用在loop结构中;
(11.) 一旦程序中仍出运行异常(RunException),则finally块语句就马上会执行,程序就会终止;如果没有方法处理该异常,则finally语句会在异常向下传播之前先执行;如果有方法处理该异常,则会先执行异常处理方法然后再执行finally语句;
(12.) 断言只能仍出错误而不仍出异常(assertions throw errors and not exceptions,);
(13.) 断言错误(AssertionErrors)是不能够被处理的;
(14.) 断言语句冒号后面的部分必须是一个值(即使是返回值为void的方法都不行)!!
(15.) 构造函数不能有返回值;
(16.) 原始数据类型(值)不能显示转化(case)为对象类型?
(17.) ParseInt(…)需要带一个字符串参数;
(18.) 不是同一个类层次上的对象不能通过equals方法比较;
(19.) Boolean字符串大小写是不敏感的;
(20.) HashTable是唯一一个能提供synchronized方法的类;
(21.) 本地方法内的(local-method)inner类可以标记为“abstract”;
(22.) staticint i = 0;这样声明变量是不对的;
(23.) 一条CASE语句中不能包含两个或以上的判断值;
(24.) 如果两个对象互相引用(形成了隔离区),则这两个对象可以被垃圾收集器收集;
(25.) 默认的构造函数只会初始化(类)成员变量,不会初始化(类)方法变量;
(26.) Switch后面的变量可以是byte类型和char类型;
(27.) 若类中不存在public static void main(String[]args)函数的话,编译不会出错,只是程序不能运行;
(28.) 这样定义数组是错误的:boolean results[] = new boolean [3] {true, false,true};
(29.) Object是不能被仍出的;
Integer a = new Integer(10);Integer b = new Integer(10);a==b是错误的;
浙公网安备 33010602011771号