九、如何将字符串反转?
使用StringBuilder 或者 StringBuffer 的 reverse() 方法。
StringBuilder sb = new StringBuilder();
sb.append("abcdef");
System.out.println(sb.reverse());
StringBuffer sf = new StringBuffer();
sf.append("abcdef");
System.out.println(sf.reverse());
十、String 类的常用方法有哪些?
- indexOf() :返回指定字符的索引
- charAt():返回指定索引处的字符
- replace():字符串替换
- trim():去除字符串两端空白
- split():分割字符串,返回一个分割后的字符串数组
- getBytes():返回字符串的buye类型数组
- length():返回字符串长度
- toLowerCase():将字符串转成小写字母
- toUpperCase():将字符串转成大写字母
- subString():截取字符串
- equals():字符串比较
十一、抽象类必须要有抽象方法吗?
不需要,抽象方法只能出现在抽象类中,抽象类中可以没有抽象方法。
十二、普通类和抽象类有哪些区别?
- 普通类不能包含抽象方法,抽象类可以包含抽象方法
- 抽象类不能直接实例化,普通类可以直接实例化
十三、抽象类能使用 final 修饰吗?
不能,定义抽象类就是让其他类继承的,如果定义为 final 就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类。
十四、接口和抽象类的区别?
- 实现:抽象类的子类使用 extends 来继承,接口必须使用 implements 来实现接口。
- 构造函数:抽象类可以有构造函数,接口不能有。
- main 方法:抽象类可以有main 方法,并且我们可以运行它,接口不能有 main 方法。
- 实现数量:类可以实现很多个接口,但是只能继承一个抽象类。
- 访问修饰符:接口中的方法默认使用 public 修饰,抽象类中的方法可以是任意访问修饰符。
十五、java 中 IO 流分为几种?
按功能来分:输入流(input)、输出流(output)。
按类型来分:字节流、字符流。
字节流和字符流的区别:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。
十六、BIO、NIO、AIO有什么区别?
- BIO:Block IO 同步阻塞式 IO,就是我们平时使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
- NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel (通道)通讯,实现了多路复用。
- AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO,异步 IO 的操作基于事件和回调机制。
十七、Files 的常用方法有哪些?
- Files.exists():检测文件路径是否存在。
- Files.createFile():创建文件。
- Files.createDirectory():创建文件夹。
- Files.delete():删除一个文件或目录。
- Files.copy():复制文件。
- Files.move():移动文件。
- Files.size():查看文件个数。
- Files.read():读取文件。
- Files.write():写入文件。