课程内容:
-
String类常见的面试题
-
String类常见的20个方法
String类常见的面试题:
-
new和不new之间的区别?
String x = "etoak";
String y = new String("etoak");
不new的方式涉及到常量池查找机制 永远先去常量池查看是否缓存过 如果缓存过 那么直接将值取出来使用 如果没有缓存过 那么进行缓存
new的方式不管常量池里面有没有 都会在堆内存里面开辟空间 -
String和StringBuffer/StringBuilder之间的区别?
String str = new String("OK");
StringBuffer buffer = new StringBuffer("OK");
StringBuffer和StringBuilder在第一次创建对象的时候 底层会多预留16块缓冲区 目的是为了追加连接效率高
String类创建对象的时候 底层开辟多大空间看单词多长 -
StringBuffer和StringBuilder之间的区别
StringBuffer同一时间允许一个线程进行访问 效率较低 但是不会出现并发错误 把子肉
StringBuilder同一时间允许多个线程进行访问 效率较高 但是可能会出现并发错误 KFC
String类中常见的20个方法
-
和长度有关的方法
int length() 得到字符串里面的字符个数
-
和数组有关的方法
byte[] getBytes() 将字符串转换成字节数组
char[] toCharArray() 将字符串转换成字符数组[打碎]
String[] split(String) 将字符串按照指定的内容劈开
-
和判断有关的方法:
boolean equals(String) 判断两个字符串的内容是否一样
boolean equalsIgnoreCase(String)忽略大小写的比较两个字符串的内容是否一样
boolean contains(String) 判断字符串里面是否包含某个内容
boolean startsWith(String) 判断字符串是否以指定内容开头
boolean endsWith(String)判断字符串是否以指定的内容结尾
-
和改变内容有关的方法:
String是不可改变类型 底层所有的方法都不会直接的操作原本的字符串 而是将调用者进行一份拷贝 对拷贝的值进行加工处理并且将处理之后的数据返回 所以注意接收
String toUpperCase() 将一个字符串全部转换成大写
String toLowerCase() 将一个字符串全部转换成小写
String replace(String,String)将字符串里面某个内容全部替换成指定内容
String replaceAll(String,String) 将字符串里面某个内容全部替换成指定内容 支持正则表达式
String replaceFirst(String,String) 将字符串里面的某个第一次出现的内容替换成指定内容
String trim() 去除字符串的前后空格
String substring(int x,int y) 从下标x一直截取到下标y-1对应的元素 [x,y)
String substring(int x)从下标x一直截取到字符串的最后
-
和位置有关的方法
char charAt(int) 找到指定下标处对应的元素
int indexOf(String) 找到某个内容第一次出现的下标
int lastIndexOf(String) 找到某个内容最后一次出现的下标
标签:String,int,StringBuffer,m1,内容,new,字符串,day10 From: https://www.cnblogs.com/zhaodenghui33/p/18185487