常用API(Day14)

String

        Java.lang.String字符串类。底层是一个字符数组,所以它的很多特性是数组的特性,

        注意:1.字符串一旦确定,不能修改, 2.为了提高字符串效率,Java虚拟机使用了一种缓存技术——字符串常量池。

        创建一个字符串对象时,例如"abc",首先看字符串常量池是否有abc,如果没有就创建一个。所以很多时候,字符串类型的比较也可以使用==,因为它们的地址是一样的(仅限于字面量)。

        如果使用new方式创建的,情况会不同。会在堆内存中创建字符串对象,同时也会在字符串常量池中创建该字符串对象。

        基本使用:

        构造方法 

         常用API

        1.char charAt(int index):获取字符串中对应索引的字符

         2.boolean endsWith(String str):判断某个字符串是否以指定字符串结尾

         3.boolean startsWith(String str):判断某个字符串是否以指定字符串开始

         4byte[] getBytes():把字符串转化为字节数组并返回

         5.char[] toCharArray():把字符串转发为字符数组

         6.int indexOf(String str):获取指定字串在该字符串中的索引下标,如果不存在返回-1

        从左往右找,如果存在多个符合的,则返回第一个符合条件的下标

         传入8,意味着从下标8开始往后找

         7.int lastindexOf(String str):最后一次出现的索引,找不到返回-1

        从右往左找,如果存在多个符合的,则返回第一个符合条件的下标

        输入9,意味着从下标9开始往前找 

        8.int length():返回字符串长度 

         9.String replace(String a,String b):替换,返回替换后的新字符串

        

        replaceAll:支持正则表达式 

        10.String[] split(String str):以特定字符串为分割,返回字符串数组,支持正则表达式 

        11.String toUpperCase():转化为大写并返回 

         12.String toLowerCase():转化为小写并返回

         13.String trim():删除两边(首尾)空格并返回

        14.String substring(int index):截取字符串,获取指定索引开始(包含指定索引)到结束的子字符串 

         左闭右开 包含2不包含5

         15.比较两个字符串是否相等(区分大小写)

        16.不区分大小写比较两个字符串是否相等 

         17.static String valueOf(Object obj):调用对象的toString方法,并对Null值进行处理,避免空指针

        StringBuffer/StringBuilder 

        底层是char数组,只不过该数组长度可以变化,所以当我们需要频繁的字符串拼接时可以使用StringBuffer/StringBuilder 。

        原理:预先在内存中申请一个空间,足以容纳较多字符,如果预留空间不足,会自动扩容。

        默认初始化长度为16,扩大容量为(length+1)*2

        区别:StringBuffer : 线程安全,在多线程环境下不会出现问题,常用于类中

                  StringBuilder : 非线程安全,在多线程环境下,可能出现问题,常用与方法中

包装类 

        概念:1.装箱就是自动将基本数据类型转换为包装器类型

                   2. 拆箱就是自动将包装器类型转换为基本数据类型

        注意:1.5之后引入自动装箱自动拆箱。

         使用

        Integer 

        基本使用

        常用方法

 

         相互转换

        自动装箱/自动拆箱

 

         深入整形常量池

        IntegerCache.cache 是整型常量池,是个数组,保存了256个Integer对象, 分别是 -128~127。当我们进行自动装箱或手动调用Integer.valueOf()方法时,会先判断是否符合整型常量池,如果符合范围,则直接在整形常量池中把提前创建好的对象引用,赋值给他即可,不用再次创建

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值