欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

The difference between creating a string object constructor and assigning it directly

程序员文章站 2022-07-10 12:53:57
通过构造方法创建字符串对象是在堆内存,直接赋值方式创建对象是在方法区的常量池。字符串的内容是存储在方法区的常量池里面的这样做的目的是为了方便字符串的重复使用。 ......
字符串对象构造方法创建和直接赋值的区别?
package com.itheima_02;
/*
 * 通过构造方法创建的字符串对象和直接赋值方式创建的字符串对象有什么区别呢?
 *         通过构造方法创建字符串对象是在堆内存。
 *         直接赋值方式创建对象是在方法区的常量池。
 *         
 * ==:
 *         基本数据类型:比较的是基本数据类型的值是否相同
 *         引用数据类型:比较的是引用数据类型的地址值是否相同
 */
public class stringdemo2 {
    public static void main(string[] args) {
        string s1 = new string("hello");
        string s2 = "hello";
        
        system.out.println("s1:"+s1);
        system.out.println("s2:"+s2);
        
        system.out.println("s1==s2:"+(s1==s2)); //false
        
        string s3 = "hello";
        system.out.println("s1==s3:"+(s1==s3)); //false
        system.out.println("s2==s3:"+(s2==s3)); //true
    }
}

通过构造方法创建字符串对象是在堆内存,直接赋值方式创建对象是在方法区的常量池。字符串的内容是存储在方法区的常量池里面的这样做的目的是为了方便字符串的重复使用。

The difference between creating a string object constructor and assigning it directly