ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java面试整理(一)

2021-08-21 01:31:51  阅读:216  来源: 互联网

标签:BIO java NIO 水壶 接口 面试 线程 烧开 整理


  整理些面试题,以备面试会遇到。

1、重载和重写的区别?

  重载:发生在同一个类中,方法名相同,形式参数类型不同,和返回值类型无关,和修饰符列表无关。

  重写:发生在不同的类中,方法名相同,形式参数类型相同,返回值小于等于父类 ,修饰符大于等于父类。

  形式参数类型指参数类型、参数个数、参数顺序。

2、String、StringBuffer和StringBuilder区别?

  String:不可变字符串。

  StringBuffer:可变字符串,效率较低,线程安全。

  StringBuilder:可变字符串,效率较高,线程不安全。

3、抽象类和接口区别?

  抽象类:可以有抽象方法和实现方法,

      一个类只能继承一个抽象类,实现时可以有选择地重写需要用到的方法,

      is a关系,比如空调是制冷机,并具有加热功能。所以空调需继承制冷机类。

      接口:只能有抽象方法,

      一个类能实现多个接口,实现接口时一定要实现接口里定义的所有方法,

      like a关系,比如空调是制冷机,并具有加热功能。所以空调需实现加热接口。

4、BIO、NIO、AIO 有什么区别?

  BIO:同步阻塞,使用那个经典的烧开水例子,有一排水壶在烧开水,BIO模式是一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。

  NIO:同步非阻塞,如果还拿烧开水来说,NIO的做法是叫一个线程不断的轮询每个水壶的状态,当检测到有某个水壶的状态发生了改变,从而进行下一步的操作。

  AIO:异步非阻塞,对应到烧开水中就是,为每个水壶上面装了一个开关,水烧开之后,水壶会自动通知我水烧开了。

  简而言之,同步和异步最关键的区别在于同步必须等待(BIO)或者主动的去询问(NIO)IO是否完成,而异步(AIO)操作提交后只需等待操作系统的通知即可。

      

 

标签:BIO,java,NIO,水壶,接口,面试,线程,烧开,整理
来源: https://www.cnblogs.com/luoyanyu/p/15168565.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有