历时半年,我终于阿里上岸了,附面经和Java非科班学习心得
个人经历
本科双非化学,跨考了电子硕士,研究生依然双非。无互联网实习,无比赛无论文。(研究生研究方向是车辆电子和楼宇自动化,有自动化和高校实训讲师相关的实习经历)
21年11开始学Java准备秋招。
阿里上岸历程:
贴主一共投过三次阿里,春招实习一次,秋招两次。
春招实习阿里成都蚂蚁:当时跟着牛客大部队投了暑期实习,但其实不太懂暑期实习的意思,面试的时候面试官问我能实习到什么时候,我说随时能入职,能实习到7月多…然后就被挂了(当时不了解暑期实习都是冲着转正的,只是单纯想赚点生活费,攒个实习经历。因为女朋友在北京,所以只打算找北京的工作)。
秋招阿里云内推: 秋招提前批阶段在牛客看到了阿里云网络团队的提前宣传,当时系统还没有开,就投了简历进行了提前面试,一面之后问面试官,说面试结果不错,让我准备二面。谁知道系统开了之后,简历推进系统被HR挂了简历。面试官说他们也没办法了,宣布阿里秋招结束。
面经: Java中集合都有哪些? 集合之间的区别,使用的数据结构的区别,应用场景?
HashMap的结构与底层实现,是线程安全的么?如果需要线程安全怎么办?
ConcurrentHashMap为什么可以线程安全?
JVM内存区域,分代模型
项目相关,问到了Redis
问了Spring相关的问题,我有一个项目是手撕一个框架,当时打开电脑和面试官一起看的代码,面试官让我现场拓展功能。
写一个大题,给一定的字符串导出规则,然后给出导出后的字符换,要求复原字符串,给两个小时。
大概记得这些,时间太久记不住更多了
网申Java开发:
本来都放弃阿里了,后来听说还有一次网申的机会,就去投了一下,没指望被捞,做了一次笔试只A了0.2。觉得彻底凉了,没想到半个月后被优酷捞了,当时觉得自己是KPI,没想到面到了最后。
面经(三面放在了一起):
计算机网络常规问题:HTTP/HTTPS/TCP/WebSocket协议,长连接短连接,拥塞控制机制,tcp为什么是可靠的等。
操作系统常规问题:线程与进程区别。线程调度机制,进程的状态,死锁的条件等
问了一大堆Linux使用的问题,好多都不会。
JDK调优工具:jps, jstack, jmap啥的。
JVM内存区域,分代模型,什么时候会发生OOM
类加载器,双亲委派模型,类加载机制
GC垃圾回收算法,分代回收算法,四大引用类型
MySQL语法,写了两个个SQL题目,如果一个表非常大,一个表很小,怎么优化查询效率
索引,索引的数据结构(抛开MySQL来说),Mysql中的索引,聚集索引和系数素银,最左匹配原则,如何调优SQL
MySql中的锁分类,InnoDB和MyISAM的区别和分别适用的场景,事务的四大特性,四大隔离级别,怎么避免幻读?
MySQL中的redo log和bin log。
Redis是干什么用的?
Redis如何实现分布式锁?Redis的持久化机制?Redis可能会出现的问题(雪崩、穿透等)。Redis的数据结构,跳表。
一致性哈希算法,用来干什么?
多线程是什么?为什么需要多线程?什么情况下需要多线程?
线程安全是什么?volatile了解么,干什么用的,原理是什么?synchronized呢?
线程池,线程池的参数,线程池提交一个任务后的的运行过程,什么时候会触发饱和策略?项目中用过线程池没有,怎么保证线程安全的?
JUC包中的工具类,CAS机制
平时开发过程中怎么处理异常的?
项目相关问题,各种处理方式,解决方案。
Spring常用的注解,你这个仿Spring框架的项目大概的一个逻辑是什么样的?Spring AOP应用场景,原理。
交叉面很少问技术问题了,一直在问项目相关,从背景到实施到落地。问个人经历,实习经历、比赛经历、学习经历、跨专业考研经历。
交叉面聊天过程说自己写过一个高并发缓存,详细问了一下实现。
HR面只有9分钟,问个人的职业规划、为什么投阿里,现在哪家公司在沟通,会怎么选择,个人的最大优势和劣势。
大概就是这样,贴主没有录音的习惯,只能靠记忆来写了。
下面附上我的面试经历以及复习资料,全部无偿分享给大家,包括了很多知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。
经历
提前批基本投了一圈,全部凉凉。
提前批:
字节教育后端:笔试3.7/4,流程很快,一周连着三面,结果三面凉,说我没有实习经历,面经: 链字节跳动后端面经 。
京东提前批寻猎计划:流程很快,提前批免笔试,两周面完初试复试和HR面,进入无尽的等待过程,中途收到offer审批邮件,一个月后还是感谢信了。
百度提前批Java:官网被挂了简历,找了一个老哥组内直推的,二面凉了,写题优化没优化出来。
虾皮提前批:一面挂,当时作死反问环节问了疫情对虾皮有没有影响,东南亚疫情那么严重,虾皮会不会凉。。。
贝壳提前批:笔试2.8/4,挂
网易提前批:笔试挂
广联达:笔试挂
猿辅导:简历挂
快手:简历挂
正式批:
京东正式批:笔试1/2,两周面完初试复试HR面,已Offer,准备拒了。
滴滴:笔试2/2,二面挂。
转转:一天面完初试复试,第二周HR面,谈薪的时候拒了。
58集团:面试完之后泡池子没影了。
字节跳动:再次被捞,接了,9.28一面,后续拒了。
百度:拒了面试
腾讯:笔试完没后续
小米:笔试完没后续
非科班学习历程
笔试永远是非科班的通,贴主的笔试水平也很差,主要现在的企业笔试比较喜欢考竞赛型的题目,对于ACMer来说很轻松,但是我们需要从题目中抽象出来考点,再去写,很多题是没有考点的,甚至是推理题,数学题,直接爆炸。这个贴主也没有特别好的办法,只能说多练吧。一定要把输入输出练好。
大家在学习的过程中一定!一定!一定要记笔记,并且整理笔记! 很多时候学了会忘的,整理笔记的过程是让你融会贯通,形成知识体系的过程。不需要被,多整理笔记,理解了自然就能记个差不多,面试之前看几遍笔记,知识就和长在脑海中一样。而且自己理解的知识很容易举一反三,现在面试很多面试官并不是直来直去问问题,而是给场景,或者绕着圈问,纯背的选手很吃亏的,
最后
以上就是所有的分享了,贴主也是个菜鸡,有幸拿到阿里的offer,就到这结束了,把还在流程中的公司面完为止,下面附上我的面试题和面试笔记:


