java中string创建对象的方式分别是哪些

java中string创建对象的方式分别是哪些

长沙达内教育      2022-04-28 17:35:01     4

java中string创建对象的方式分别是哪些,今天长沙达内教育培训机构小编为大家介绍“java中string创建对象的方式有哪几种”,希望大家看完此文,能够熟悉string创建对象的

课程价格 请咨询

上课时段: 授课校区:

详细介绍


今天长沙达内教育培训机构小编为大家介绍“java中string创建对象的方式有哪几种”,希望大家看完此文,能够熟悉string创建对象的方式,下面就随小编一起看看java中string创建对象的方式分别是哪些。



Java中String是一个特殊的包装类数据有两种创建方式:


String s = "abc";


String s = new String("abc");    


第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值'a'、'b'、'c',然后在堆中创建一个String对象object,它的值是刚才在栈中创建的三个char型值组成的数组{'a'、'b'、'c'},接着这个String对象object被存放进字符串常量池,最后将s指向这个对象的地址,如果"abc"已经被保存在字符串常量池中,则在字符串常量池中找到值为"abc"的对象object,然后将s指向这个对象的地址。


第一种特点:JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象。



 第二种可以分解成两步:


1、String object = "abc"; 


2、String s = new String(object); 


第一步参考第一种创建方式,而第二步由于"abc"已经被创建并保存到字符串常量池中,因此jvm只会在堆中新创建一个String对象,它的值共享栈中已有的三个char型值。


第二种特点:一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象。


在讲字符串比较前,必须要了解==和equals的区别:


因为java所有类都继承于Object基类,而Object中equals用==来实现,所以equals和==是一样的,都是比较对象地址,java api里的类大部分都重写了equals方法,包括基本数据类型的封装类、String类等。对于String类==用于比较两个String对象的地址,equals则用于比较两个String对象的内容(值)。



以上就是长沙达内教育java培训机构小编介绍的“java中string创建对象的方式分别是哪些”的内容,希望对大家有帮助,更多java资讯最新内容请继续关注长沙达内教育java培训机构官网,每天会有精彩内容分享与你。


相关免费视频教程推荐


Javase基础教程视频下载——String对象的创建:http://www.bjpowernode.com/xiazai/2526.html



学分高考提醒您:交易时请核实对方资质,对于过大宣传或承诺需谨慎!任何要求预付定金、汇款等方式均存在风险,谨防上当。