Java_笔记_String构造方法代码实现和内存分析

1.String的注意点:
1)String是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。
2)Java程序中所有字符串文字,都被视为String这个类的对象。
3)字符串的内容是不会发生改变的,它的对象在创建后不能被更改。
4)字符串拼接产生一个新的字符串。

2.创建String对象的2种方式
1)直接赋值 String name = “ABC”;(尽量使用这种。代码简单且节约内存。)
2)new
public String() 创建空白字符串,不含任何内容
public String(String original) 根据传入的字符串,创建字符串对象
public String( char[] chs) 根据字符数组,创建字符串对象
public String( byte[] ch s) 根据字节 数组,创建字符串对象
3)代码

public class StringDemo {
    public static void main(String[] args) {
        //1.使用直接赋值的方式获取一个字符串对象
        //★使用最多
        String s1 = "abc";
        System.out.println(s1);//abc

        //2.使用new的方式来获取一个字符串对象
        //空参构造:可以获取一个空白的字符串对象
        //◆用得较少
        String s2 = new String();
        System.out.println("@" + s2 + "!");//@!

        //3.传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
        //◆这个方式只要了解即可,用得较少
        String s3 = new String("abc");
        System.out.println(s3);//abc

        //4.传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
        //应用场景:修改字符串的内容(数组可以改变)
        //★使用多
        char[] chs = {'a', 'b', 'c', 'd'};
        String s4 = new String(chs);
        System.out.println(s4);//abcd

        //5.传递一个字节数组,根据字节数组的内容再创建一个新的字符串对象
        //应用场景:网络中传输的数据为字节信息
        //将字节信息转换成字符串。ASCII表。
        //★使用多
        byte[] bytes = {97, 98, 99, 100};
        String s5 = new String(bytes);
        System.out.println(s5);//abcd
    }
}

3.JVM的内存模型
1)栈内存:方法运行的时候进栈,执行完毕出栈。
2)堆内存:new出来的对象。
3)方法区:临时存储字节码文件。

4.StringTable(串池/字符串常量池)
1)注意:从JDK7版本开始,串池从方法区移到堆内存。
但不管它在哪里,运行机制不变。
2)当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在。
不存在:创建新的。存在:复用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值