java程序员应该具备的技能

  • 时间:
  • 浏览:0

出乎我的意料,Java虚拟机应该是有点硬要的一块内容,结果在这几家公司中被问到的概率几乎为0。要知道,我去年另一八个花了小量的时间去研究Java虚拟机的,光周志明老师的《深入理解Java虚拟机:JVM高级形态学 与最佳实践》,让人读了不下五遍。

(2)ReentrantLock、AQS的源代码

我碰到过问得最多的一八个现象是:

10、JDK源码

(1)你的项目中用到了哪此设计模式,怎样才能使用。

我刚收集了一套2018最新的0基础入门和进阶教程,无私分享,加Java学习q-u-n :六七八,二四一,五六三 即可获取,内附:开发工具和安装包,以及系统学习路线图

你说面试无用,但在走向大牛的路上,不可不让。

(3)能画出常用设计模式的UML图。

另一八个以为蛮重要的一块内容,结果只在阿里巴巴B2B事业部面试的随后被问了一次,当时问的是装饰器模式。

非常重要,也是必问的内容。基本上所以List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。

(5)Object类中的最好的办法以及每个最好的办法的作用

Java主要面向Web端,随后 Web的随后 现象也是必问的。

7、Java虚拟机

最后,虽然这次面试问得太满,随后 多多tcp连接 同步、锁这块也是重点。synchronized和ReentrantLock的区别、 synchronized锁普通最好的办法和锁静态最好的办法、死锁的原理及排查最好的办法等等。

(1)ConcurrentHashMap的锁分段技术。

言归正传,虽然Java虚拟机没问到,但我虽然还是有必要研究的,让人简单地列一八个提纲吧,谈谈Java虚拟机中比较重要的内容:

这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我让人要知道static关键字有哪此作 用,让人答出static修饰变量、修饰最好的办法我会认为你合格,答出静态块,我会认为你不错,答出静态组织组织结构类我会认为你很好,答出静态导包我会对你很满 意,随后 能看出你非常热衷研究技术。

数据形态学 和算法分析,对于一名多多tcp连接 员来说,会比不让好随后 在工作中绝对能派上用场。数组、链表是基础,栈和队列深入随后 但所以难,树挺重要的,比较 重要的树AVL树、红黑树,可不可不能能 不了解它们的具体实现,随后 要知道哪此是二叉查找树、哪此是平衡树,AVL树和红黑树的区别。记得某次面试,某个面试官和 我聊到了数据库的索引,他问我:你知道索引使用的是哪种数据形态学 实现吗?

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、 HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一 句,ConcurrentHashMap的现象在面试中问得有点硬多,大概是随后 随后 类可不可不能能 衍生出非常多的现象,关于ConcurrentHashMap, 我给网友见面 我们我们 们提供三点回答随后 是研究方向:

5、Web方面的随后 现象

(2)GC算法及几种垃圾收集器

3、框架

要想拿高工资,JDK源码不可不读。上端的内容随后 还和具体场景联系起来,JDK源码所以实打实地看你平时是全是爱钻研了。我面试过程中被问了不 少JDK源码的现象,其中最刁钻的一八个问了我,String的hashCode()最好的办法是为什在么在实现的,幸好我平时String源代码看得多,答了个大 概。

(3)类加载机制,也所以双亲委派模型

假使 有Thread1、Thread2、ThreaD3、Thread4四条多tcp连接 分别统计C、D、E、F八个盘的大小,所有多tcp连接 都统计完毕交给Thread5多tcp连接 去做汇总,应当怎样才能实现?

这也是必问的一块了。随后 三年工作经验,所以基本上不让再让人要知道为什在么在实现多多tcp连接 了,会问得深入随后 比如说Thread和Runnable的区别和心 系、多次start一八个多tcp连接 会为什在么在样、多tcp连接 有哪此情况。当然这所以最基本的,出乎意料地,哪几个面试几乎都被一齐问到了一八个现象,问法不尽相同。

(3)AtomicInteger的实现原理,主可不可不能能 说清楚CAS机制随后 AtomicInteger是怎样才能利用CAS机制实现的

4、数据库

当然咱们这么这么功利,为了面试而学习,设计模式在工作中还是非常重要、非常有用的,23种设计模式中重点研究常用的十来种就可不可不能能 了,面试中关于设计模式的问答主所以一八个方向:

6、数据形态学 和算法分析

