String stringToday = new String();在Java中的用法
时间: 2023-05-11 19:02:40 浏览: 49
这行代码创建了一个空的字符串对象,可以用来存储字符串数据。在Java中,可以通过给这个字符串对象赋值来存储具体的字符串数据。例如,可以使用以下代码将字符串"Hello World"存储到这个字符串对象中:
String stringToday = new String("Hello World");
相关问题
String s = "xyz" 和 String s = new String("xyz") 比较
在 Java 中,String s = "xyz" 和 String s = new String("xyz") 都可以创建一个包含字符串 "xyz" 的 String 对象。但是它们之间有一些细微的差别。
1. 在内存中的存储方式不同:String s = "xyz" 是通过字符串常量池存储的,而String s = new String("xyz")则是通过堆内存存储的。
2. 字符串常量池中只会存在一个 "xyz" 对象,而通过 new 关键字创建的 String 对象则会在堆内存中新开辟一个存储空间,不管该字符串是否已经存在于字符串常量池中。
3. 对于只有 String s = "xyz" 的情况,Java 会在编译时就将其转换为常量,因此它的效率更高;而对于 String s = new String("xyz") 的情况,Java 在运行时才会创建一个新的对象,因此效率相比前者要低一些。
因此,推荐使用 String s = "xyz" 来创建字符串对象,除非你确实需要在新的堆内存空间中创建一个新的 String 对象,才使用 String s = new String("xyz")。
String s="abc"与String s=new String("abc")的区别
在Java中,String s="abc"和String s=new String("abc")都是创建一个字符串对象。但是,它们的区别在于:
1. 内存分配方式不同:String s="abc"是在常量池中创建一个字符串对象,Java虚拟机会在编译时将其放入常量池中,如果常量池中已经有"abc"对象,则直接返回该对象的引用;String s=new String("abc")会在堆中创建一个新的字符串对象。
2. 对象引用方式不同:String s="abc"是直接将字符串"abc"的引用赋值给s变量;String s=new String("abc")是先在堆中创建一个新的字符串对象,然后将该对象的引用赋值给s变量。
3. 比较方式不同:String s="abc"使用==比较时,比较的是引用地址;String s=new String("abc")使用==比较时,比较的也是引用地址;但是使用equals()方法比较时,比较的是字符串的内容。