当前位置: 移动技术网 > IT编程>开发语言>Java > The difference between creating a string object constructor and assigning it directly

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

2018年10月04日  | 移动技术网IT编程  | 我要评论

谢霆锋高圆圆,qq水浒点亮图标,花名及图片

字符串对象构造方法创建和直接赋值的区别?
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
    }
}

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

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网