[Java] 01 String 内存分析
2016-04-11 17:24
465 查看
public class StringTest{ public static void main(String[] args){ String str1 = new String("123"); String str2 = new String("123"); //str1和str2指向不同的内存 System.out.println(str1==str2);//false System.out.println(str1.equals(str2));//true String str3 = "123"; String str4 = "123"; System.out.println(str3 == str4);//str3和str4指向同一块内存 true System.out.println(str3.equals(str4));//true str3 = "234"; str4 = "456"; str4 = "789"; String str5 = "456"; //字符串常量,只要声明了就有内存分配,即使没有指向也不会被垃圾回收,str5不会再分配内存,因为已经存 //在"456"这块内存,直接被指向。 /** * 由于String是字符串常量,每新建一个字符串就会分配一块内存,此时以下循环会分配100块 * 内存,但只有最后一块被使用,而且String Pool中的内存不会被回收,所以如果进行大量字符串叠加,请勿 * 使用此方法 */ String str6 = ""; for(int i=0;i<100;i++){ str6+=i; } System.out.println(str6); /** * 字符串叠加用此方法 */ StringBuilder sb = new StringBuilder("abc"); for(int i=0;i<100;i++){ sb.append(i); } System.out.println(sb.toString()); } }
相关文章推荐
- Java:注解(元数据)
- java for循环的几种写法
- eclipse中高亮显示相同的变量
- java中的if语句
- struts2-系统默认校验器大全
- 【Java并发编程】对比synchronized和Lock
- JVM学习笔记二:GC 垃圾回收
- LeetCode Ugly Number JAVA
- SLF4J日志框架
- Java中的instanceof关键字
- Java ConcurrentModificationException异常原因和解决方法
- Java中ListIterator和Iterator详解与辨析[转]
- 快速排序算法Java版
- java web在内网/局域网中访问,客户端主机ip获取
- struts2开发1--运行环境搭建
- java实现二叉树的构建以及3种遍历方法
- Myeclipse 卸载提示could not open jvm.cfg错误无法卸载
- Java正则表达式入门
- java中Date与String的相互转化
- 深入理解Java