加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网_福州站长网 (https://www.0591zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动 > 正文

谈谈“野生”Java程序员学习的道路!

发布时间:2018-09-10 15:25:40 所属栏目:移动 来源:左潇龙
导读:副标题#e# 9月15日技术沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维! 一、引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完

IO包和NIO包的内容相对来说不是很多,首先NIO模型要熟悉,特别是其中的selector一定要非常清楚它的职责和实现原理。其实NIO的核心是IO线程池,一定要记住这个关键点。有的时候,面试官可能也会问你IO包的设计模式(装饰器模式),为什么要这样设计?

有的面试官还会问你有没有更好的设计,这个时候如果你不知道请果断说自己现在的水平有限,想不出来更好的设计,千万不要信口开河,随意YY。

4)Java的虚拟机的内容。这部分主要包括三部分,GC、类加载机制,以及内存。

一个GC部分简单的连环炮:

  • 面试官可以先问你什么时候一个对象会被GC?
  • 接着继续问你为什么要在这种时候对象才会被GC?
  • 接着继续问你GC策略都有哪些分类?
  • 你如果说出来了,继续问你这些策略分别都有什么优劣势?都适用于什么场景?
  • 你继续说出来了以后,给你举个实际的场景,让你选择一个GC策略?
  • 你如果选出来了,继续问你,为什么要选择这个策略?

下面是关于类加载机制的简单连环炮:

  • 首先肯定是先问你Java的类加载器都有哪些?
  • 回答了这些以后,可能会问你每个类加载器都加载哪些类?
  • 说完以后,可能会问你这些类加载之间的父子关系是怎样的?
  • 你在回答的时候可能会提到双亲委派模型,那么可以继续问你什么是双亲委派模型?
  • 你解释完了以后,可能会继续问你,为什么Java的类加载器要使用双亲委派模型?
  • 你回答完以后,可能会继续问你如何自定义自己的类加载器,自己的类加载器和Java自带的类加载器关系如何处理?

再来一个关于内存的连环炮:

  • 首先肯定就是问你内存分为哪几部分,这些部分分别都存储哪些数据?
  • 然后继续问你一个对象从创建到销毁都是怎么在这些部分里存活和转移的?
  • 接着可能会问你,内存的哪些部分会参与GC的回收?
  • 完事以后,可能还会问你Java的内存模型是怎么设计的?
  • 你回答了以后,还会继续问你为什么要这么设计?
  • 问完以后,还可能会让你结合内存模型的设计谈谈volatile关键字的作用?
  • 你在谈的时候,肯定会提到可见性,那么接着可见性这三个字,还可以继续问你并发的内容。

基本上Java语言本身以及语言稍微高级点的内容就是以上部分,如果你能把以上四部分了解的非常透彻,那基本上Java这部分就没啥问题了,因为光以上的内容就够你跟面试官聊很久了。你聊这些聊得久了,自然问你其它问题的时间就会短点。

你从LZ写这些问题的过程也应该能感受出来,很多时候,面试官都是顺着一条线一路问下去的,如果你觉得这条线你不熟悉的话,就要及时拐弯,引导面试官去问其它方面的问题。千万不要一直往下深入,直到自己跳不出来为止,那就尴了个尬了。

2、讲述自己的项目,并在中间穿插着问题

这一部分是面试过程中必问,也是聊得最久的一个阶段。除非你前面的语言部分非常扎实,扎实到面试官问了一两个小时,依旧没有探出你对语言本身的了解到底有多深。否则的话,你一定逃不过自己的项目这一关,而且一般情况下聊得时间不会太短。

这一部分内容,一般的模式就是你自己去讲你做过的项目,然后面试官会冷不丁的让你去解释其中某一部分,比如让你解释当时为什么要这么做,或者问你现在觉得有没有更好的办法。而这些穿插的问题,大部分与你的项目所用到的技术有关。而你需要做的,就是充分、再充分的去总结自己做过的项目(尤其是最近的一两个项目),挖掘出一个甚至N个亮点,以备于到时候可以让面试官产生眼前一亮的感觉。如果你能达到这种效果的话,基本上离你成功就不远了。

(编辑:安卓应用网_福州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!