1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。
2.Java有没有goto?
java中的保留字,现在没有在java中使用。
3.&和&&的区别?
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边表达式的结果都为true时,整个运算结果都为true;只要有一方为false,则结果为false。&&还具有短路的功能,&还可以用作位运算符。
4.在java中如何跳出当前的多重嵌套循环?
1)在语句外面定义一个标号,在里面使用这个标号(break);
2)里层循环体代码控制外层循环条件表达式的结果。
5.switch语句能否作用在byte上?能否作用在long上,能否作用在String上?
switch中只能是一个整数表达式或者枚举常量(更大字体),取是int基本类型或Integer包装类型,byte,short,char可隐含转换为int,所以long,String不能。
6.short s1 = 1;s1 = s1 + 1;有什么错?short s1 = 1;s1 +=1;有什么错?
s1+1运算时会自动提升表达式的类型,所以结果是int型,在赋值给short类型s1时,编译器将报告需要强制转换类型的错误。+=是java语言运算符,可正确编译。
7.char型变量中能不能存贮一个中文汉字?为什么?
char变量是用来存储Unicode编码字符的,包含了汉字,某特殊汉字没有被包含在Unicode编码内,则不能存储特殊汉字。
8.用最有效的方法算出2乘以8等于几?
2<<3;将一个数左移几位,就相当于乘以2的n次方。左移三位。
10.使用final关键字修饰一个变量时,是引用变量不能变,还是引用对象不能变?
引用变量不能变,引用变量所指向的对象中的内容可以改变。
11.“=”和equals方法究竟有什么区别?
==操作符用来判断基本数据类型的值和引用数据类型的地址是否相等
equals方法是用于比较两个独立对象的内容是否相同
12.静态变量与实例变量的区别?
语法上:静态变量前要加static,而实例变量前不需要
程序运行上:静态变量直接使用类名来引用,实例变量必须创建对象后才可以通过对象使用
13.是否可以从一个static方法内部发出对非static方法的调用?
不可以。因为static方法调用不需要创建对象,可以直接调用
而非static方法是要与对象关联在一起的,必须创建一个对象后,才可以进行方法调用
14.Integer与int的区别
int是Java提供的8种基本数据类型之一。Integer是java为int提供的封装类。
int的默认值为0,Integer的默认值为null
15.Math类提供了三种与取整有关的方法:ceil,floor,round
ceil(天花板):向上取整
floor(地板):向下取整
round(四舍五入):即原来的数字加上0.5后在向下取整
17.请说出作用域public,private,protected,以及不写时的区别
作用域 当前类 同一package子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
18.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
Overload是重载,Override是覆盖
重载Overload表示同一个类中可以有多个名称相同的方法,但参数列表不同
重写是指方法名相同,参数列表相同,在此基础上重新定义方法
19.构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload
20.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承具体类,抽象类中可以有静态的main方法。