"hello"和new String("hello")的区别?
来源:互联网 发布:李天生sql server2008 编辑:程序博客网 时间:2024/05/10 05:23
/** "hello"和new String("hello");的区别? 当java直接使用形如"hello"的字符串直接量(包括可以再编译时 就能计算出来的字符串值)JVM将会使用常量常量池来管理字符串; 当使用new String("hello"); JVM先会使用常量池来管理“hello” 直接量,在调用String类的构造器来创建一个新的String对象,新 创建String对象会保存在堆内存中。 补习:什么是常量池? 常量池在java用于保存在编译期已确定的,已编译的class文件中的 一份数据。 常量池中除了包含代码中所定义的各种基本类型(如int、long等等) 和对象型(如String及数组)的常量值外,还包含一些以文本形式出 现的符号引用。 自己理解:一块专门存放常量的内存区域。 这个博客解释的有点深度:http://yiliner.iteye.com/blog/207723 百科:http://baike.baidu.com/view/8680346.htm?fr=aladdin 堆内存:堆允许程序在运行时动态地申请某个大小的内存空间 百科:http://baike.baidu.com/view/1962829.htm?fr=aladdin*/public class StringTest{ public static void main(String[] args) { String str1 = "美好未来"; String str2 = "美好"; String str3 = "未来"; //str4直接引用常量池中的“美好未来” String str4 = "美好"+"未来"; //str5直接引用常量池中的“美好未来” String str5 = "美"+"好"+"未"+"来"; //在编译时期不能确定下来,不能引用 //常量池中的内存字符串 String str6 = str2+str3; // str7中引用堆内存中新建的String对象 String str7 = new String("美好未来"); // true System.out.println(str1 == str4); // true System.out.println(str1 == str5); // false System.out.println(str1 == str6); // false System.out.println(str1 == str7); // 返回字符串对象的规范化表示形式。 // System.out.println(str1.intern()); }}
0 0
- "hello"和new String("hello")的区别?
- "hello"和new String("hello")的区别
- String s = new String(“hello”)和String s = “hello”的区别 图解
- [java] "Hello"和new String("Hello")产生String对象的区别
- Java中String="hello"和new String("hello')两种创建字符串的区别
- String s=new String("hello")与String s="hello"的区别?
- String字面值对象和构造方法创建对象的区别:String s = new String("hello")和String s = "hello";的区别
- JAVA中String s = "hello"和String s = new String("hello")有什么区别啊?
- String str = "hello"; 与 String str = new String("hello"); 有什么区别?
- String str = new String("Hello"); 的内存分配
- String string = new String("hello world")?
- String str = new String("Hello");
- forward:hello 与 redirect:hello的区别
- String s = new String("hello world")中用到的反射
- String = "" 和 new String("")的区别
- String和New String()的区别
- new String() 和 String 的区别
- String 和 new String()的区别
- 一个背单词的软件
- 第十周项目四 大奖赛计分
- 片刻
- call by value 和call by reference 部分转载 java 值传递 和 引用传递
- SDUT 1269-走迷宫(DFS打印路径)
- "hello"和new String("hello")的区别?
- Suse 11 snmp服务安装及配置
- 用类实现的时钟加法函数(C++)
- Servlet学习笔记1
- 第十周项目一 程序填充1
- 2014-10-31Android学习------setContentView(View view)--------GIF动画实现
- c++排序算法——简单桶排序
- Linux权限处理常用的四个命令详解
- android 多通知 参数问题, PendingIntent:有用的requestCode参数