1.场景描述
最近有朋友私信,说网上的面试资料有点散,还有些过期的,问老王可否帮忙整理下,老王晚上恰好有空,就给梳理了下,分享给你们。java
2.解决方案
2.1 说明
(1)面试的题目多数是从网上找的,老王过滤梳理了下,把一些不经常使用的或者知道就行的过滤掉了,又加了一些老王本身的,你们面试前背背,更加容易经过“月薪20k”的工做吧。面试
(2)有关springboot和springcloud的问题就很少说,老王有这两个系列的博客,能够看下,免费的,就挑了两三个题目,有问题也请关注老王的公众号,直接沟通。spring
(3)面试题仅仅是基础,其实大厂或者有点要求的公司,通常都是直接聊,主要问实际项目经验,面试题做为辅助,通常不会让直接作题,假若有,能够考虑接下来是否有面试的必要。数组
2.2 开始正题
一、maven、springboot、springcloud之间的关系安全
(1) maven是springboot的基础,springboot项目自己就是maven项目。在maven项目中使用springboot的多个starter加几个约定,就能成为springboot项目了。springboot
(2)springboot是springcloud的基础,springcloud自己是springboot项目。服务器
(3)关系:maven->springboot->springcloud微信
maven是springboot的基础,springboot是springcloud的基础,maven不依赖于springboot,springboot不依赖与springcloud。多线程
二、 nacos与eureka区别架构
(1)springcloud eureka是注册中心,负责微服务的注册与发现,起到承上启下的做用,在微服务架构中至关于人体的 大脑,很重要,nacos是阿里巴巴出的,功能相似eureka,区别再也不啰嗦了。
(2)nacos的部署方式与springcloud eureka不太同样,euraka是须要建立springboot项目,而后将euraka服务端经过gav的方式加载进来,而后部署项目。
(3)nacos是直接从阿里巴巴nacos的官网下载jar包,启动服务。
三、描述一下JVM加载class文件的原理机制?
答:JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类。类的加载是指把类的.class文件中的数据读入到内存中,一般是建立一个字节数组读入.class文件
四、java 中操做字符串都有哪些类?它们之间有什么区别?
操做字符串的类有:String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操做都会生成新的 String 对象,而后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 能够在原有对象的基础上进行操做,因此在常常改变字符串内容的状况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,因此在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
5. BIO、NIO、AIO 有什么区别?
- BIO:Block IO 同步阻塞式 IO,就是咱们日常使用的传统 IO,它的特色是模式简单使用方便,并发处理能力低。
- NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端经过 Channel(通道)通信,实现了多路复用。
- AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操做基于事件和回调机制。
6. 解释一下什么是 ioc?
IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,其实叫“依赖注入”更加合适。
软件系统在没有引入IOC容器以前,对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,本身必须主动去建立对象B或者使用已经建立的对象B。不管是建立仍是使用对象B,控制权都在本身手上。
软件系统在引入IOC容器以后,这种情形就彻底改变了,因为IOC容器的加入,对象A与对象B之间失去了直接联系,因此,当对象A运行到须要对象B的时候,IOC容器会主动建立一个对象B注入到对象A须要的地方。
经过先后的对比,咱们不难看出来:对象A得到依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这就是“控制反转”这个名称的由来。
说明:
有点多,小100个面试题,建议面试的话,能够背背,这样内心有点底,老王直接放网盘上了。
连接:https://pan.baidu.com/s/1bvzJYPQGnC28WfO_dmzJAg 提取码:rm55
欢迎关注原创微信公众号「软件老王」,分享一些软件技术、软件行业和好玩的事,里面还有免费分享的java书籍、百万张高清可商用图片等。