1、switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
:在jdk低于1.7时,switch括号的参数类型只能是整数类型,枚举类型。(byte和short,char都可以转换为int。)
:当jdk不小于1.7时,在原来的基础上增加了对String类型的支持。
2、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
:由于s1+1会自动提升表达式的类型,所以结果是int类型,因此int赋值给s1时,编译器会报强制类型转换错误。
3、char型变量中能不能存贮一个中文汉字?为什么?
:char类型是用来存储Unicode编码的字符,Unicode中包含汉字,因此可以存储。unicode占两个字符,因此char类型的变量也是占用两个字节。
4、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
:是引用不能变,引用的对象可以变。
如:
final StringBuffer a=new StringBuffer("immutable");
执行如下语句将报告编译期错误:
a=new StringBuffer("");
但是,执行如下语句则可以通过编译:
a.append(" broken!");
5、请说出作用域public,private,protected,以及不写时的区别
:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly(友好的)。