java的String类

来源:互联网 发布:网络摄像机ip设置 编辑:程序博客网 时间:2024/05/23 23:33

1、实例化String:

             (1)、直接赋值;

             (2)、调用String类中的构造方法;

2、String的内容比较:

         基本数据类型通过==比较,String通过==比较堆内存中的地址值,String类中equals方法比较的是内容。

        String str1="hello";        String str2=new String("hello");        String str3=str2;        System.out.println("str1==str2:"+(str1==str2));        System.out.println("str1==str3:"+(str1==str3));        System.out.println("str2==str3:"+(str2==str3));        打印结果:                     str1==str2:false                     str1==str3:false                     str2==str3:true       

3、String两种实例化方式的区别:

            首先明白:一个字符串就是一个String类的匿名对象,匿名对象就是已经开辟了堆内存空间并可以直接使用的对象。

           String str1="hello";           实际上就是把一个在堆中开辟好的堆内存空间的使用权给了str1对象,实际上使用这种方式还有另外一个好处,      就是如果一个字符串以及被一个名称引用,则以后再用相同的字符串声明时,就不会在开辟新的空间,如下:     
           String str1="hello";           String str2="hello";           String str3="hello";           System.out.println("str1==str2:"+(str1==str2));           System.out.println("str1==str3:"+(str1==str3));           System.out.println("str2==str3:"+(str2==str3));           打印结果:
                     str1==str2:true                     str1==str3:true                     str2==str3:true                        例子:使用new String()的方式实例化String对象
                     public class Test3 {                        public static void main(String[] args) {                            String str=new String("hello");//通过关键字new实例化String对象                        }                    }               一个字符串就是一个String类的匿名对象,而如果使用new关键字,不管如何都会再开辟一个新的空间,但是此时,          空间的内容还是hello,所以上面的代码开辟了两个内存空间。          

对于字符串的操作就直接采用赋值的方式完成,而不采用构造方法传递字符串的方式完成。

4、字符串的内容不可改变:

      String类有一个特性,那就是字符串的内容一旦声明则不可改变。

5、String 类中常用的方法: