java是一门历史悠久的编程语言,可以毫无争议的说,java是最主流的编程语言之一.全球有1200万以上的java程序猿以及海量的设备,还有无所不能的java生态圈.

我所知道的诸如阿里,京东,百度,腾讯,美团,去哪儿等互联网公司,基本都是以java为首要编程语言的.即使在最新的云计算领域,java仍然是AWS,google app engine等平台上,使用最多的编程语言,甚至在微软的Azure云上,java也已微弱劣势排在前三,所以,在这些大公司的面试中,基本都会以java为切入点,考评一个面试者的基本能力.

应聘初级,中级java工程师,通常只要求扎实的java和计算机科学基础,掌握主流开源框架的使用,java高级工程师或者技术专家,则往往全面考察java io/nio,并发,虚拟机等,不仅仅是了解,更要求对底层源代码层面的掌握,并对分布式,安全,性能等领域能力有进一步的要求.

我在oracle已经工作了近七年,负责过北京java核心类库,国际化,分发服务等技术团队的组建,面试过从初级到非常资深的java开发工程师.由于java组工作任务的特点,我非常重视面试者的计算机科学基础和编程语言的理解深度,我甚至不要求面试者非要精通java,如果对c/c++等其他语言能过掌握的非常系统和深入,也符合需求的.

工作多年以及在面试中,我经常能体会到,有些面试者确实是努力工作,但坦白说表现出的能力水平不足以通过面试,通常有两方面的原因;

"知其然不知其所以然"做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术背后的逻辑,坦白说,我并不放心吧具有一定深度的任务交给他.更重要的是我并不确定他未来的技术能力成长潜力有多大.团队所从事的是公司核心产品,工作于基础技术领域,我们不需要那些"差不多"或"还行"的代码.而是需要达到一定水平的高质量设计与实现.我相信很多其他团队的要求会更多,更高.

知识碎片化,不成系统.在面试中,面试者似乎无法完整,清晰的描述自己所开发的系统,或者使用的相关技术.比如,有的面试者,有一些并发编程经验,但对基本的并发类库掌握却并不扎实,似乎觉得在用的时候进行"面向搜索引擎的编程"就足够了.这种情况下,我没有信心这个面试者有高效解决复杂问题,设计复杂系统的能力.

前人已经掉过的坑,后来的同学就别前赴后继了.

期初极客世界邀请我写<java核心技术36讲>专栏,我心里怀疑其形式和必要性.经典的书籍一大堆呀.网上也有所谓的面试宝典,为什么换需要我指手画脚.

很难甄别出各种技术的核心价值与要点.技术书籍如此庞杂,对于经验有限的同学,找到高效归纳自己知识体系的方法并不容易.

各种宝典更专注于问题,解答大多点到为止,甚至答案准确性都值得商榷,缺乏系统性的分析和举一反三的讲解.

我在极客时间推出这个专栏,就是为了让更多没有经验或者经验有限的开发者,在准备面试时;

少走弯路,利用有限的精力,能够更高效的准备和学习.

提纲挈领,在知识点讲解的同时,为你梳理一个相对完整的java开发技术能力图谱,将基础夯实.

java面试题千奇百怪,有的面试官甚至以黑魔法一样的态度,刨根问底jvm底层,似乎不深挖jvm源代码,不谈谈计算机指令,就是不爱学习,这是仁者见仁智者见智的事情,我根据自己的经验精选五大模块共36题

五大模块为

java基础;我会围绕java语言基本特性和机制,有点带面,让你牢固构建java基础

java进阶,将围绕并发编程,java虚拟机等领域,助你攻坚大厂java面试的核心阵地

java应用开发拓展;从数据库编程,主流开源框架,分布式开发,帮你掌握java开发的十八般兵器.

java安全基础;让你理解常见的应用安全问题和处理方法,掌握如何写出符合大厂规范的安全代码.

java性能基础;你将掌握相关工具,方法论与基础实践.

世易时移,很多大家耳熟能详的问题其实在现代java中已经发生根本性的改变但扎实的技术功底还是必要的.助你面试成功