最后
大家可以趁着这段时间好好复习,希望能对你们有帮助,祝大家都有满意的offer,生活愉快,顺利毕业!
相关文章:
历时半年,我终于阿里上岸了,附面经和Java非科班学习心得
个人经历 本科双非化学,跨考了电子硕士,研究生依然双非。无互联网实习,无比赛无论文。(研究生研究方向是车辆电子和楼宇自动化,有自动化和高校实训讲师相关的实习经历) 21年11开始学Java准备秋招。 阿里上…...
ArkUI实战,自定义饼状图组件PieChart
本节笔者带领读者实现一个饼状图 PieChart 组件,该组件是根据笔者之前封装的 MiniCanvas 实现的, PieChart 的最终演示效果如下图所示: 饼状图实现的拆分 根据上图的样式效果,实现一个饼状图,实质就是绘制一个个的实…...
工作实战之系统交互api调用认证设计
目录 前言 一、黄金段位接口交互 二、钻石段位接口交互设计 1.接口文档定义 2.工具类以及demo提供 a.调用方部分代码 b.被调用方 三.星耀段位接口访问设计 1.在钻石段位的基础上,进行sdk的封装 a.maven引入 b.sdk包含工具类 四.王者段位接口访问设计 1.开发详情 2.…...
学习系统编程No.5【虚拟地址空间】
引言: 北京时间:2023/2/22,离补考期末考试还有5天,不慌,刚午觉睡醒,闹钟2点20,拖到2点50,是近以来,唯一一次有一种睡不醒的感觉,但是现在却没有精神,因为听了…...
Linux常用指令(未完待续。。。)
* basename:只留下路径的“最后一部分” X、文件夹&目录操作 复制 :cp /xxx /xxx - a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合; - d 拷贝时保留链接&#…...
用D写裸机
原文 用D编写裸机RISC-V应用 这篇文章展示,如何用D编写,目标为RISC-VQEMU模拟器的程序裸机"你好".项目 为什么是D? 我最近一直在用C编写裸机代码,我有点对C缺乏特征感到沮丧.D引入了叫betterC的模式(基本上禁止了D运行时的所有语言功能).使得D裸机编程大致与C一…...
(二十五)、实现评论功能(5)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
1,实现二级回复的入库操作 1.1 两个子组件(comment-item和comment-frame)与父组件reply之间的属性传值 comment-item: props: {item: {type: Object,default () {return {}}}},comment-frame: props: {commentObj: {…...
【概念辨析】二维数组传参的几种可能性
一、二维数组传参竟然不是用二级指针进行接收? 今天进行再一次的二级指针学习时,发现了一条以前没怎么注意过的知识点:二维数组进行传参只能用二维数组(不能省略列)进行接收或者是数组指针。 问题复现代码如下…...
python和C++代码实现图片九宫格切图程序(附VS2015配置Opencv教程)
1、python代码实现图片分割成九宫格 需要包含的库,没有下载安装的,需要自己安装哦。 实现原理很简单,就是用PIL库不断画小区域,切下来存储成新的小图片。 假设每一个格子的宽和高分别是w、h,那么第row行(…...
【深度学习】优化器
1.什么是优化器 优化器是在深度学习的反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让目标函数不断逼近全局最小点。 2.优化器 2-1 BGD 批量梯度下降法,是梯度下…...
SpringBoot使用validator进行参数校验
Validated、Valid和BindingResultBean Validation是Java定义的一套基于注解的数据校验规范,比如Null、NotNull、Pattern等,它们位于 javax.validation.constraints这个包下。hibernate validator是对这个规范的实现,并增加了一些其他校验注解…...
论文复现:风电、光伏与抽水蓄能电站互补调度运行(MATLAB-Yalmip全代码)
论文复现:风电、光伏与抽水蓄能电站互补调度运行(MATLAB-Yalmip全代码) 针对风电、光伏与抽水蓄能站互补运行的问题,已有大量通过启发式算法寻优的案例,但工程上更注重实用性和普适性。Yalmip工具箱则是一种基于MATLAB平台的优化软件工具箱,被广泛应用于工程界优化问题和…...
FastCGI sent in stderr: "PHP message: PHP Fatal error
服务器php7.2卸载安装7.4之后,打开网站一直无法访问,查看nginx错误日志发现一直报这个错误:2023/02/23 11:12:55 [error] 4735#0: *21 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught ReflectionException: Class translator does not exist in …...
【数字IC基础】跨时钟域(CDC,Clock Domain Crossing)
文章目录 一、什么是跨时钟域?二、跨时钟域传输的问题?2、1 亚稳态(单bit:两级D触发器(双DFF))2、2 数据收敛(多bit亚稳态)(格雷码编码、握手协议、异步FIFO、DMUX)2、3 多路扇出:(先同步后扇出)2、4 数据丢失(延长输入数据信号):类似脉冲展宽2、5 异步复位(…...
UNI-APP学习
uni-app的基本使用 uni-app介绍 官方网页 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。 即使不跨端…...
编译原理【运行时环境】—什么是活动记录、 活动记录与汇编代码的关系
系列文章戳这里👇 什么是上下文无关文法、最左推导和最右推导如何判断二义文法及消除文法二义性何时需要消除左递归什么是句柄、什么是自上而下、自下而上分析什么是LL(1)、LR(0)、LR(1)文法、LR分析表LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系编译原理第三章习…...
【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS
目录1. 理论1.1 什么是远程桌面服务2. 实验拓扑2.1 拓扑说明3. 安装基于RemoteAPP的RDS1. 理论 1.1 什么是远程桌面服务 远程桌面服务 (RDS) 是一个卓越的平台,可以生成虚拟化解决方案来满足每个最终客户的需求,包括交付独立的虚拟化应用程序、提供安全…...
Bootstrap入门到精通(最全最详细)
文章目录前言一、Bootstrap是什么?二、Bootstrap安装方式一:将压缩包下载到本地引入使用方式二:使用Bootstrap官方cdn二.Bootstrap容器下面是屏幕宽度在不同大小时不同容器的显示状态三.Bootstrap栅格系统bootstrap网格系统有以下六个类网格系…...
C/C++每日一练(20230223)
目录 1. 数据合并 2. 回文链表 3. 完美矩形 1. 数据合并 题目描述 将两个从小到大排列的一维数组 (维长分别为 m,n , 其中 m,n≤100) 仍按从小到大的排列顺序合并到一个新的一维数组中,输出新的数组. 输入描述 第 1 行一个正整数 m , 表示第一个要合并的一维…...
c语言中const 是什么意思?(面试)
const关键字使用非常的灵活,在c中,const因位置不同有不同的作用,因情景不同有不同的角色,使用起来也是非常的灵活。 可以定义const常量,具有不可变性。 例如:const int Max100; Max会产生错误; 便于进行类…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...
RKNN开发环境搭建2-RKNN Model Zoo 环境搭建
目录 1.简介2.环境搭建2.1 启动 docker 环境2.2 安装依赖工具2.3 下载 RKNN Model Zoo2.4 RKNN模型转化2.5编译C++1.简介 RKNN Model Zoo基于 RKNPU SDK 工具链开发, 提供了目前主流算法的部署例程. 例程包含导出RKNN模型, 使用 Python API, CAPI 推理 RKNN 模型的流程. 本…...
