2021-07-18

一 整数缓冲区

  • 堆内有整数缓冲区内,其内保存了从-128到127的Integer类型,所以当对-128到127的值进行包装时,会直接引用这些包装好的值.

  • 在实际应用中,对已创建的对象进行复用,节省内存空间

package oop;



public class Main {
    public static void main(String[] args) {
        int n1 = 10;
        int n2 = 20;
        Integer integer = new Integer(n1);//普通装箱
        Integer integer1 = new Integer(n1);
        System.out.println(integer==integer1);//false

        Integer I1=Integer.valueOf(100);//自动装箱 Integer.valueOf()
        Integer I2=Integer.valueOf(100);
        System.out.println(I1==I2);//true

        Integer T1=Integer.valueOf(200);//自动装箱
        Integer T2=Integer.valueOf(200);//不在缓冲区的范围,所以需要在堆内开辟新的空间
        System.out.println(T1==T2);//false
    }
}

二 String类

2.1普通String类

  • 字符串是常量,创建之后不可改变(不可变性)
  • 字符串字面值存储在字符池 (方法区) 中,可以共享
  • String s = “小帅”;产生一个对象,字符池池中存储
  • String s=new String(“小帅”);产生两个对象,堆 池各存储一个,其中栈中变量指向堆中的对象[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwPLVTAQ-1626610761552)(C:\Users\77647\AppData\Roaming\Typora\typora-user-images\image-20210718082410840.png)]
package oop;

public class Main {
    public static void main(String[] args) {
        String s1 = new String("java");
        String s2 = new String("java");
        System.out.println(s1==s2);//false
        System.out.println(s1.equals(s2));//true
    }
}

buffer : n. 起缓冲作用的人(或物)

[发现了一个很不错的笔记](JAVA集合类简要笔记 - 内部类 包装类 Object类 String类 BigDecimal类 system类 - CoderZjz - 博客园 (cnblogs.com))

2.2 可变字符串

  • StringBuffer : 可变长字符串,运行效率慢、线程安全
  • StringBuilder : 可边长字符串、运行快、线程不安全

效率都比String高且节省内存

psvm(String[] args){
  // StringBuffer 和 StringBuilder 用法一致
  StringBuffer sb = new StringBuffer();
  // 1. append(); 追加
  sb.append("java no1");
  System.out.println(sb.toString());
  // 2. insert(); 添加、插入
  sb.insert(0, "在第一个位置插入");
  // 3.replace(); 替换
  sb.replace(0, 9, str); // 左闭右开
  // 4. delete(); 删除
  sb.delete(0, 5); // 左闭右开
  // 5. 清空
  sb.delete(0, sb.length());
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值