Java基础面试题(1)
程序员文章站
2022-03-15 19:35:38
...
1、String str="i"与 String str=new String(“i”)一样吗?
不一样,内存的分配不一样;
前者分配的内存在常量池中,后者分配在堆内存中。
2、String 类的常用方法都有那些?
- indexOf():返回指定字符的索引
- charAt(): 返回指定索引处的字符
- replace():字符串替换
- trim():去除字符串两端空白
- split():分割字符串,返回一个分割后的字符串数组
- getBytes():返回字符串的byte 类型数组。
- length():返回字符串长度
- toLowerCase():将字符串转换为小写字母
- toUpperCase():将字符串转换为大写字母
- substring():截取字符串
- equals():字符串比较
public class StringTest {
public static void main(String[] args) {
//两种方式,前者在常量池,后者在堆内存中
String str1 = "hello world!";
String str2 = new String("hello world");
//String 的常用方法
//indexOf():返回指定字符的索引
int a = str1.indexOf('w');
System.err.println("a = "+ a); //a = 6,从0 开始计数,计算第一个位置
//charAt(): 返回指定索引处的字符
char b = str1.charAt(0);
System.err.println("b = "+ b); //b = h
//replace():字符串替换
String str3 = str1.replace('l','e');
System.err.println("str3 = " + str3); //str3 = heeeo wored! 是字符串全部替换
//trim():去除字符串两端空白
String str4 = " hello ";
String str5 = str4.trim();
System.err.println(str5); //hello
//split():分割字符串,返回一个分割后的字符串数组
String[] cd = str1.split(" ");
for(String cde : cd){
System.err.println(cde);
}
//getBytes():返回字符串的byte 类型数组。
byte[] ef = str1.getBytes();
for(byte cde : ef){
System.err.println(cde);
}
//length():返回字符串长度
System.err.println(str1.length()); //12
//toUpperCase():将字符串转换为大写字母
String str6 = str2.toUpperCase();
System.err.println(str6); //HELLO WORLD
//toLowerCase():将字符串转换为小写字母
String str7 = str6.toLowerCase();
System.err.println(str7); //hello world
//substring():截取字符串
String str8 = str1.substring(5);
System.err.println(str8); // world! 截取字符串是从1开始算第几个字符
//equals():字符串比较
boolean tmp = str2.equals(str7);
System.err.println(tmp); //true
}
}
输出结果:
a = 6
b = h
str3 = heeeo wored!
hello
hello
world!
104
101
108
108
111
32
119
111
114
108
100
33
12
HELLO WORLD
hello world
world!
true
3、Files的常用方法有哪些?
- Files.exists():检查文件路径是否存在;
- Files.createFile():创建文件
- Files.createDirectory():创建文件夹
- Files.delete():删除一个文件或目录
- Files.copy():复制文件
- File.move():移动文件
- Files.size():查看文件个数
- Files.read():读取文件
- Files.write():写入文件
4、抽象类、接口与普通类的区别?
5、String,StringBuffer,StringBuilder的区别?
6、AIO,BIO,NIO的区别?