Java面试题每日五题(2010/02/26)

forfuture1978 2010-02-26 11:25:01
此系列题目,出自饮水思源bbs的Java板,看后非常有收获,分享给大家。
实践一下便出结果,希望大家能够详细描述背后原因。
答案将在第二天公布。

1.
public static void append(String str){
str += " Append!";
}

public static void append(StringBuffer sBuffer){
sBuffer.append(" Append!");
}

public void test(){
String str = "Nothing";
append(str);
System.out.println(str);
StringBuffer sBuffer = new StringBuffer("Nothing");
append(sBuffer)
System.out.println(sBuffer);
}

执行test后显示什么,为什么?

2.
“abcdefg”.toLowerCase() == "abcdefg"是true还是false

3. true && false || true 是 true 还是 false?

4.
int i = 1 / 0;
int j = 1 % 0;
double k = 1.0 / 0;
i,j,k三条语句执行后分别显示什么

5.
List list1 = null;
List list2 = new ArrayList();
System.out.println(list1 instanceof ArrayList);
System.out.println(list1 instanceof List);
System.out.println(list1 instanceof Object);
System.out.println(list2 instanceof ArrayList);
System.out.println(list2 instanceof List);
System.out.println(list2 instanceof Object);
分别是什么
...全文
433 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
J_CodeLiving 2010-02-27
  • 打赏
  • 举报
回复
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
bolink5 2010-02-27
  • 打赏
  • 举报
回复
嗯,不错啊
第2题 那里重写了equals啊,不理解
但答案的缺是true,并且用equals也是true
可能是二个对象指向的是同一个内存地址空间。

24K純帥 2010-02-27
  • 打赏
  • 举报
回复
1.Nothing
Nothing Append!
2.true
3.true
4.抛出异常
5.
false
false
false
true
true
true
存在666 2010-02-27
  • 打赏
  • 举报
回复

每天回帖即可获得10分可用分!
孤独剑客 2010-02-26
  • 打赏
  • 举报
回复
补充第五题:
null本身不是对象,也不是Objcet的实例null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例
孤独剑客 2010-02-26
  • 打赏
  • 举报
回复
1. 2楼的错了,String不是类型, 而是一个final类. 当str += "Append!"时, 原来对象不变, 多出一个对象而已, 而StringBuffer对象不是final, 所以可以改变对象本身.
所以答案是Nothing
Nothing Append!

2. "abcdefg"是同一个对象, 指向堆的同一个位置, 所以答案是
true

3. 区域屏蔽 || 有ture就为ture
答案是 true

4. 在编译的时候不会出错, 但是在运行的时候会报异常( java.lang.ArithmeticException), 因为被除数为0;

5. 答案是
false
false
false
true
true
true

SbmcKg 2010-02-26
  • 打赏
  • 举报
回复
学习了。深有体会。。
星辰企业 2010-02-26
  • 打赏
  • 举报
回复
1、String的类型的值是不可改变的 ,而StringBuffer的值是可以进行改变的
答案:Nothing
Nothing Append!
2、true;因为

3、true 根据优先级别not and or

4、除数不能为0,会产生异常ArithmeticException,jdk以前的版本是不会产生问题的!

5、false,false,false,true,true,true,因为list1为null不是一个类型
soli11722984 2010-02-26
  • 打赏
  • 举报
回复
1.
"Nothing"
"Nothing Append!
第一个是传值问题
第二个是修改对象问题
2.
字符串池关系,而且String重写了equals,所以true
3.
true有或运算
4.
头2行报错
至于double只记得可以的,不过具体忘了啥原因
5.
false,false,false,true,true,true
list1的值为null,list2的值为ArrayList的一个实例
bbb332 2010-02-26
  • 打赏
  • 举报
回复
musiclee 2010-02-26
  • 打赏
  • 举报
回复
4楼 说的确实没错 ,但其实第一个问题 和String 是不是final类 没多大关系 。。呵呵
hjh811 2010-02-26
  • 打赏
  • 举报
回复
其它题不说,上面都有
对于第4题
如果进行一个浮点型数据除以0或除以0求余的运算,在运行时不会抛出异常,而会得到表示无穷大、无穷小、或为NaN的特殊值。如
float f1=12.12/0;
float f2=-12.12/0;
float f3=12.12%0;
float f1=-12.12%0;
System.out.println(f1); //输出结果为:Infinity
System.out.println(f2); //输出结果为:-Infinity
System.out.println(f3); //输出结果为:NaN
System.out.println(f4); //输出结果为:NaN
samihyypia 2010-02-26
  • 打赏
  • 举报
回复
都是很基础的题!!!
jypapgl 2010-02-26
  • 打赏
  • 举报
回复
got it
wolf521hf 2010-02-26
  • 打赏
  • 举报
回复
恩 不错 看下路过
zishanyan 2010-02-26
  • 打赏
  • 举报
回复
学习
kingkwj1 2010-02-26
  • 打赏
  • 举报
回复
不错
学习了,顶一下.
SambaGao 2010-02-26
  • 打赏
  • 举报
回复
学习了.............不错
allysniper 2010-02-26
  • 打赏
  • 举报
回复
我觉得5楼回复有问题,第三个应该是存储在栈里吧.引用的是同一个栈位置
xieyueping 2010-02-26
  • 打赏
  • 举报
回复
引用 4 楼 liuyuanshijie 的回复:
1.  2楼的错了,String不是类型, 而是一个final类. 当str += "Append!"时, 原来对象不变, 多出一个对象而已, 而StringBuffer对象不是final, 所以可以改变对象本身.
    所以答案是Nothing
                      Nothing Append!

2.  "abcdefg"是同一个对象, 指向堆的同一个位置, 所以答案是
      true

3.  区域屏蔽 || 有ture就为ture
      答案是 true

4.  在编译的时候不会出错, 但是在运行的时候会报异常( java.lang.ArithmeticException), 因为被除数为0;

5.  答案是
      false
      false
      false
      true
      true
      true
     


ding

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