java中的陷阱
1.字符串陷阱
1)JVM会将创建的字符串缓存在字符串池中,当再次调用时无须重新创建。
2)字符串的确定,要确定是否为在编译时能够确定,如果含有变量,而且该变量是不能够执行宏替换的或者是存在了一些方法就不可以对其调用字符串缓冲池中的数据。
3)字符串是并不可变的,当前一个字符串被创建出来之后,他的空间是不可变的,因此这也会导致出现内存泄露,我们所改变的只是指向字符串的引用,对于能够改变的,我们能够用的有StringBuidler,StrinBuffer,这两个其中第一个是不安全线程的,第二个是安全线程的,String是不可变类,都是属于线程安全的。
2.表达式中的陷阱
1)各个类型之间的转化可能回导致其出现问题。
2)双目运算符,双目运算符会进行隐式的类型转换但是对于双目运算符,+=运算符的左边变量只能使String类型
3.注释中的陷阱
平常中,java是不会对注释进行检测的,只有当我们对其使用unicode编码的时候会出现这种情况,当我们使用了\unit5,就会报错,\u后面的后四位必须是0-F字符。