常用类与基础API-String_学习简记

学习重点

1. String类的【不可变性_与final关键字有关】的理解&String类的类声明、内部属性的声明(可以Ctrl+12查阅API)

        1)在Java中,如何输出对象的内存地址(或者:获取对象的内存地址的标识符-用于区别于不同的对象)

2.String实例化的两种方式:

        1)字面量的方式

        2)new构造器的方式

//第1种方式:字面量的方式-->字符串存储在字符串常量池中(Stringtable)
String s1 = "hello";
//第2种方式:new构造器的方式-->存放在堆中
String s2 = new String("hello");

3.String字符串拼接操作的不同方式(三种):

        1)常量+常量

                        结果仍然存储在字符串常量池中,返回此字面量的地址

        2)常量+变量、变量+变量

                        通过new的方式创建一个新的字符串,返回堆空间中此字符串对象的地址

                        常量+变量:String s6 = "hello" + s2;

                        变量+变量:String s7 = s1 + s2;

        3)调用字符串的intern()方法:

                        返回的是字符串常量池中字面量的地址

                        调用intern():String s8 = s5.intern();

4.String类的常用API方法--用到的时候再去API查阅使用就可以

5.字符串类型的三个类的对比讲解:String、StringBuffer、StringBuilder

        1)三个类的对比

                        String类:不可变的字符序列

                        StringBuffer类:可变的字符序列,线程安全(因为用了synchronize关键字),但效率低

                        StringBuilder类:可变的字符序列,线程不安全(因为没用synchronize关键字),但效率高

        2)StringBuffer、StringBuilder可变性分析_源码分析(API中的声明没用final关键字,所以可变)

        3)源码启示

                (1)如果开发中需要对文本数据(字符串)频繁的进行增、删、改等操作,建议使用StringBuffer或StringBuilder替换String. 因为使用String效率低。

                (2) 如果开发中,不涉及到线程安全问题,StringBuffer&StringBuilder中建议使用StringBuilder替换StringBuffer。因为使用StringBuilder效率高

                (3)如果开发中大体确定要操作的字符的个数,建议使用带int capacity参数的构造器。因为可以避免底层多次扩容操作,性能更高。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值