最深入的一次,我记得面试官直接问到了我Volatile关 键字的底层实现原理(顺便插一句,面试和被面试随后 所以相对的,面试官能问随后 现象一齐也让面试者感觉到面试官也是一八个喜爱研究技术的人,增加了面试者对 公司的好感,我最终选则的所以问了随后 现象的公司),并不虽然这太吹毛求疵了—-越简单的现象越能看出一俩我个人的水平,别人对你技术的考量绝大多数全是以层厚优先、广度次之为标准的,切记。

随后 上端你的现象答得好,面试官往往会深入地问随后 框架的实现原理。问得最多的所以Spring AOP的实现原理,当然随后 很简单啦,两句话就搞懂的的事儿,即使你不让准备一下就好了。我遇到的最变态的是让人要画一下Spring的Bean工厂实 现的UML图,当然面对另一八个一八个有层厚的现象,我是绝对答没得来的/(ㄒoㄒ)/~~

常用的随后 能答出来自然是让面试官非常满意的。

(5)happens-before规则

至于算法分析,不让、让你研究就算了,记得某次面试对方问我,Collections.sort最好的办法使用的是哪种排序最好的办法,额,吐血三升。当然为了 显示我的博学,对算法分析全是一定的研究(⊙﹏⊙)b,我还是硬着头皮说了一句随后 是冒泡排序吧。当然答案肯定全是,有兴趣的网友见面 我们我们 们可不可不能能 去看一下 Collections.sort最好的办法的源代码,用的是随后 叫做TimSort的排序法,也所以增强型的归并排序法。

(3)ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器。

(4)多tcp连接 池的实现原理

数据库十有八九也全是问到。随后 基本的像和 all的区别、left join、几种索引及其区别就不谈了,比较重要的所以数据库性能的优化,随后 对于数据库的性能优化一窍不通,这么有时间,还是建议你在面试前花一7天 专门 把SQL基础和SQL优化的内容准备一下。

1、基本语法

谈谈分布式Session的几种实现最好的办法。

另外,多tcp连接 池也是比较常问的一块,常用的多tcp连接 池有几种?这几种多tcp连接 池之间有哪此区别和心系?多tcp连接 池的实现原理是为什在么在样的?实际随后 的,会让人随后 具体的场景,让人回答随后 场景该使用哪此样的多tcp连接 池比较大概。

总结起来是 这么一八个意思:

(4)Java内存模型

(1)List、Map、Set实现类的源代码

另外一八个常问的现象是:讲一下Session和Cookie的区别和心系以及Session的实现原理。随后 八个现象之外,web.xml上端的内容是重点,Filter、Servlet、Listener,不说对它们的实现原理一清二楚吧,大概能对它们的使用知根知底。另外,随后 细节的方面比如get/post的区别、forward/重定向的区别、HTTPS的实现原理也都随后 会被考察到。

(6)volatile关键字使用规则

8、设计模式

老生常谈,面试必问的东西。一般来说会让人要知道一下我们我们 项目中使用的框架,随后 让人随后 场景让人要知道用框架为什在么在做,比如让人要要在Spring初始化bean 的随后做随后 事情该为什在么在做、让你在bean销毁的随后做随后 事情该为什在么在做、MyBatis中$和#的区别等等,哪此都比较实际了,平时积累得好、有多学习 框架的使用细节自然全是成现象。

JDK源码虽然没哪此好总结的,纯粹看我个人,总结一下比较重要的源码:

(2)知道常用设计模式的优缺点。

我答到用的Hash表吧,答错。他又问,你知道为哪此要使用树吗?我答到随后 Hash表随后 会经常出现比较多的冲突,在千万甚至是上亿级别的数据面 前,会大大增加查找的时间简化度。而树比较稳定,基本保证最多二三十次就能找到让你的数据,对方说不完整性对,最后我们我们 还是交流了一下随后 现象,我也明白了 为哪此要使用树,这里不说,网友见面 我们我们 们虽然索引为哪此要使用树来实现呢?

(1)Java虚拟机的内存布局

(2)ConcurrentHashMap的读与非 要加锁,为哪此。

2、集合

9、多多tcp连接

聪明的网友见面 们对随后 现象与非 有答案呢?不难 ,java.util.concurrent下全是现成的类可不可不能能 使用。

不过数据库倒是不让担心,一家公司往往有所以部门,让人对数据库没熟悉而基本技术又非常好,九成全是会要你的,估计会先把你倒进对数据库使用全是要求非常高的部门锻炼一下。