永远不会有正当其时的时候,你总会觉得要么年纪太轻,要么太老,要么太忙,抑或是其他什么原因。如果你总是为找不到完美的时刻而困扰,那么,完美的时机永远不会出现。
1.自我介绍,包括做过项目。
2.有看过哪些JDK源码,了解哪些常用库。
3.集合框架HashMap的扩容机制,ConcurrnetHashMap的原理
4.jvm内存模型与gc内存回收机制
5.classloader结构,是否可以自己定义一个java.lang.String类,为什么? 双亲代理机制。
6.了解哪些设计模式,6个设计原则分别是什么?每种设计原则体现的设计模式是哪个?
7.关于设计模式看了哪些书?书名是什么?
8.uml模型图画过哪些? 类图中类之间的关系有哪些,区别分别是什么?
9.画uml中类图时候用过一种虚线么?做什么用的?
10.做过应用相关性能测试的,举个例子,实际项目中怎么使用的。
用过并发框架相关的哪些内容
11.了解哪些osgi的框架?
12有没有做过jvm内存调优,如何做的,举例子,用过哪些工具?
1.自我介绍
2.看过哪些源码
3.java的io库的类结构图所用到的设计模式如何体现
4.画出自己设计过的设计模式如何体现,画出结构图,并进行讲解。
5.画出自己做的架构的项目架构图 如何扩展等
6.数据库设计中主键id设计的原则
7.jvm内存调优用过哪些工具,jstate做什么用的?如何dump出当前线程状态?
8.并发框架是否有了解
9.classloader的双亲代理机制
10.应用服务器的jvm调优实际经验,如何做的,在哪里用到的
11.在哪里获取最新资讯,逛什么论坛。最新的Swift语言有什么看法
12.设计原则与设计模式对应
13.servlet/filter作用原理配置
14.ibatis in操作 以及一个属性的作用
15.spring aop 用了什么设计原则,自动注入配置是做什么用的
16.jboss的类加载器
17.session共享机制
18.做过最成功的一件事情是什么?
19.最大的争执是什么?
20.为什么想要离职去阿里
1.现在公司负责什么?
2.项目主要目的是做什么的?
3.公司管理方式、项目问题反馈机制是什么?
4.Java 的序列化做什么用的 序列化id会出现哪些问题?
5.OSGi用过哪些?类加载器结构如何,如何在一个bundle中加载另外一个bundle中的一个类?
6.nio是否了解 阻塞之后通知机制是怎样的?
7.uml设计类图如何画,类之间关系以及区别
8.spring如何不需要配置文件加载bean定义,可能是问自动注解或者是properties文件定义bean
9.ibatis等框架是不是都是实际在使用的,技术细节
10.为什么想离职?
1.自我介绍
2.公司做什么,业务, 负责内容,汇报机制
3.企业级应用安全相关
4.http协议,返回码,301与302区别
5.多线程并发用过哪些
6.应用服务器相关,谈最熟悉的
7.为什么离职
基础方面我的建议是一超多强,也就是有一个或者几个小的地方特别精通,但是广度要有,不要盲目追求mq这些东西,实际的面试还是以(408-计算机组成)+数据库为主的,也就是说当你os、网络、数据库还不错的时候已经满足了进大厂的需求,再熟悉两个知名中间件,就可以去收割了,应届生不建议死磕分布式、微服务之类的东西,很容易搞崩自己的心态。事实上我的数据库因为在迷茫期读了掘金小册和innodb存储引擎两个,所以理论知识较为扎实,但我的os非常差,只能讲讲进程线程内存这些基础的,但还是有了些小的offer,所以大家一定不要贪多。另外语言方向我只懂Java,一些小的建议就是Java开发要有能力把os的问题全扯到虚拟机和并发上来,另外Java的源码不一定追spring,但是juc和util下的集合之类的一定要有理解,尤其是阿里之类的真的会为源码第一行是什么的,千万要谨记。
另外可以记住类似于双重校验之类的思路,还有不要死记硬背,比如虚拟机的类加载器不要只看书,其实源码很简单的流程,可能只需要半天你就从背书仔到了源码大佬,很多事情一定要进去,不要在外面观摩。
这里给大家推荐一些源码笔记吧,觉得对自己的帮助非常大。
由于笔记的字数过多, 笔记已整理打包压缩成文档,有需要的朋友麻烦务必帮小编转发下(这样能让更多人看到)添加小助理vx:mxzFAFAFA来领取!!
并发编程共享模型篇
模式篇
应用篇
原理篇
我的简历一般都会过筛选,至今只被三七和图森未来刷掉,但我其实个人经历是非常少的,所以我的建议就是写好自己的教育经历,至于跨考生,可以先写自己的硕士专业,然后本科专业先不写,不用硬套模版,这里建议超级简历,可以根据自己的喜好进行一些设置。在投递简历的时候尽量选择内推邮箱,原因在:1,响应快,2,可以用自己的简历模板。这里想给大家强调一个误区,对于技术岗来说,简历真的只在初筛时有用。(很多公司还是看的我的春招简历,也给过了),这就要求我们的简历一定要做好减法,怎么样刚够又不会给自己挖坑呢?这里留白我会贴一下我的技能栈,另外实习经历似乎也不是越多越好,我一直只贴了我的美团实习,再加2到3个小项目点缀一下,就可以进行投递了,千万不要写太多给自己挖坑,大部门面试官还是对着简历面的。
项目的话,相信是很多跨考党和本科生的难点,这里我建议牛客的视频课,这个很容易找得到,不用花很久,一个月的每半天足矣,我觉得最重要的是项目的完整度,就是大概要走完项目主流程,然后在某一个模块进行深挖,也就是针对自己的技能点去挖项目,而不是根据项目来找技能点,比如,引入缓存模块的时候自然而然尝试redis各种api,这样子就很容易熟悉项目,其实在面试的过程中最重要的是整个项目为何如此设计,具体的点能答出几个就很好了,刻意的去制造一些bug并尝试一些解决方案,基本有一些这样的思考,就可以找到一份不错的实习,再在实习过程中接触真实项目,真实项目最重要的是理顺和拉通,因为自己需要负责的可能只是某个具体模块,如果疏于思考而只注重接口实现就很容易陷入增删改查的怪圈里。
但是项目对于学生而言的重要性远不如基础,过硬的基础足够寻找一份很好的工作,不要因小失大,项目只是为了对基础的一些细节实现而服务的,其技术点远不如书上那么深入,项目中重要的其实是各种api各种中间件之间的比对过程中针对具体业务场景做的一些取舍,所以最重要的是还是基础,希望大家不要过于在意项目。如果真的没有项目,就可以在幕课或牛客跟一个完整项目,勤奋点的话一个月绰绰有余就可以搞完,之后进行严密思考即可。
不知道大家会不会跟我一样一开始特别讨厌面试,而我现在特别喜欢面试,很愿意去面试。因为面试是所有环节里自主性最大的,首先要有一定的信心:能让我来面试,只要我的简历属实,那么证明我的硬性条件是符合公司要求的。那么面试就应该是一个平等交流的过程,一开始我很容易怯场,后来发现怯场反倒挂,每个人应该拾起自己的信心,在面试中,合理的引导面试官进入自己擅长的领域。如果发现自己没有擅长的领域,就一定要有广度,也就是说,广度和深度必须至少有一个:当你某点特别突出,你要注意的是怎么让面试官发现你这个点。当你每个点都知道,但是不是很深入,就要多做发散性的引导。总体来说,大家如果好好准备过的话,都或多或少有自己的亮点,面试过程中一定要记住,对方也很愿意跟你交流现在应届生的技术栈和思路,每个程序员也是一个孤独的人,面试的时候也是交朋友的过程,当你觉得对方很愿意和你做朋友的时候,面试大概就过了。