java核心技术卷总结


1.&&和|| 运算符是按照“短路”方式来求值的:如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。
2.位移运算符的右操作数要完成模32的运算(除非左操作数是long类型,在这种情况下需要对右操作数模64)。例如,1<<35的值等同于1<<3或8。
3.同一个级别的运算符按照从左到右的次序进行计算(但右结合运算符除外)&& 优先级大于 | | 。
4.String类的substring方法可以从一个较大的字符串提取出一个子串。例如:
String greeting = “Hello”;
String a = greeting.substring(0,3);
打印 a 会输出 Hel。
即输出[a,b)。
5.检测字符串是否相等
string a = “ok”;
string b = “ok”;
a.equals(b);
“ok”.equals(“ok”);
“ok”.equals(“b”);
想要检测两个字符串是否相等,而不区分大小写,可用equalsIgnoreCase方法。
“Hello”. equalsIgnoreCase(“hello”);
6.一定不要使用==来检测两个字符串是否相等!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==只能够确定两个字符串是否存放在同一位置上。当然,如果存放在同一位置上,它们必然相等。
但是,完全有可能将内容相同的多个字符串副本放置在不同位置上。
如果虚拟机始终将相同的字符串共享,就可以使用==运算符检测是否相等。但实际上只有字符串字面量是共享的,而+或substring等操作得到的字符串并不共享。
因此,千万不要视同==运算符测试字符串的相等性!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7.检查一个字符串既不是null也不是空串 if(str!=null && str.length()!=0)。