- new和不new之间的区别?
-
String x = "OK"; String y = new String("OK");
-
不new的方式直接去常量池查看,如果有该单词,直接从常量池里面取出来使用,如果没有的话,在常量池里面缓存一份
-
new的方式先在堆里面开辟,与此同时还会去常量池里面查看
-
- String str = new String("AA");这一行代码内存里面创建了几个对象
- 2个对象 -》 堆对象 + 常量池
- String和StringBuffer/StringBuilder之间的区别?
-
String str = new String("OK"); StringBuffer buffer = new StringBuffer("OK");
- StringBuffer和StringBuilder在第一次创建对象的时候,底层会多预留16块缓冲区,为了追加连接效率高
- String在创建对象的时候,空间大小永远是刚刚合适
-
- StringBuffer和StringBuilder之间的区别?
-
StringBuffer:同一时间允许一个线程进行访问,效率较低,但是不会出现并发错误。
-
StringBuilder:同一时间允许多个线程进行访问,效率较高,但是可能会出现并发
-