java总结2

1.对于short s1 = 1;s1 = s1 + 1;由于s1 +1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制类型转换的错误。对于short s1 = 1;s1 +=1;由于+=是Java语言规定的运算符,Java编译器会对它进行特殊处理,因此可以正确编译。

2.char型变量是用来存储UnICode编码的字符的,unicode编码字符集包含了汉字,所以,char型变量中当然可以存储汉字。不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么这个char型变量中就不能存储这个特殊汉字。因为Unicode编码占用两个字节,所以char类型变量也是占用两个字节。

3.用最有效率的方法算出2*8的结果?
2<<3,(左移三位)因为将一个数左移n位,就相当于乘以2的几次方,一个数乘以8只需要将其左移三位即可,而位运算CPU直接支持的,效率最高。

4.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
比如:
final StringBuffer a = new StringBuffer(“immutable”);
a = new StringBuffer(""); // 运行时编译器会报错
a.append(“broken!”); // 可以通过编译
在定义方法参数时,可能想采用如下的形式来阻止方法内部修改传进来的参数对象:
public void method(final StringBuffer param)
{
}
实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:
param。append(“a”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值