我们说string可以应用于字符串的一系列操作,这里我们就实例化的方法展开讨论。当我们想要创造一个具体的对象时,这个过程就是实例化的表现。在string中对字符串的实例化方法有两种,我们会在下文中进行深入讲解与分析。在此之前,就实例化的一些说明带来介绍,帮助大家理解string实例化的意思。
一、实例化说明
(1)在Java中,使用已经定义好的类,创建该类对象的过程称为“实例化”。
(2)实例化就是在堆中分配内存的过程,分配的内存即对象。
(3)只有实例化后的对象,才能访问到类中的成员变量和方法。
二、实例化方法
(1)直接赋值
StringStringName="xxx";
特点:JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象。
举例
Stringname1="Tim"; Stringname2="Tim"; System.out.println(name1==name2);
结果
String name2=“tom”;此时name1和name2共享常量池中的同一个数据,即两个变量的地址是一样的,所以输出结果name1和name2相等。
(2)构造方法
publicString(Stringstr);
实例
publicclasshomework{ publicstaticvoidmain(String[]args){ Stringname="Tom"; Stringname1=newString("Tom"); Stringname2=newString("Tom"); System.out.println(name); System.out.println(name1); System.out.println(name2); } }
特点:一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象。
(3)方法区别
String类的设计使用了共享设计模式。在JVM底层实际上会自动维护一个对象池(字符串对象池),如果现在采用了直接赋值的方式进行String类的对象实例化操作,那么该实例化对象(字符串内容)将自动保存到这个对象池之中。如果下次继续使用直接赋值的模式声明String类对象,此时对象池之中如若有指定内容,将直接进行引用;如若没有,则开辟新的字符串对象而后将其保存在对象池之中以供下次使用。所谓的对象池就是一个对象数组(目的就是减少开销)。
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容