首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 正文

Java堆和栈与StringBuilder效率探究


3、

class Test {
public static void main(String[] args) {
String s1 = "123";
String s2 = "123";
if (s1 == s2) {
System.out.println("s1==s2");
} else {
System.out.println("s1!=s2");
}
}
}


输出结果:s1==s2


4、

class Test {
public static void main(String[] args) {
String s1 = new String("123");
String s2 = new String("123");
if (s1 == s2) {
System.out.println("s1==s2");
} else {
System.out.println("s1!=s2");
}
}
}


结果:s1!=s2

 
5、

class Test {
public static void main(String[] args) {
String s1 = new String("123");
String s2 = new String("123");
}

}

Runtime Heap Summary: Test
==========================

Runtime Instance List
---------------------

Package      Class       Count       Cumulative Count      Memory       Cumulative Memory
-------      -----       -----       ----------------      ------       -----------------
Total      4 (100.0%)       4 (100.0%)       96 (100.0%)       96 (100.0%)
java.lang    String     3  (75.0%)       3  (75.0%)       72  (75.0%)       72  (75.0%)
char[ ]    1  (25.0%)       1  (25.0%)       24  (25.0%)       24  (25.0%)

结论:相同字符串常量,即使在不同语句中被引用,其内存是共用的,"123"只生成一个字符数据和一个String对象,两个new String()分别生成了一个对象。

6、

class Test
{
public static void main(String[] args)
{
String s1 = new String("123");
String s2 = new String("1234");
}
}

Runtime Heap Summary: Test
==========================

Runtime Instance List
---------------------

Package      Class       Count       Cumulative Count       Memory       Cumulative Memory
-------      -----       -----       ----------------       ------       -----------------
Total       6 (100.0%)       6 (100.0%)       144 (100.0%)      144 (100.0%)
java.lang     String     4  (66.7%)       4  (66.7%)        96  (66.7%)       96  (66.7%)
char[ ]    2  (33.3%)       2  (33.3%)        48  (33.3%)       48  (33.3%)



结论:"123"和"1234"分别生成了各自的字符数组和String对象。两个new String()分别创建一个String对象。

做了一个测试,

long begin = System.nanoTime();              

//String str = "abcdefghijklmnopqrstuvwxyz";

String str1 = new String("abcdefghijklmnopqrstuvwxyz");               

long end = System.nanoTime();              

System.out.println(end - begin);

上一页  [1] [2] [3] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航