java基础面试题(简洁).doc
文本预览下载声明
1、一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一致。
2、Java 有没有 goto?
java 中的保留字,现在没有在 java 中使用。
3、说说和的区别。
相同点:和都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,
不同点:如果第一个表达式为 false,则不再计算第二个表达式,都计算
还可以用作位运算符,当操作符两边的表达式不是 boolean 类型时,表示按位与
4、在 JAVA 中如何跳出当前的多重嵌套循环?
1.可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的 break 语句. 2.让外层的循环条件表达式的结果可以受到里层循环体代码的控制,
5、switch 语句能否作用在 byte 上,能否作用在 long 、 String上?
在 switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体)由于byte,short,char 都可以隐含转换为 int,
但是long 和 String 类型都不符合 switch 的语法规定,并且不能被隐式转换成 int 类型
6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
对于前者;由于 s1+1运算时会自动提升表达式的类型,所以结果是 int型,再赋值给 short 类型 s1时,编译器将报告需要强制转换类型的错误。
对于后者;由于 +=是 java 语言规定的运算符,java 编译器会对它进行特殊处理,因此可以正确编译。
7、char 型变量中能不能存贮一个中文汉字?为什么?
char 型变量是用来存储 Unicode 编码的字符的,unicode 编码字符集中包含了汉字,所以, char 型变量中当然可以存储汉字啦。不过,某个特殊的汉字没有被包含就不能存储
8、用最有效率的方法算出 2 乘以 8 等于几?
2 3 因为将一个数左移 n 位,就相当于乘以了2的 n 次方,位运算 cpu 直接支持,效率最高,
9、请设计一个一百亿的计算器
计算机中的算术运算是会发生越界情况的,两个数值的运算结果不能超过计算机中的该类型的数值范围。要实现一个一百亿的计算器,我们得自己设计一个类可以用于表示很大的整数,并且提供了与另外一个整数进行加减乘除的功能,大概功能如下:(1)这个类内部有两个成员变量,一个表示符号,另一个用字节数组表示数值的二进制数(2)有一个构造方法,把一个包含有多位数值的字符串转换到内部的符号和字节数组中(3)提供加减乘除的功能
10、使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
11、==和 equals 方法究竟有什么区别?
==操作符专门用来比较两个变量的值是否相等,
equals 方法是用于比较两个独立对象的内容是否相同,多用于字符串的比较
12、静态变量和实例变量的区别?
在语法定义上的区别:静态变量前要加 static 关键字,而实例变量前则不加。
在程序运行时的区别:实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
13、是否可以从一个 static 方法内部发出对非 static 方法的调用?
不可以。因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。
14、Integer 与 int 的区别
int 是 java 提供的8种原始数据类型之一。Integer 是封装类。默认值为0,而 Integer 的默认值为 null,int 不适合作为 web 层的表单数据的类型。Integer 提供了多个与整数相关的操作方法,
15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math 类中提供了三个与取整有关的方法:ceil(向上取整)、floor(向下取整)、round(四舍五入),Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。
16、下面的代码有什么不妥之处?
1. if(username.equals(“zxx”){}:username 可能为 NULL,会报空指针错误;改为zxx.equals(usernam
显示全部