我来说两句 来源:Java基础面试题
收藏 我要投稿
1、关于下面的程序,哪个选项的说法是正确的?
?
1
2
3
4
5
6
7
8
9
10
11
12
public class Test {
/**
* ***@param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte a = 3,b=2; //1
byte c = a+b; //2
(c);
}
}
A、编译通过,运行时打印出5
B、编译通过,运行时打印出23
C、编译不通过,在//2出有错误,因为此处f必须是一个byte类型的变量
D、编译不通过,在//1出有错误,不能这样定义变量
解析:java中涉及byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果。因此,如果把两个byte类型的值相加,最后会得到一个int类型的结果。如果需要得到byte类型结果,必须将这个int类型的结果显式转换为byte类型
把2处代码改为下面就正确了:byte c = (byte) (a+b); //2
2、以下程序错误的是:
A、short s=1;s=s+1; B、short s=1;s+=1;
解析:s+1为int,不能直接赋值给short,而B中是读取右s的地址+1
3、下面程序执行会出现错误吗?如果有错是什么错误?
?
1
2
3
4
5
6
7
public class PerttyTest {
public static void main(String[] args){
String i="123",s;
s=getStr(i);
(s);
}
8
9
10
11
12
13
14
15
16
public String getStr(String s){
StringBuffer sb=new StringBuffer();
for(int i=()-1;i>=0;i--){
((i));
}
return ();
}
}
解析:main函数是个static函数,getStr不是静态函数,不能在main中调用,或者将getStr声明为static的函数,或者实例化一个PerttyTest类来调用
4、谈谈final、finally、finalize的区别。
(1)final修饰符(关键字)
如果一个类被声明为fin
Java基础面试题 来自淘豆网m.daumloan.com转载请标明出处.