String 字符串类型的使用详解入门 25

String字符串类型的使用详解入门。

  • String 类代表字符串类型,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。
  • String 类在 java.lang 包下,所以使用的 时候不需要导包.
String类的特点

String类定义的字符串也叫不可变字符串。

  1. 字符串不可变,它们的值在创建后不能被更改,我们发现改变的字符串实际上是指向了一个新的字符串对象(之前的字符串会被自动的回收)
  2. 正是因为 字符串对象 的值是不可变的,所以它们可以被共享
  3. 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[])
创建字符串对象的其他方法说明
  • public String() 创建一个空白字符串对象,不含有任何内容

  • public String(char[] chs) 根据字符数组的内容,来创建字符串对象

      可以吧字符数组的类容转变成字符串
      char[] chs = {'a','b','我','中','国'};
      String rs = new String(chs);
      System.out.println(rs);//ab我中国
    
  • public String(byte[] bys) 根据字节数组的内容,来创建字符串对象

      		byte[] bytes = {97 , 98 , 99 , 65 , 66 , 67};
              String rs1 = new String(bytes);
              System.out.println(rs1);//abcABC
    
  • String s = “abc”; 直接赋值的方式创建字符串对象,内容就是abc .经典写法!

注意:

  • 直接定义的"字符串内容"放在字符串常量池。

  • new出来的字符串对象放在堆内存中。

      34 String name1 = "赵丽颖"; // 这里有创建对象的,对象放在常量池!
      35 String name2 = "赵丽颖"; // 这里没有创建对象,共享了34行的字符串常量。
      所以这里只创建了一个字符串对象
    
    
      String name3 = new String("赵丽颖"); // 这里创建的字符串对象会放到堆内存中一份!常量池中也有一份!
      String name4 = "赵丽颖" ;  // 对象在常量池中!所以没有重新创建对象!
      所以这里也只创建了一个字符串对象
    
public class StringDemo {
    public static void main(String[] args) {
        // 1.String类型定义一个字符串对象变量:name
        String name = "cx";
        name += "学生" ; // name = name + "老师"
        System.out.println(name); // cx学生

        String name1 = "赵丽颖"; // 这里有创建对象的,对象放在常量池!
        String name2 = "赵丽颖"; // 这里没有,共享了34行的字符串常量。
        System.out.println(name1 == name2); // name1和name2指向的是同一个地址!!

        // 1.创建字符串对象的其他方式:调用有参数构造器。
        String name3 = new String("赵丽颖"); // 这里创建的字符串对象会放到堆内存中一份!!
        String name4 = "赵丽颖" ;  // 对象在常量池中!建议这样定义!
        System.out.println(name3);
        System.out.println(name4);

        // 2.  public String(char[] chs) 根据字符数组的内容,来创建字符串对象(了解)
        char[] chs = {'a','b','我','中','国'};
        String rs = new String(chs);
        System.out.println(rs);

        // 3.public String(byte[] bys) 根据字节数组的内容,来创建字符串对象
        byte[] bytes = {97 , 98 , 99 , 65 , 66 , 67};
        String rs1 = new String(bytes);
        System.out.println(rs1);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值