1 | 关于null和“”说法正确的是( ) | |
A. | null是常量 | |
B. | “”是字符串对象 | |
C. | null可以调用方法 | |
D. | “”可以调用方法 |
看这道题,就是要我们明白null和“”的区别,null在java中是一个关键字,他可以赋给任何的object对象,他的指向是空的,即没有指向堆中的任何对象,像null,true,false这些关键字都是常量,null既然没有在堆中有任何指向了,它就肯定是不能调用方法的,我们再看“”,他首先是字符串对象,我们应该是能理解的吧,双“”的都是字符串对象,他其实就是指向一个空的字符串,他在堆中还是存在对象的,所以是可以调用方法的。
2 | 给定某Java程序main方法如下,该程序编者按译运行的结果是()。 | |
A. | 运行时出现异常 | |
B. | 编译错误 | |
C. | null | |
D. | abcdef |
承接上题,str 是等于null,既然是null就无法调用方法,那么就会报编译错误。
3 | 关于String、StringBuilder以及StringBuffer,描述错误的是 | |
A. | 对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象 | |
B. | StringBuffer是线程安全 | |
C. | StringBuilder是线程安全 | |
D. | 可以修改StringBuilder和StringBuffer的内容 |
String每一次改变的时候都会重新new一个对象,是对原来的没有影响的,StringBuffer是线程安全的,StringBuilder是非现场安全的,StringBuilder和StringBuffer每一次都是在源对象上进行修改,不会重新new对象。