Java学习笔记-Java基础5(字符串)
1.String常量池:
1)Java为了提高性能,静态字符串(字面量、常量、常量连接的结果)在常量池中创建,并尽量受用同一个对象,重用静态字符串
2)对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回对象
3)new表示创建新对象,只有使用字面量赋值才会使用常量池中已有的对象
2.String部分方法:
1)int indexOf(String str, int index):查找字符串在当前字符串中的位置,返回查找到的第一个字母的下标位置
2)int lastIndexOf(String str):返回给定字符串最后一次出现的位置
3)String subString(int beginIndex, int endIndex):返回字符串中从下标beginIndex(包括)到endIndex(不包括) 符串
4)String subString(int beginIndex):返回字符串中从下标beginIndex(包括)到字符串结尾的子字符串
5)boolean startsWith(String str)/boolean endsWith(String str):判断字符串是否以给定的字符串开头或结尾
6)toUpperCase()/toLowerCase():转换字符串中英文字母的大小写形式
7)String.valuesOf(T):将其他类型转换为字符串类型
3.StringBuilder:
可变字符串,用于解决字符串频繁改变带来的内存消耗,主要方法有增(追加)、删(删除)、改(替换)、插(插入)
4.StringBuffer和StringBuilder的区别:
1)StringBuffer,线程安全,同步处理,性能稍慢
2)StringBuilder,线程不安全,并发处理,性能稍快
5.正则表达式:
用一组特殊的字符,描述一个字符串格式,作用是匹配一个字符串是否满足格式要求。正则表达式只关注格式是否正确,不关注内容是否有效
6.字符串关于正则表达式的方法:
1)boolean matches(String regex):使用给定的正则表达式验证当前字符串是否满足格式要求,满足返回true
2)String split(String regex):使用给定的正则表达式拆分当前字符串
3)String replaceAll(String regex, String replace):将字符串中满足正则表达式的内容替换为给定字符串
7.java.lang.Object类位于顶端,如果一个类没有父类默认继承该类,它的引用变量可以指向任何类型的对象
8.Java语言中,有许多地方默认调用toString(),如字符串+对象或System.out.println(对象),如果不重写该方法,会输出类名@散列码,所以建议重写该方法
9.==:比较对象是否是同一个
equals:比较两个对象是否相似
Object默认的equals规则是==
10.所有基本类型都有一个对应的包装类,在构造包装类后,不允许改变,包装类final修饰,没有子类。Number的子类提供了转变类型的方法,如:
-doubleValue():以double的形式返回数值
-intValue():以int的形式返回数值
-floatValue():以float的形式返回数值