Day_14

本文详细介绍了Java中String类的特性和使用方法,包括字符串创建、构造方法、常用API及注意事项,并对比了String与StringBuilder、StringBuffer的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. String

1.1 概述

java.lang.String : 是字符串类,底层就是一个final修饰的char数组,所以String很多特性就是数组的特性,比如长度一旦确定不能更改

1. 字符串一旦创建,这个字符串对象不能在更改

2. 为了提升字符串的访问和存储效率,Java虚拟机一种缓冲机制,把字符串都保存到了字符串常量中

3. 在执行程序的过程中,加入要用到一个字符串 a ,String s1 ="a" ;先去字符串常量中检索,是否有a,如果没有就创建一份

4. 假如有了, String s2 = "a"; 就不再创建,把已有的这个a返回,所以导致 String s1 ="a"; String s2 ="a";此时,使用s1==s2,他也是true,因为他们指向同一字符串对象 就是 a

1.2 基本使用

第一部分:创建一个对象,因为他们都指向常量池

第二部分: 如果使用了new的方式,那么会创建堆内存对象,该字符串对象会保存在堆内存中

1.3 构造方法

 

 1.4 常用方法

学习API : ①功能是什么 ②入参和出参是什么 ③怎么用

 1 char charAt (int index ) : 返回该字符串中,指定位置的字符

2 boolean endsWith(String suffix) : 判断该字符串是否以指定字符串结尾

   boolean startsWith(String prefix) : 判断该字符串是否以指定字符串开始

 3 boolean equalsIgnoreCase(String str) : 不区分大小写比较两个字符串是否相等

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

 

5 char[] toCharArray() : 把字符串转换为字符数组并返回

 

6 int indexOf(String str) : 获取该字符串中指定字符串的起始索引,找不到返回-1

 

7 int indexOf(String str,int index) :从指定位置开始查找(包含),获取该字符串中指定字符串的起始索引,找不到返回-1

  

8  index lastIndexOf(String str) : 同上,最后一次出现的索引 找不到返回-1

 

9  int length() : 返回该字符串的长度

 

10 String replaceAll(String regex . String replacement);   替换指定字符,支持正则表达式

    String replace (String str . String replacement); 不支持正则表达式

 

11 String[] split(String regex) : 分割字符串,返回字符串数组,支持正则表达式,注意 点,需要转义

 

 12 String substring(int begin);获取该字符串中,以某个下标起始的子字符串(包含)

 

13  String substring(int begin, int end) :  获取该字符串中,以某个下标起始(包含)到某个下标结束的子字符串(不包含)

 

 14 String trim() : 去除字符串两边的空格

 

15  String toUpperCase() : 转大写

      String toLowerCase() : 转小写

 

16 static String valueOf(Object obj) :调用该对象的toString方法,如果为null,则不再调用toString而是返回字符串null, 打印一个引用类型的时候,会自动调用String的valueOf 所以 会自动调用toString方法

 1.5 注意

2. StringBuffer和StringBuilder

2.1 概述

StringBuffer和StringBuilder:都是字符串缓冲区,可以做拼接操作 

StringBuffer、StringBuilder 和 String 的区别:

                String : 底层是char数组,定长,一旦确定不可更改,不适合做字符串拼接操作

                StringBuffer和StringBuilder : 底层是char数组,变长,预先在内存中申请一块空间,用来保存很多字符如果预留空间不够了,会自动扩容.默认容量为 16,扩大容量 (当前容量+1)*2   16->34->70

 StringBuilder和StringBuffer的区别 : 

StringBuffer 线程安全,在多线程环境下,不会出现问题

StringBuilder 非线程安全,在多线程环境下可能会出现问题

 2.2 使用

3. 包装类 

3.1 概述

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

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

3.2 使用

基本类型  byte b1=12

封装为包装类  Byte b2=new Byte(b1);

3.3 Integer

3.4 转换

 

 

3.5 总结

 4. System

System类提供的public static long currentTimeMillis()用来返回当前时 间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差

此方法适于计算时间差。

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包

由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。

常用方法 :

 5. Date

5.1 概述

 获取时间和时间操作

5.2 用法

 

 

 
6. Random  

使用

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值