一直都知道string不用new,但是不知道是为啥
来源:互联网 发布:语言翻译软件 编辑:程序博客网 时间:2024/04/30 11:56
这两种写法都可以创建一个String对象。在用赋值运算符进行字符串初始化时,JVM自动为每个字符串生成一个String类的实例。
The String class represents character strings. All string literals in Java programs, such as "abc", are implemented as instances of this class.
解释一下,String作为一个类来说,当然可以用new来构造,String有3个构造函数:
String();
String("xxx");
String(new StringBuffer());
这两条语句的效果是一样的
String password="ok";
String password=new String("ok");
不同的是,第一条现在内存中创建了"ok"这个String,然后将reference赋给password,如果这个时候还有一条语句String pwd = "ok";那么JVM将不再创建"ok",而是直接将第一个"ok"的reference赋给pwd,也就是说,password和pwd是使用同一块内存,而如果加上String pwd = new String("ok");那JVM将在内存中再创建一块区域放上“ok”这个字符串。
0 0
- 一直都知道string不用new,但是不知道是为啥
- 一直都知道final修饰的类不能被继承,但是不知道为什么不能被继承!
- 好几次都被csdn扣了分但是都不知道是怎么扣的
- 都不知道怎么办
- 很多都不知道
- 为啥支付宝付款功能不用密码!~这个功能只有客户端有,网页版是一直密码短信都需要
- cppunit编译,不知道为啥,好多人都报错
- 不知道为啥 就是想写句话.....
- 自然对数e都不知道是啥了啊?
- 似乎都不知道自己是怎么想的
- 不知道是为什么
- 不知道是为什么?
- 不知道为啥黑站这么有手感哈。可能是现在的学校网络安全都不咋滴
- 都不知道怎么好了。。。。。
- 一直都不知道怎么开通CSDN Blog,今天看来可以了
- 简洁啊,但是不知道是不是实用。
- phpcms 设置手机站点 但是状态是未开启还不知道什么原因
- 不知道是否是BUG
- Linux初讲——运行级别
- Swift闭包详解
- 台湾某著名杀毒软件公司2010年7月笔试题
- linux删除文件
- iOS开发系列--无限循环的图片浏览器
- 一直都知道string不用new,但是不知道是为啥
- 代码托管工具
- android 深入理解LayoutInflater.inflate()
- -fembed-bitcode is not supported on versions of iOS prior to 6.0
- 高可用测试oracle
- Faster MySQL dumps and loads with –tab and –use-threads
- PHP运算符
- oracle查看允许的最大连接数和当前连接数等信息
- FMDB