1. char型变量中能不能存贮一个中文汉字?为什么?
char变量是用来存储Unicode编码字符的,unicode字符编码中包含汉字,所以是可以存储中文汉字的,有些汉字不在unicode编码中所以是没有的.补充说明.unicode编码是占两个字节,所以char类型是占两个字节的.
2.用最有效率的方法算出2乘以8等於几?
2<<3
因为将一个数字左移n位就相当于乘以了2的n次方.而且位运算是cpu直接支持的,效率最高,所以2<<3是最快的运算
3. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final修饰一个变量的时候是值得是引用变量不可以变得,引用变量指向对象的内容还是可以改变的.
final StringBuffer a=new StringBuffer("immutable");
执行如下语句将报告编译期错误:
a=new StringBuffer("");
但是,执行如下语句则可以通过编译:
a.append(" broken!");
有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:
public void method(final StringBuffer param)
{
}
实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:
param.append("a");