面试学习+刷题笔记分享-屌丝的逆袭之路,2年5个月13天,从外包到拿下阿里offer
开篇介绍
个人背景:
不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。
阐述原因:
在外包公司的两年里,作为一名菜鸡,确实非常合格,技术没什么长进,眼见也没有提升,没规划没未来,让人实在焦虑,之所以开始改变自己也是家庭发生了变故,才让自己开始思考人生。身边很多人感叹过,能从外包逆袭,算是传奇,所以今天想要分享一下个人的经历,希望能够鼓励到一些与我有相似经历的同行。
注意:这次面试过程比较长,内容繁多,在文章中我基本上简述了
阿里一角
阿里巴巴Java岗面试题分享
1.HashMap 的内部结构?内部原理?和 HashTable 的区别,假如发⽣了 hash 碰撞,如何设计能让遍历效率⾼?
2.讲一讲讲讲 ConcurrentHashMap吧。
3.讲一下JVM虚拟机内存结构,以及它们的作⽤。
4.讲讲JVM的类加载过程&&双亲委派模型。
5.谈谈Java的垃圾回收算法。
6.谈谈Java垃圾回收的触发条件。
7.synchronized和Lock的区别。
8.volatile的作⽤,为什么会出现变量读取不⼀致的情况,与 synchronized 的区别?
9.++i 在多线程环境下是否存在问题,怎么解决?
10.讲一讲Thread.sleep() 和 Thread.yield() 区别?
11.讲讲常⽤的容器类?
12.如何去除 ArrayList 的重复元素?
- 直接采⽤ HashSet 即可。作为它的参数,然后再 addAll。但这种⽅式不能保证原来的顺序,如果要求顺序,可以使⽤ LinkedHashSet 即可。
13.讲讲 Java 的泛型擦除,泛型主要是为了解决什么问题?如何⽤泛型做 Json 的解析的?
14.谈谈 Java 的 Error 和 Exception 的区别联系。
- Error 和 Exception 均集成⾃ Throwable,但 Error ⼀般指的是和虚拟机相关的问题,⽐如系统崩溃,虚拟机错误,OOM 等,遇到这样的错误,程序应该被终⽌。⽽ Exception 表示程序可以处理的异常,可以捕获并且可能恢复。
15.说一下软引⽤和弱引⽤的区别?
16.成员变量和静态⽅法可以被重写么?重写的规则是怎样的?
17.内部类访问局部变量的时候,为什么变量必须加上fifinal修饰符?
- 因为⽣命周期不同。
18.什么情况会造成内存泄漏?
19.什么是线程死锁,如何解决?
20.十亿条淘宝购买记录,怎么获取出现最多的前十个 ?
- 这是一道典型的有限内存的海量数据处理的题目。一般这类题目的解答无非是以下几种:
- 分治,hash映射,堆排序,双层桶划分,Bloom Filter,bitmap,数据库索引,mapreduce等。
- 具体情形都有很多不同的方案。这类题目可以到网上搜索一下,了解下套路,后面就基本都会了。
21.说一下Innodb和MySIAM的区别
22.说一下jvm内存模型,介绍一下你了解的垃圾收集器
- 其实并没有jvm内存模型的概念。应该是Java内存模型或者jvm内存结构,这里面试者一定要听清楚问的是哪个,再回答。
23.如何访问链表中间节点
- 对于这个问题,我们首先能够想到的就是先遍历一遍整个的链表,然后计算出链表的长度,进而遍历第二遍找出中间位置的数据。这种方式非常简单。
- 若题目要求只能遍历一次链表,那又当如何解决问题?
- 可以采取建立两个指针,一个指针一次遍历两个节点,另一个节点一次遍历一个节点,当快指针遍历到空节点时,慢指针指向的位置为链表的中间位置,这种解决问题的方法称为快慢指针方法。
23.HR问
- 从技术角度来说,你觉得你跟前同事比怎么样?
- 说一下自己的个人优势。
- 工作中觉得哪方面欠缺?
- 为什么想来阿里?阿里的什么方面吸引了你?
面试总结及建议
每一次Java面试,其实都是一次学习机会,是对自己技术知识栈的梳理、考核、复盘。我们应该抱着学习的态度,认真对待,找到自己比较薄弱的环节,尽快去查漏补缺学习巩固。对于面试来说,其实也没有太多的技巧可言,面试官主要看重的就是个人能力,无非就是两个方面:
- 技术广度
- 技术深度
外包CRUD屌丝,是怎样逆袭的?
外包出身的我,究竟有多么菜,多么屌丝呢?还在外包的我,面试时被问到什么是成员变量,我是什么都不知道,相信这种程度大家应该有所感受了。
那作为一个外包CRUD屌丝,我是怎么做到逆袭的呢?
注意:下文主要是我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,有需要的可以加助理VX:mxx2020666,免费领取
01 梳理知识体系,学会查漏补缺
关于知识体系的梳理,我个人主要分为以下5个部分,有针对性的,将这5个部分逐步击破,那么搞定面试是基本没什么问题了。
- 并发编程:多线程,高并发,CAS,锁,容器,线程池底层
- 性能调优:Mysql,IO及网络调优,算法调优,JVM
- Spring全家桶:Spring,SpringMVC,MyBatis,IOC,AOP
- 缓存数据库:Redis,mongoDB,MySQL
- 分布式&微服务:SpringBoot,SpringCloud,docker,maven
02 根据要点,逐个击破(根据大纲内容来进行复习)
1.并发编程(核心技术笔记)
- Java多线程技能
- 对象及变量的并发访问
- 线程间通信
- Lock的使用
- 定时器Timer
- 单例模式与多线程
- 拾遇增补
2.性能调优(Java性能调优+MySQL调优+JVM调优)
3.Spring全家桶(Spring全家桶学习脑图+SpringBoot使用笔记+源码深度解析)
- Spring学习思维脑图(Xmind)
- Spring使用笔记+实战文档
4.缓存数据库(MySQL+Redis+mongoDB)
03 最后看面试题来举一反三(刷题刷题刷题,重要事情说三遍)
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- Java基础部分
- 算法与编程
- 数据库部分
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了
写在文末
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
最后提醒一下哦,如果你想要学习,却无奈于没有干货学习资料,以上所有的资料内容都可以免费分享给你,只需你多多支持一下即可
——点赞+关注,有兴趣的小伙伴扫描下方图片即可免费领取
面试学习+刷题笔记分享-屌丝的逆袭之路,2年5个月13天,从外包到拿下阿里offer相关推荐
- 2年5个月13天,从外包到拿下阿里offer,不相信屌丝也能有今天
开篇介绍 个人背景: 不说太多废话,但起码要让你先对我有一个基本的了解.本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就 ...
- 2年5个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
开篇介绍 个人背景: 不说太多废话,但起码要让你先对我有一个基本的了解.本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就 ...
- 谷歌师兄的刷题笔记分享!
高畅现在是谷歌无人车部门(Waymo)的工程师,从事计算机视觉和机器学习方向. 他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code 上的题目,几个月的时间,刷了几百道 ...
- 一份火爆全网的刷题笔记分享!offer 到手!
高畅现在是谷歌无人车部门(Waymo)的工程师,从事计算机视觉和机器学习方向. 他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理 Leetcode 上的题目,几个月的时间,刷了 ...
- 程序员面试金典-刷题笔记
面试题 01.01. 判定字符是否唯一 方法一:哈希表 比较原数组和哈希表的长度,如果相等,说明没有重复元素: class Solution {public:bool isUnique(strin ...
- Javascript:一个屌丝的逆袭之路
是的, 我就是鼎鼎大名的Javascript, 典型的高富帅,前端编程之王,数以百万计的程序员使用我来编程. 如果你没有用过我就太out了. 不过当我是一个屌丝时, 真的没有想到能发展到如今的地位- ...
- Airbnb创始人:屌丝的逆袭之路
这位黑发小帅哥名叫Brian Chesky,是Airbnb的联合创始人. 如果在百度一下Airbnb,你就会看到如下事实:Airbnb,即Air Bed and Breakfast,中国名" ...
- 师兄刷题笔记、算法小抄、面试突击版必备资源,帮你走上人生巅峰
前言 最近有很多朋友问我刷题.面试有没有什么好的资源.今天就给大家找了三个棒的开源资源,内容非常硬核,很多人靠着它进了大厂. 不绕弯子,三个分别是谷歌师兄<谷歌大佬的刷题笔记>,东哥< ...
- 《Data Structures and Algorithm Analysis in C》学习与刷题笔记
<Data Structures and Algorithm Analysis in C>学习与刷题笔记 为什么要学习DSAAC? 某个月黑风高的夜晚,下班的我走在黯淡无光.冷清无人的冲之 ...
最新文章
- 【AOP 面向切面编程】AOP 简介 ( AspectJ 简介 | AspectJ 下载 )
- python serial_Python代码爬取3000+ 上市公司的信息!能上市的都有这样一个特点
- 你需要了解的有关.NET日期时间的必要信息
- 一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决?
- 便利蜂发布《白领早餐报告》:仅5成白领每天吃早餐
- hadoopsdk使用_使用 IDEA 搭建 Hadoop3.1.1 项目
- ros自己写避障算法_ROS:激光数据转换超声进行避障
- 详解:知乎如何使用机器学习,未来还有哪些想象空间
- Web前端面试指导(十四):如何居中一个元素(正常、绝对定位、浮动元素)?
- ubuntu18重启vncserver_Windows 10 远程连接 Ubuntu 18.04 Server图形界面
- 网络工程师和网络运维工程师的区别
- Linux搭建测试环境步骤
- 做华为外包一年的总结
- 贪吃蛇小游戏(HTML+CSS+JS)
- 传统安防监控直播的四分屏的前端展示代码
- unity关于中文字体显示问题
- Codeforces 1179C Serge and Dining Room 线段树
- 斐波那契数列(Fibonacci) - 这就是算法吗?爱了爱了
- 百度地图BMap API的应用实例
- mysql怎么命令查看表的数据_查看MySQL数据库表的命令介绍