别摸鱼了,来几道Java面试题!(五)
这是我参与更文挑战的第18天,活动详情查看: 更文挑战
今天我们继续来看一些Java面试题,基本上是面试的时候常问的,有一定的概率会遇到,希望大家可以面试顺利。
1. 如何将一个字符串反转?
答:可以通过循环遍历的方式,期间使用String的charAt()方法进行取值,然后拼接字符串。
还有一种写起来比较简单的方式,那就是使用StringBuffer中的reverse()进行反转。
2. BIO、NIO、AIO分别是什么?三者有什么区别?
答:
BIO,Block IO,同步阻塞型IO,平时用的最多的IO模式,线程从一开始就会阻塞,直到执行完成,特定就是简单、使用方便,缺点是并发处理能力弱,可以通过使用线程池来改善性能。
NIO,Non IO,同步非阻塞型IO;客户端、服务端之间通过Channel通讯,实现了多路复用;JDK1.4引入该框架,给高并发、高负载的应用很大的使用空间。
注:这里的多路复用可以加深了解,查查资料,说的好可以让面试官眼前一亮。
AIO,Asynchronous IO 是 NIO 的升级,也称作NIO2,异步非阻塞型IO,通过回调机制来实现异步。
3. sleep() 和 wait() 有什么区别?
答:sleep()是线程类(Thread)的方法,wait()是Object类的方法。
sleep()是让当前线程休眠指定的时间,期间并不会释放自身所拥有的锁。
wait()在调用之后,会释放自身所拥有的锁,进而进入等待队列。
使用范围:wait只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。
4. 线程的 run()和 start()有什么区别?
答: run()方法是直接在当前线程中直接执行方法,不会新开启一个新的线程。
start()方法是开启一个新的线程,并在新的线程中执行run()方法。
注:其中的解答只是个基本答案,不是什么标准答案,每个人面试的时候都不一样,所以面试题的解答方式还需要自己心有腹稿,只是一个记录,望大家可以稍作借鉴。
作者:Ijiran
来源链接:https://www.cnblogs.com/Ijiran/p/15967349.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。