2年5个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天

简介: 不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。

开篇介绍

个人背景:

不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。

阐述原因:

在外包公司的两年里,作为一名菜鸡,确实非常合格,技术没什么长进,眼见也没有提升,没规划没未来,让人实在焦虑,之所以开始改变自己也是家庭发生了变故,才让自己开始思考人生。身边很多人感叹过,能从外包逆袭,算是传奇,所以今天想要分享一下个人的经历,希望能够鼓励到一些与我有相似经历的同行。

注意:这次面试过程比较长,内容繁多,在文章中我基本上简述了,文章里的面试题完整版和我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,有需要的可以点击此处来获取就可以了!

阿里一角

阿里巴巴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完整版,可以点击此处来获取就可以了!

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、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了,需要的可以点击此处来获取就可以了!

写在文末

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

最后提醒一下哦,如果你想要学习,却无奈于没有干货学习资料,以上所有的资料内容都可以免费分享给你,可以点击此处来获取就可以了!

相关文章
|
应用服务中间件 nginx
『Nginx』Nginx实现同端口代理多项目 及 同项目多端口配置
📣读完这篇文章里你能收获到 - Nginx实现同端口代理多项目 - Nginx实现同项目多端口配置
2062 0
『Nginx』Nginx实现同端口代理多项目 及 同项目多端口配置
|
21天前
|
人工智能 自然语言处理 安全
2026企业级Agent解决方案,主流agent平台评测与选型指南
本文聚焦2026年企业级AI Agent规模化落地关键期,提出开发效率、安全合规、生态集成三大选型标尺,深度剖析主流架构。阿里云瓴羊Agent凭借NL2Data混合技术、全链路智能能力及深厚企业底座,成为数据密集型行业首选,助力企业实现“懂业务、守底线、通全局”的智能升级。(239字)
|
25天前
|
人工智能 自然语言处理 安全
2026企业级智能客服系统建设方案:选型、部署、数据安全三步走实战指南
本文解析2026年企业级智能客服建设的“选型、部署、数据安全”三步走战略,强调从服务战略高度构建全渠道、全链路、全场景的数智化服务引擎,并以瓴羊Quick Service为范例,展现行业经验、大模型深度落地与合规安全能力。
|
26天前
|
数据采集 人工智能 供应链
2026年企业如何应用数据中台?各行业应用案例大盘点
本文剖析数据中台如何破解企业“有数据、无决策力”困局,指出其核心在于场景匹配与科学落地。结合瓴羊Dataphin等实践案例,详解数据中台在零售、金融、制造等行业的价值映射与建设路径,强调治理先行、业技融合、低代码试点等关键方法,助力企业从数据孤岛迈向数据智能。(239字)
|
测试技术
外包对职业发展是否有影响?
从事两年外包工作并不会影响未来的发展,关键在于是否在此期间提升了个人能力。许多外包人员由于缺乏系统的培训,能力停滞不前,只能从事低级的手工测试工作。在华为合作的外包人员中,部分人因公司未提供培养机会,导致技能难以提升。因此,在外包期间应主动学习,掌握自动化和编程技能,以提高竞争力。大部分企业并不在意求职者是否有外包经历,只要能力达标即可。建议不要在外包公司停留过久,及时跳槽寻找更好的发展机会,避免因长期外包而失去学习动力。
|
Kubernetes 架构师 Java
史上最全对照表:大厂P6/P7/P8 职业技能 薪资水平 成长路线
40岁老架构师尼恩,专注于帮助读者提升技术能力和职业发展。其读者群中,多位成员成功获得知名互联网企业的面试机会。尼恩不仅提供系统化的面试准备指导,还特别针对谈薪酬环节给予专业建议,助力求职者在与HR谈判时更加自信。此外,尼恩还分享了阿里巴巴的职级体系,作为行业内广泛认可的标准,帮助读者更好地理解各职级的要求和发展路径。通过尼恩的技术圣经系列PDF,如《尼恩Java面试宝典》等,读者可以进一步提升自身技术实力,应对职场挑战。关注“技术自由圈”公众号,获取更多资源。
|
SQL 存储 关系型数据库
从Hive建表语句到MySQL的转换
【8月更文挑战第11天】
1038 7
|
缓存 网络协议 Unix
Linux 内核参数
Linux 内核参数
857 1
|
消息中间件 中间件 Java
中间件选择合适的中间件
【7月更文挑战第8天】
927 2