前言:
笔者出生在江西一个偏远的山村。虽然出生时已经不是那个温饱都是问题的年代,但是也谈不上有个幸福的童年。家里很穷。幼儿园并没有读,因为家里觉得花那个钱没有必要,小学才开始学拼音字母。我的童年,就是和我的姐姐弟弟在山中的梯田里放牛,抓泥鳅,割鱼草。
大学上的是北大青鸟,一个成人培训机构,没有学历。在深圳打拼了6年了,一直在一些小公司打转。年初疫情突然爆发,市场经济进入寒冬,我也被公司裁员了。
这也让我意识到,本身学历就不高,如果还不发奋让自己的技术更上一个层次的话,肯定是没有未来可言的。幸而有朋友在阿里任职,给了我一个内推的机会。所以,疫情在家的这段时间,我决定逼自己一把,开始着手准备阿里的面试。终于在五一节前拿到了P5的offer。下面是我的面试经验分享。
一、准备
首先是准备简历,然后就是过一下面试题。
简历的编写其实这里可能需要注意几点:
1.标题的直接按照姓名-几年工作经验-应聘岗位格式来填写。例如 小明——四年工作经验——Android开发高级工程师。因为要知道,HR筛选简历是非常快的,你要在第一时间就让他看到他想要看的信息。HR一开始最关心的就是工作年限和岗位,你直接在标题栏用最大的字体写出来会比很多人介绍了半天项目最后写年限要好得多。
2.个人信息写最前面。 个人信息栏其实不用写很多东西,最主要的就是姓名、联系方式、性别、如果学校是名校那么就写上,如果本科学的是计算机专业也可以在这里写上,如果都不是就最好放到最后去写,因为最前面的东西永远是最先看到的内容,也是你最有竞争力和卖弄的资本。
3.有技术博客和github开源项目的一定写在最前面。 这是活生生的例子。我在面试华为的时候面试官就特意去看了我的csdn上的博客。然后说写的还是不错的,给他留下了一个不错的印象,所以这点是绝对的加分项最好就是写在最前面。
刷面试题这块其实一开始我并没有刷特别多,也就是简单的看了下一些基础性的知识点。因为我始终觉得看得越多越记不住,而且最重要的是你根本不知道面试官会怎么问,与其盲目的看知识点倒不如先出去找几家小公司面试找找感觉,知道面试官会针对哪些地方询问,再回来针对性的看。
二、技能储备
(一)Java
一、HashMap和Hashtable区别?
这个一定要去看源码!看源码!看源码!实在看不下去的可以上网看别人的分析。简单总结有几点:
1.HashMap支持null Key和null Value;Hashtable不允许。这是因为HashMap对null进行了特殊处理,将null的hashCode值定为了0,从而将其存放在哈希表的第0个bucket。
2.HashMap是非线程安全,HashMap实现线程安全方法为Map map = Collections.synchronziedMap(new HashMap());Hashtable是线程安全
3.HashMap默认长度是16,扩容是原先的2倍;Hashtable默认长度是11,扩容是原先的2n+1
4.HashMap继承AbstractMap;Hashtable继承了Dictionary
扩展,HashMap 对比 ConcurrentHashMap ,HashMap 对比 SparseArray,LinkedArray对比ArrayList,ArrayList对比Vector
二、Java垃圾回收机制
需要理解JVM,内存划分——方法区、内存堆、虚拟机栈(线程私有)、本地方法栈(线程私有)、程序计数器(线程私有), 理解回收算法——标记清除算法、可达性分析算法、标记-整理算法、复制算法、分代算法,优缺点都理解下。
详细的可以看看其他同学写的 点击打开链接
三、类加