java之String类型

一:定义

String是复杂类型,是特殊的复杂类型。

二:创建

两种创建形式:

  1. String s = "abc";
  2. String s = new String("abc");
  • 第一种  String s = "abc";  先在栈中创建一个String类型的引用,然后在常量池中查找有没有“abc”的常量,如果有则返回这个常量的地址给引用s,如果没有则在常量池中创建一个常量“abc”并返回地址给s。

java之String类型

示例:

String s0 = "abc";
String s1 = "abc";
System.out.println(s0==s1); //true s0和s1都是存放的常量池中abc的地址,而常量池abc只有一个所以地址相同。
  • 第二种String s = new String("abc"); ,先在栈中创建一个String类型的引用,然后在常量池中查找有没有“abc”的常量,如果没有则在常量池中创建一个常量“abc”,再在堆中创建一个String的对象,存放常量池中的“abc”的地址,最后s指向堆空间的String对象。new几次就有几个String对象生成。

java之String类型

        String a=new String("abc");
String b=new String("abc");
System.out.println(a==b);
结果: false

解:==在比较复杂类型时比较的是地址,而ab中存放的是new出来的引用,所以地址不同。

上一篇:【BZOJ3309】DZY Loves Math 莫比乌斯反演+线性筛(好题)


下一篇:Linux之服务器介绍