Application Programming Interface
字符串、集合、文件、输入输出、网络、多线程
文档注释
文档注释是功能级注释,用来说明一个类,一个方法或一个常量的,因此只在上述三个地方使用。
文档注释可以使用Java自带的命令javaDoc来对这个类生成手册
Java.lang.String使用了final稀释,不能被继承
字符串底层封装了字符数组及针对字符数组的操作算法
字符串一旦创建,对象内容不可改变,连接字符串会创建新对象
Java字符串在内存中采用Unicode编码方式,任何一个字符对用两个字节的定长编码
String类
String用来表示一个字符串
特点:
- java.lang.String使用了final修饰,不能被继承
- 字符串底层封装了字符数组及针对字符数组的操作算法
- 字符串一旦创建,对象永远无法改变,但字符串引用可以重新赋值
- Java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码
String常量池
Java在堆内存中开辟了一段空间用于缓存所有使用字面量形式创建的字符串对象,并在后期再次使用该字面量创建字符串时重用对象,避免内存中堆积大量内容一样的字符串对象来减小内存开销
Java为了提高性能,直接量字符串创建后会缓存在常量池中
对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象地址。
编译器
编译器在编译期间若遇到几个计算表达式,发现在编译期可以确定结果时就会进行计算,并将结果编译到class文件中,
这样以来JVM每次执行字节码文件就无需再计算了
字符串常用方法
int length()
返回当前字符串的长度
indexOf()
检索给定字符串在当前字符串中的位置,若当前字符串不含有给定内容则返回值为 -1
substring()
截取当前字符串中指定范围内的字符串,两个参数分别为开始位置的下标和结束位置的下标。
重载的方法是从指定位置开始截取到字符串末尾
trim()
去除一个字符串两边的空白字符
charAt()
返回当前字符串指定位置上的字符
startsWith()和endsWith()
判断当前字符串是否是以给定的字符串开始或结束的。
toLowerCase()和toUpperCase()
将当前字符串中的英文部分转换为全大写或全小写
valueOf()
String提供了一组重载的静态方法
是将其他类型转换为String
String内容修改
由于String的不变对象特性,修改内容会创建新对象
String不适合频繁拼接,性能低,开销大
String没有提供修改内容的方法 不便于内容修改
StringBuilder
StringBuilder是用于编辑字符串内容
正则表达式
Object