别摸鱼了,来几道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()方法。

注:其中的解答只是个基本答案,不是什么标准答案,每个人面试的时候都不一样,所以面试题的解答方式还需要自己心有腹稿,只是一个记录,望大家可以稍作借鉴。

posted @   Ijiran  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示