20道面试题

栏目:一针见血 作者:admin 日期:2018-11-14 评论:2 点击: 669 次

1.synchronized在jvm层面上是如何实现的?
2.Jvm的方法区存储了什么,有什么作用?
3.java堆的内存分配?
4.eden区和survivior区的比例,为什么survivor区分为俩块?
5.谈一下索引的原理,遵从什么原则
6.索引的类型,聚簇索引是什么,举个例子
7.复合索引(A,B,C),如1-> AC ,2->BCA,3-> CB,问哪种会用上索引
8.谈一下设计模式有几种?哪几种?
9.Spring使用了什么设计模式?
10.讲一讲FactroyBean?
11.redis有几种持久化方式?假如系统发生BeSafe,描述一下是如何持久化的?
12.ArrayList的原理讲一讲,扩容等
13.项目中使用到ReetrantLock,在分布式不同进程下如何解决?
14.假设在分布式环境下,客户端访问系统超时,查看服务器内存没有溢出,CPU没有大飙升,日志也没有明显报错,如何定位问题?
15.full GC问题如何定位?
16.线程池有哪几种?有哪几种拒绝策略?如何自定义拒绝策略?使用的消息队列有哪些?
17.项目中你怎么使用线程池,为什么要使用线程池?
18.NIO是什么?跟普通IO的区别?如何实现普通IO和NIO一样的效果?
19.实现了一个Runnable方法,方法未声明异常,程序中抛出一个运行时异常,如果有其他线程也在执行此程序段会发生什么情况?
20.多线程执行,我想当一个线程执行到某个程序段阻塞下面的程序等待其他线程后再全部执行,怎么实现?

20道面试题:目前有2 条留言

  1. 板凳
    farseer:

    7. 1和2会走索引,3不会,联合索引使用B+树作为数据结构,最左原则必须要索引引导列,否则无法走索引

    2018-12-20 上午11:48 [回复]
  2. 沙发
    farseer:

    1.每个class都会有一个对象监视器,被synchronized修饰的方法会在方法的开始添加MonitorEnter,并且在方法结尾处或者抛出异常的地方添加MonitorExit。vm只会保证一条线程获得该对象的对象监视器,这样就会保证同步性了。印象中只记得这些了,如有错误欢迎指正,彼此学习,谢谢~

    2018-12-20 上午11:46 [回复]

发表评论