2018年9月面试题汇总

以下为这段时间参加几家公司面试记录下来的部分面试题:

一、Spring

1、谈谈自己对SpringAOP和IOC的理解,核心机制、原理及项目中的运用。

2、Spring上下文的加载方式有哪些?

3、以往项目中是如何对事务进行管理的?

4、Autowired和resource的区别?

5、使用SpringBoot和以往的SSM有什么不同,为什么要选用SpringBoot?

6、谈谈SpringCloud和Dubbo?

7、描述一下SpringMVC的工作流程。其包含哪4个主要组件?

8、描述一下bean的生命周期和加载过程。

9、描述一下AOP的代码实现?

10、以往项目中AOP有哪些使用场景?

二、Mybatis

1、以往项目中mybatis是如何实现分页的?

2、例举Mybatis里的常用标签。

3、Mybatis的插件运行原理。如何编写一个插件?

4、#和$有什么不同,两者分别在什么场景下使用?

5、#底层是如何实现防止SQL注入的?如果不用Mybaits你会通过什么方式实现防止SQL注入?

三、Java集合类

1、List和Set集合的区别?

2、ArrayList的加载因子,默认容量和扩容增量是多少?是容量不够了还是快不够了进行扩容?

3、谈谈HashMap的元素碰撞?

4、怎么去删除ArrayList中不符合条件的元素?

5、Java线程安全的集合是通过什么手段实现线程安全的?

6、有什么其他方法可代替synchronized实现线程安全类。

7、HashMap除了使用链表,还使用到了什么数据结构?

8、ArrayList中的元素是通过什么方式实现排序的?

9、HashTable和HashMap的区别?

10、有看过concurrentHashMap的源码吗?它是如何保证线程安全的?

四、多线程

1、对多线程的理解?多线程的作用是什么?多线程为什么要使用线程池(好处/优点)。在所作项目中什么场景会用到?

① 几乎所有操作系统都支持同时运行多个任务(IOS是单任务系统),一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时(如QQ),内部就可能包括多个顺序执行流,每个顺序执行流就是一个线程。

② 多线程时得同一个进程可以同时并发处理多个任务(如边视频边聊天)。

③ 当单个任务处理的时间比较短且需处理的任务的数量比较大的时候会考虑使用线程池。减少在创建和销毁线程上所花的时间以及系统资源的开销。如果不使用线程池很有可能造成系统创建大量线程从而导致消耗完系统内存以及过度切换。

④ 图片上传业务

2、如何获取线程的返回值?

3、谈谈对乐观锁和悲观锁的理解

4、谈一谈Lock锁

5、线程池的作用。

6、Java线程池有哪几种?各有什么特性?

7、多个线程如何共享变量?使用ThreadLocal

8、wait()和sleep()的区别?

9、如何唤醒一个线程?

10、怎么保证T1执行完后执行T2?

11、有用过CountdownLatch()方法吗?

12、在Java中CycliBarriar和CountdownLatch有什么区别?

13、悲观锁除了synchronized还有哪些?

14、乐观锁的缺点?

15、synchronized有哪几种使用方式?

16、Volatile和synchronized的区别?

17、当线程池中的线程最大数为10,并发的请求数是100,那么有效的请求是多少?

18、ThreadLocal和Synchronized的区别?

19、乐观锁是怎么实现的?谈谈CAS

20、有看过ThreadLocal的源码吗?它内部代码是怎么实现的?

五、JVM

1、描述JVM类加载机制(过程)。

2、JVM原理

3、垃圾回收原理

4、谈谈JVM的新生代、老年代、永久代。

5、谈谈JVM运行数据区?

6、JVM有哪几种GC回收器?

六、MySQL

1、MySQL常用存储引擎有哪些,都分别有哪些特性。

2、InnoDB是行锁还是页锁?

3、谈一下以往工作中对SQL优化的策略措施。

4、查询出各班成绩前五名的学生(MySQL)。

5、Having的作用和用法?

6、索引的原理

7、为什么有主键索引却还有唯一索引,两者的区别是什么?

8、索引的数据结构了解吗?

9、where条件分别为like ‘%wz%’ like 'wz%' like '%wz'这三种情况,设计的索引对这三种情况是否有效?

10、谈谈联合索引

11、MySQL默认的隔离级别?

12、MySQL默认是哪类锁?

13、MySQL怎么实现全文检索查询。

14、事务的四大基本要素是什么?

15、MySQL的四种事务隔离级别

16、数据库三范式是什么?

17、MySQL索引哪些情况下会失效?

18、MySQL的行锁怎么使用?

19、对于MySQL你是怎么去进行SQL优化的?选用什么工具?

20、分库分表如何设计?

七、Dubbo

1、Dubbo是怎么进行监控的?

2、描述一下Dubbo的实现原理?

八、Tomcat

1、Tomcat启动后,Web项目的加载顺序?

2、Tomcat优化

九、其他

1、以往项目中遇到哪些问题让你印象比较深刻,当时又是如何解决的?

2、看过哪些源代码?

3、前后端是通过什么协议通信的?HTTP或Socket

4、给你一个功能模块,描述一下你开展的设计实现流程?

5、有用过Jetty容器吗?

6、有用过MQ消息中间介吗?

7、ibatis和hibernate的区别?

8、抽象类和接口的区别?

9、什么是第三方支付?

10、String和StringBuffer的区别?

11、冒泡排序算法的实现

12、项目的文件结构下包含哪些目录,比如WEB-INFO?

13、JFinal快速开发框架快在哪里?

14、HTTP和HTTPS的区别?

15、怎么防范redis缓存穿透

16、了解jar包热加载及隔离技术吗?

17、使用SpringBoot时都用过哪些插件?

18、谈谈你对分布式的理解?

19、例举Linux的常用命令及功能?

20、BIO、NIO、AIO的区别?

21、Redis为什么采用单线程?

22、容器是什么结构(如Spring和Tomcat容器)?

23、Linux支持的最大线程数是多少?

24、分布式锁的实现方式有哪几种?如何实现?

25、Reids有几种部署方式?各有什么优缺点?

26、有用过solr框架吗?实现原理是什么?以往项目有哪些使用场景?

27、Netty与Java NIO的对比?

28、现在正在看的有哪几本书?

29、用过的Java构建工具有哪些?Gradle是什么语言开发的?

30、通过RMI接口作为分布式请求调用转发,用的是什么协议?TCP、UDP、Socket还是HTTP?

31、JDK1.7在JDK1.6基础上有哪些不同?

32、Redis有哪几种持久化方式?各有什么特性,项目中运用到哪种持久化方式?

33、你作为架构师的话,会考虑如何架构设计一个系统?

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值