2018-07面试题目

1. JVM的类加载机制

    主要是双亲委派模型的东西。它是什么、怎么工作的、为什么要有它,以及打破双亲委派模型的例子。

2. JVM执行子系统

    主要是Java对象结构,对象头的内容等。

3. JMM模型

    主要是堆、栈、程序计数器等内容。栈的结构(操作数栈、本地变量表、常量池引用)、堆的结构。

4.GC算法

 标记-清除、标记-整理、标记-复制,以及分代垃圾回收算法。这里面可能还会问到对象年龄的一些东西。比如JVM默认对象年龄多大时会进入老年代等。

5. sync和Lock加锁、解锁机制的异同

  sync主要是借用了操作系统的monitor原语实现的,是一个非常重量级的锁。它表现为操作对象头的锁标识来实现加锁,而Lock是一种直接作用于线程的锁,是一种线程准入许可。类似于信号量。同时Lock可以用来实现公平锁。

6.偏向锁、轻量级锁、重量级锁

以上三种锁是虚拟机对锁的一种优化。当只有一个线程进入临界区的时候会不加锁对象,仅会将该线程id记录到临界资源的对象头中,当前线程不阻塞。而当有两个线程进入临界区的时候,一个线程会进入临界区执行,另一个线程会自旋几个CPU时钟周期等待获取临界资源的锁(自旋锁),而如果自旋期间还没进入临界区,那么此时锁会膨胀成重量级锁,将会使用操作系统层面的Mutex。另外,锁只能升级,不能降级。

7.sync和volatile的作用和实现等

 主要是多线程的原子性、可见性、有序性,指令重排序和Happen-before原则。

8. MapReduce

    这个问题主要是当时面试官脑洞大开,随便问了我一下,我并没有大数据的开发经验。只能跟他扯了一下map    reduce来自于函数式编程语言lisp。map是映射,reduce是化简,又和他扯了扯Java的ForkJoin框架。

9. HDFS

 这一部分是面试官看我回答的MapReduce很不错又顺便问的。我也没有HDFS的经验,就和他扯了一会GFS(Google File System)的论文。因为HDFS以及淘宝、腾讯的文件系统都是以这篇论文进行实现的。我说GFS维护一个在内存中运行的namenode主要存储文件的元数据信息,底层又有一些chunk server(数据块服务器)存储具体的文件实体,文件默认三个备份,采用CopyOnWrite(写时复制)巴拉巴拉一堆

10.HashMap的数据结构

数组加链表,数组优化查询速度,链表解决hash碰撞。1.8优化了链表,当链表长度大于8(为什么大于8 :平均查找时间)时转为RBTree(在这里问了我红黑树,我说红黑树太复杂,删除就有七种情况,我不会),防止链表过长带来的查询性能的降低。

11.HashMap与线程安全

 当面试官问你HashMap为什么线程不安全的问题时,其实他是想让你回答HashMap多线程写入的时候链表结构成环,导致CPU空转,利用率100%的这一个BUG。问我问啥出现这个bug,我说是在扩容期间产生的,后面的忘了。又问了我ConcurrentHashMap是怎么解决的这个问题的,我没回答出来。

12.ConcurrentHashMap

 底层数据结构、分段锁、CAS(操作系统提供的CAS原语)

13.阻塞队列的实现类、实现方法、重要API

    Lock和Condition的协作,数组和链表的两种实现方式,出队入队阻塞方法。

14.CopyOnWriteArrayList(写时复制)

实现方式(volatile和System.arrayCopy() )、适用场景(读非常多,写很少)、设计思想(空间换读取效率)

15.一般的数组、链表、栈、队列、树等常用数据结构

 .......

16.Spring IoC的设计思想和实现原理

思想是主要为了解耦。实现原理大概是包扫描、类加载、IoC容器初始化、被@Autowired标记的对象赋值。

17. Spring MVC请求转发的实现

包扫描、类加载、HandlerMap初始化,dispatcherServlet里根据请求的uri和请求方式(GET、POST....)从handlerMap里找到对应的Java方法。

18.  设计模式

我只回答了单例、简单工厂、生产者消费者、代理(动态、静态)。其中单例模式的7种写法也要了解一下,可以和面试官探讨最优雅的静态内部类实现。

19.TCP/IP协议

    TCP三次握手(客户端服务端互相确认收发信功能完好)、TCP拥塞机制、TCP粘包(主要是读写缓冲区引起的,可以引出Netty对粘包的三种解决方案)、TCP分段传输机制

20.UDP为啥不安全、TCP为啥安全

 UDP广播报文,发出去就不管了。TCP建立安全连接后才发送报文。

21.HTTP协议

    实现(基于TCP/IP协议,报文格式)、请求头响应头(URI、请求方法、状态码、Content-length、Content-type等等)、HTTP常见状态码及含义(200,304,400,404,500等等)。

22. NIO

I/O多路复用、Reactor模型、select/poll、epoll以及epoll的那个bug(很多人喜欢问这个bug,我被问过两次)。相比于BIO的优点。

23.数据库

数据库索引类型(hash和tree)、索引分别适用场景(=和<,>)、分库分表(水平分、垂直分)、数据库事务、分布式事务(CAP)、常用的用法、表锁行锁乐观锁、数据库设计范式(这我他妈的哪还记得啊)、innodb和其他引擎。

24.线程池

   线程池的几种实现类(cached、fixed、singleThread 我只记得三种)、线程池参数含义

25.ThreadLocal

    数据结构(线程id为key的map)、内存泄露(可用可达、可达不可用、可用不可达)

26.dubbo和spring cloud

    dubbo和spring cloud的实现原理、优缺点、流程、负载均衡算法(我只回答了随机和权重两种)等等。这里我diss了一下dubbo过分复杂的设计,面试官不置可否,后来我才知道这货是阿里出来的......

27.Linux

    Linux常用命令、管道等

28.git

代码冲突解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,416评论 1 14
  • 面试必背 会舍弃、总结概括——根据我这些年面试和看面试题搜集过来的知识点汇总而来 建议根据我的写的面试应对思路中的...
    luoyangzk阅读 6,753评论 6 173
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,699评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,236评论 11 349
  • 在这个“从娃娃抓起”的年代,父母什么都想给宝宝最好的,从吃的用的,到上学培训补习班,无微不至的关心着宝宝,同时也...
    清靜中和阅读 599评论 0 1