一、创建String(字符串对象)的两种方式
1、String str1 = "nihao"("nihao"值存储在常量值中)
2、String str2 = new String("“nihao")(在堆内存中建立一个对象)
二、jvm
1、java虚拟机,用来解释并执行java程序的应用软件。
2、有两种方式给字符串对象分配内存:
1、将字符串常量存储在方法区中(String str1 = "nihao"),在内存中只有一个对象,虚拟机启动时就已经存储在方法区的常量值中。
2、在堆内存中建立一个对象,在内存中有两个对象,在堆内存中开辟了一个空间,空间当中通过函数来初始化,然后向构造函数中传入创建的字符串对象,传入的时候其实是字符串地址的引用,所以常量值中有一个"nihao",堆内存中有一个”new String()“。


三、字符串对象的特点:字符串是一个常量,如果被初始化后几乎不会被改变。按照如下图理解这句话:


四、“==”和“.equal”二者均为用于比较时的区别:



