文档介绍:一个“.java”源文件中可以包含多个类,但只能包含一个public类,且必须与文件名相一致名。
goto是java中的保留字,现在没有在java中使用。
&和&& 相同点:都是逻辑与运算符,当两边的表达式都为true时,整个表达式才为true, 只要有一边的表达式为false,整合表达式的结果就为false。
不同点:&&有短路功能,即如果第一个表达式为false,第二个表达式不会执行,例如:对于if(str != null && !(“”))表达式,当str为null 时所以不会出现NullPointerException,若改为&,则会出现 NullPointerException异常。
java中使用break语句跳出多层循环。
switch(exal) 中,exal只能是一个整数表达式或枚举常量,整数表达式可以使int、Interger 包装类;因为byte,short、char可以自动转换成int,所以也可以byte、short、char 及其包装类都可以用在switch(exal)中。
short s1=1;s1=s1+1; 由于表达式s1+1在运算时会自动提升表达式类型,所以结果为int类型,在转换给short类型,结果会报数据类型转换异常;
Short s1=1;s1+=s1; 因为+=是java中规定的运算符,java编译器会对其进行特殊处理,所以能正常编译。
char字符是用来存储Unicode编码的字符的,所以char字符可以用来存储汉字,一个char占16个字节,但某些特殊汉字没有存储在Unicode编码中,这种汉字char字符则无法存储。
2<<3是算出2乘以8最有效的方法,因为一个数向左移n位,即乘以2的n次方。
final、finally、finalize的区别:final有四种用途:(1)、修饰属性时,表示此属性是常量,在定义时必须进行初始化;(2)、修饰方法时,该方法在子类中不能被重写;(3)、修饰类,表示此类不能被继承;(4)、修饰函数的形式参数,表示函数的形式参数的值不能被改变。 finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
“==”和equals的区别:准确的说:==比较引用地址,equals比较hashcode(==若比较的常量,则为常量值是否相等,若为数据对象,则表示比较数据对象在内存中的值是否相等。而equals是单比较两个对象的内容是否相等)
静态变量和实例变量的区别:(1)、静态变量定义的时候要用static,而实例变量不需要;(2)、静态变量也叫类变量,在程序初始化时,就会分配内存空间,且可以通过“类名.”来调用;而实例变量只有在创建对象时,才会进行内存空间的分配;
11、int 和Integer的区别:int是java基本数据类型,Integer是java为Int提供的包装类。
12、String和StringBuffer的区别:String类提供了字符长度不可变的字符串,而StringBuffer类提供的字符串长度是可变的。
13、运行时异常与一般异常的区别:异常表示程序运行过程