干货!4面阿里java后端,才发现并发编程和JVM是必不可少,特此分享给为金九银十备战的你们

前言

永远不会有正当其时的时候,你总会觉得要么年纪太轻,要么太老,要么太忙,抑或是其他什么原因。如果你总是为找不到完美的时刻而困扰,那么,完美的时机永远不会出现。

阿里一面

1.自我介绍,包括做过项目。

2.有看过哪些JDK源码,了解哪些常用库。

3.集合框架HashMap的扩容机制,ConcurrnetHashMap的原理

4.jvm内存模型与gc内存回收机制

5.classloader结构,是否可以自己定义一个java.lang.String类,为什么? 双亲代理机制。

6.了解哪些设计模式,6个设计原则分别是什么?每种设计原则体现的设计模式是哪个?

7.关于设计模式看了哪些书?书名是什么?

8.uml模型图画过哪些? 类图中类之间的关系有哪些,区别分别是什么?

扫描二维码关注公众号,回复: 11825223 查看本文章

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下的集合之类的一定要有理解,尤其是阿里之类的真的会为源码第一行是什么的,千万要谨记。

另外可以记住类似于双重校验之类的思路,还有不要死记硬背,比如虚拟机的类加载器不要只看书,其实源码很简单的流程,可能只需要半天你就从背书仔到了源码大佬,很多事情一定要进去,不要在外面观摩。

这里给大家推荐一些源码笔记吧,觉得对自己的帮助非常大。

由于笔记的字数过多, 笔记已整理打包压缩成文档,有需要的朋友麻烦务必帮小编转发下(这样能让更多人看到)私信回复【笔记】两个字即可来获取笔记免费领取方式了!

并发编程核心笔记(必看)

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

并发编程共享模型篇

  • 并发编程概览
  • 进程与线程
  • Java线程
  • 共享模型之管程
  • 共享模型之内存
  • 共享模型之无锁
  • 共享模型之不可变
  • 共享模型之工具

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

模式篇

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

应用篇

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

原理篇

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

JVM从入门到入魔 笔记

  • JVM内存区域划分
  • JVM执行子系统
  • 垃圾回收器和内存分配策略
  • 编写高效优雅Java程序
  • 性能优化
  • JVM常见面试题指南

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

MySql性能调优

  • MySQL 常用对象
  • MySQL体系结构,存储引擎及SQL优化
  • MySQL缓存,参数调整及锁
  • MySQL 常用工具、主从复制及综合案例

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

备战秋招资料库

爆肝1000小时!4面阿里java后端,才发现并发编程和JVM是必不可少

有需要的朋友转发+关注小编,查看文末图片,扫码添加即可免费获取。

简历

我的简历一般都会过筛选,至今只被三七和图森未来刷掉,但我其实个人经历是非常少的,所以我的建议就是写好自己的教育经历,至于跨考生,可以先写自己的硕士专业,然后本科专业先不写,不用硬套模版,这里建议超级简历,可以根据自己的喜好进行一些设置。在投递简历的时候尽量选择内推邮箱,原因在:1,响应快,2,可以用自己的简历模板。这里想给大家强调一个误区,对于技术岗来说,简历真的只在初筛时有用。(很多公司还是看的我的春招简历,也给过了),这就要求我们的简历一定要做好减法,怎么样刚够又不会给自己挖坑呢?这里留白我会贴一下我的技能栈,另外实习经历似乎也不是越多越好,我一直只贴了我的美团实习,再加2到3个小项目点缀一下,就可以进行投递了,千万不要写太多给自己挖坑,大部门面试官还是对着简历面的。

项目

项目的话,相信是很多跨考党和本科生的难点,这里我建议牛客的视频课,这个很容易找得到,不用花很久,一个月的每半天足矣,我觉得最重要的是项目的完整度,就是大概要走完项目主流程,然后在某一个模块进行深挖,也就是针对自己的技能点去挖项目,而不是根据项目来找技能点,比如,引入缓存模块的时候自然而然尝试redis各种api,这样子就很容易熟悉项目,其实在面试的过程中最重要的是整个项目为何如此设计,具体的点能答出几个就很好了,刻意的去制造一些bug并尝试一些解决方案,基本有一些这样的思考,就可以找到一份不错的实习,再在实习过程中接触真实项目,真实项目最重要的是理顺和拉通,因为自己需要负责的可能只是某个具体模块,如果疏于思考而只注重接口实现就很容易陷入增删改查的怪圈里。

但是项目对于学生而言的重要性远不如基础,过硬的基础足够寻找一份很好的工作,不要因小失大,项目只是为了对基础的一些细节实现而服务的,其技术点远不如书上那么深入,项目中重要的其实是各种api各种中间件之间的比对过程中针对具体业务场景做的一些取舍,所以最重要的是还是基础,希望大家不要过于在意项目。如果真的没有项目,就可以在幕课或牛客跟一个完整项目,勤奋点的话一个月绰绰有余就可以搞完,之后进行严密思考即可。

面试

不知道大家会不会跟我一样一开始特别讨厌面试,而我现在特别喜欢面试,很愿意去面试。因为面试是所有环节里自主性最大的,首先要有一定的信心:能让我来面试,只要我的简历属实,那么证明我的硬性条件是符合公司要求的。那么面试就应该是一个平等交流的过程,一开始我很容易怯场,后来发现怯场反倒挂,每个人应该拾起自己的信心,在面试中,合理的引导面试官进入自己擅长的领域。如果发现自己没有擅长的领域,就一定要有广度,也就是说,广度和深度必须至少有一个:当你某点特别突出,你要注意的是怎么让面试官发现你这个点。当你每个点都知道,但是不是很深入,就要多做发散性的引导。总体来说,大家如果好好准备过的话,都或多或少有自己的亮点,面试过程中一定要记住,对方也很愿意跟你交流现在应届生的技术栈和思路,每个程序员也是一个孤独的人,面试的时候也是交朋友的过程,当你觉得对方很愿意和你做朋友的时候,面试大概就过了。

好了,今天的分享就到这里了,有兴趣深度获取学习提升的朋友,请查看下方图片,扫码添加即可,或者私信回复【阿里】也可以获享海量学习资料!!!

猜你喜欢

转载自blog.csdn.net/Java_msb666/article/details/108774052