java面试题(杨晓峰)---以面试题为切入点,有效提升你的java内功的更多相关文章

  1. java面试题(杨晓峰)---第一讲谈谈你对java平台的理解

    本人总结: 面向对象(封装,继承,多态) 平台无关性(jvm运行,class文件) 语言(泛型,lambda) 类库(集合,并发,网络,io/nio) jre(java运行环境,JVM,类库) JDK ...

  2. java面试题(杨晓峰)---第七讲谈谈int和integer有什么区别?

    理解装箱和拆箱的过程. 对象由三部分组成:对象头,对象实例,对齐填充. 对象头:一般是十六个字节,分两部分,第一部分:哈希码,锁状态标志,线程持有的锁,偏向线程id,gc分代年龄等,第二部分是类型指针 ...

  3. java面试题(杨晓峰)---第六讲谈谈动态代理是基于什么原理?

    我在编译时不知道,而在运行时知道,那么肯定在运行时给了提示,这个提示就是额外功.好处是可以重复利用相同代码. 代理模式:通过代理静默的解决一些与业务无关的问题,例如远程,安全,事物,日志,资源关闭,. ...

  4. java面试题(杨晓峰)---第五讲String、StringBuffer、StringBuilder有什么区别?

    线程 字符 操作频繁度 1 String (1)String的创建机制 由于String在java世界中使用过于频繁,java为了避免在一个系统中产生大量重复的String对象,引入了字符串常量池,其 ...

  5. java面试题(杨晓峰)---第四讲强引用、软引用、弱引用、幻想引用有什么区别?

    在java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握java对象生命周期和JVM内部相关机制非常有帮助. 今天问题:强引用.软引用.弱引用.幻想引 ...

  6. java面试题(杨晓峰)---第三讲谈谈final、finally、finalize有什么不同?

    java语言有很多看起来相似,但用途却完全不相同的语言要素,这些内容往往容易成为面试官考察你知识掌握程度的切入点. 今天我要问你一个基础的java经典题目,谈谈final.finally.finali ...

  7. java面试题(杨晓峰)---第二讲Exception和Error有什么区别?

    本人总结: Exception和Error:正常问题和意外问题,以自行车举例:没气和爆胎. ①理解Throwable,Exception,Error的设计和分类. ②掌握哪些应用最广泛的子类, ③如何 ...

  8. java面试题(杨晓峰)---第八讲谈谈Vector,ArrayList,LinkedList有何区别?

    Vector,ArrayList,LinkedList均为线性的数据结构,但是从现实方式与应用场景中又存在差别. 1 底层实现方式 ArrayList内部数组来实现,LinkedList内部采用双向链 ...

  9. 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD

    目录 第9讲 | 对比Hashtable.HashMap.TreeMap有什么不同? 典型回答 考点分析 知识扩展 Map 整体结构 有序 Map HashMap 源码分析 容量.负载因子和树化 精选 ...

随机推荐

  1. CF 148D D Bag of mice (概率dp)

    题目链接 D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. 使用gRPC搭建Server端与Client端

    gRPC简介 gRPC是一种RPC框架技术,采用Protocal Buffers(协议缓存) 作为其接口定义的语言(就是Proto来写接口)和基础的消息交换格式. 在gRPC中,客户端应用程序可以直接 ...

  3. SCUT - 157 - CC和他的GCD - 容斥原理

    https://scut.online/p/157 鉴于多年(都没几个月)搞数论的经验,这种时候枚举g肯定是对的. 那么肯定是要莫比乌斯函数作为因子,因为很显然? 但是为什么要搞个负的呢?其实是因为这 ...

  4. ue4-C++中加载一个蓝图类(二)-C++中绑定Blueprint武器

    editor中编辑好一个武器蓝图资源后,c++中create出这个武器,然后attach到一个人物身上. 思路:  写个c++基类,蓝图继承后编辑成武器或其他装备,然后c++用一个TSubclassO ...

  5. Python学习笔记(yield与装饰器)

    yeild:返回一个生成器对象: 装饰器:本身是一个函数,函数目的装饰其他函数(调用其他函数) 功能:增强被装饰函数的功能 装饰器一般接受一个函数对象作为参数,以便对其增强 @原函数名  来调用其他函 ...

  6. scikit-learn使用fetch_mldata无法下载MNIST数据集的问题

    scikit-learn使用fetch_mldata无法下载MNIST数据集的问题 0. 写在前面 参考书 <Python数据科学手册> 工具 python3.5.1,Jupyter La ...

  7. swift5 正则简单使用

    /* 判断是否价格 */ let money = "100.98" let parrern = "^\\d+(\\.\\d{0,2})?$" if NSPred ...

  8. css Masks

    css Masks:添加蒙板: 测试在微信端可以支持了.谷歌浏览器支持.safari应该也是支持的. 效果:http://runjs.cn/code/xrrgmgmk 但是谷歌可以支持这样子的:htt ...

  9. [Android]Android四大组件之ContentProvider

    URI简介 URI(Universal Resource Identifier),又被称为"通用资源标志符". URI由许多部分所组成,示例及解说如下: Content URIs介 ...

  10. 紫书140例题6-2 铁轨&&UVa514

    某城市有一个火车站,铁轨铺设如图6-1所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨,并驶出车站.例如,出栈顺序(5 4 1 2 ...