|
最初由 dearmeiw 发布
[B]也来凑凑热闹
第四:这个主要是&&短路的问题,就是A&&B,当A是否的时候就不去算B了,要是&是会去算B的,这个是主要区别,BTW说一下,这两个都是“位”与运算的
确实如此,真的纳闷!
- int i=0,j=0;
- if ((i!=0) && ((j++)>0))
- {
- System.out.println("1:"+j);
-
- }
- System.out.println("2:"+j);
复制代码
- int i=0,j=0;
- if ((i!=0) & ((j++)>0))
- {
- System.out.println("1:"+j);
-
- }
- System.out.println("2:"+j);
复制代码第九:是STRING缓冲池的问题,可能是两个也可能是一个,如果池中有就是一个,没有就是两个
这个不应该吧!
当用new时,java是会新建一个对象的。是两个对象的原因是该对象的引用(指针)在java中也是一对象。
第十一,short s1 = 1; s1 = s1 + 1;这个错出在1是INT在算是右部自动升级为INT运算,不能显式的再给S1.short s1 = 1; s1 += 1;这个没有错,但是会以二的八次方这个范围中打转,就是溢出后就是负了,所以不一定能得到正确的值,不会出错的原因在如JVM比较的懒,在+=,-=等这样的运算是就用的是第一个的内存空间不再申请新空间了,把算好的值往里面一扔就不管了…… [/B]
确实在这个范围中打转,但并不抛出异常! |
|