java的String类

  
      <李>概述
    只要是用双引号括起来的都叫字符串
    字符串类在包以中,只要是. lang中的包,在写程序时都不需要导入进来
    字符串的内容一旦创建,将不可再改变,是一个常量
    正是因为字符串不可改变,所以字符串是可以共享使用的。想想如果共享的东西大家可以随便修改,用一次残一次,谁还想去共享呀,想想都恶心,共享单车大家都可以用,就代表用的时候可以随便糟蹋它,拆它? ? ?
    字符串效果上相当于是char[]字符数组,但是底层原理是byte[]数组   <李>   

    字符串类的创建(3 + 1种方式)
    2.1三种构造方法
    公共字符串();创建一个空白的字符串,不含有任何的内容
    公共字符串(char[]数组);根据字符串数组的内容,来创建对应的字符串
    公共字符串(byte[]数组);根据字节数组的内容,来创建对应的字符串
    三种构造方法用代码演示一遍
    公共类ConstructString {
    公共静态void main (String [] args) {
    //第一种构造方法:公共字符串();创建一个空白的字符串,不含有任何的内容
    字符串str1=新的字符串();
    System.out.println(“第一个字符串:“+ str1);//第一个字符串:

      
     <代码>//第二种构造方法:公共字符串(char[]数组);根据字符串数组的内容,来创建对应的字符串
      char [] charArray={' A ', ' B ', ' C '};
      字符串str2=新的字符串(charArray);
      system . out。println(“第二个字符串:“+ str2);//第二个字符串:美国广播公司(ABC)//第三种构造方法:公共字符串(byte[]数组);根据字节数组的内容,来创建对应的字符串
      byte[]中byteArray={97、98、99};//注意,字节数组的元素,是ASCII码表的字符对应值
      字符串str3=新的字符串(中byteArray);
      system . out。println(“第三个字符串:“+ str3);//第三个字符串:美国广播公司(abc)  
      

    }
    }
    2.2一种直接创建
    字符串str4=癏elloWorld !“
    1
    不管有没有新的,只要是双引号内的东西,JVM会都会判断到是字符串,所以可以直接创建

      李   <李>   

    常量池
    3.1字符串中关于比较的小知识
    我们要知道,在java中,如果用(String1==String2相等)比较两个字符串,比较的是这两个字符串的地址是否一样,而如果想知道它们的值是否一样,XM返佣www.fx61.com/brokerlist/xm.html,用的是字符串的=方法,比如:
    公共静态void main (String [] args) {
    字符串str1=新的字符串(“hello");
    字符串str2=新的字符串(“hello");

      
     <代码>//比较str1的地址是不是和str2的地址一样
      system . out。println (str1==str2);//错误不一样//比较str1的值和str2的值是不是一样
      system . out。println (str1.equals (str2));//真正的一样,都是你好 
      

    3.2}
    堆(heap)中的常量池
    str1和str2的比较结果为真的,证明了它们是同一个字符串,只不过有两个名字而已,在内存中都是指向同一个地址,它们在的地方叫常量池,所以常量池的你好字符串是可以共享使用,不可修改的。
    str1和str3不一样,证明它们的地址是不一样的,通过新来创建的字符串,都不是在常量池中,但也是常量
    公共类ConstantPool {
    公共静态void main (String [] args) {
    字符串str1=癶ello";
    字符串str2=癶ello";
    字符串str3=新的字符串(“hello");

      
     <代码> system . out。println (str1==str2);//正确的
      system . out。println (str1==str3);//错误
      system . out。println (str2==str3);//错误 
      

    }
    }

      李   <李>字符串的比较方法
    4.1字符串的=方法
    由3。常量池中的小知识,我们知道比较两个字符串的值是否一样,用的是=方法,返回值是一个布尔值,一样就是真的,不一样就是假的。   
  

公共布尔=(对象obj)
补充:任何对象都可以用对象进行接收,字符串类的当然也可以。

  

=方法具有对称性,也就是str1.equals (str2)和str2.equals (str1)的结果是一样的
注意:如果比较双方是一个常量一个变量,推荐把字符串常量写在前面
即推荐“abc”.equals (str)不推荐:str.equals (abc)
因为如果字符串str是一个空,“abc”.equals (str)的结果肯定是假的,但是str.equals (“abc”)这样写将会导致空指针异常NullPointerException,不要随随便便搞一个异常出来。
4.1字符串的equalsIgnoreCase方法
它和=方法的区别在于,它忽略了大小写,忽略忽略,情况大小写
公共静态void main (String [] args) {
字符串str1=癶ello";
字符串str2=癶ello";

  
 <代码>//比较str1的值和str2的值是不是一样,严格区分大小写
  system . out。println (str1.equals (str2));//错误//比较str1的值和str2的值是不是一样,忽略大小写
  system . out。println (str1.equalsIgnoreCase (str2));//正确的
  }

java的String类