Java干货来袭,三大知识点区别,你能分得清吗?
- 作者:创始人
- 发表时间:2021-12-11 09:35:55
BIO、NIO、AIO 有什么区别?Java操作字符串有什么区别?== 和 equals 的区别是什么?
在大家学习Java的过程中会遇见各种各样的问题,BIO、NIO、AIO 有什么区别?Java操作字符串有什么区别?== 和 equals 的区别是什么?
BIO、NIO、AIO 有什么区别?
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。
Java操作字符串有什么区别?
操作字符串的类有:String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐使用 StringBuffer。
== 和 equals 的区别是什么?
== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下equals 比较的是值是否相等
对于基本类型和引用类型 == 的作用效果是不同的,如下所示
基本类型:比较的是值是否相同;
引用类型:比较的是引用是否相同;
关注知了堂成都Java培训带你了解更多Java相关知识点和相关问题。