阿里场景金融一、二面、三面(已oc)
一面
自我介绍
- 简单的自我介绍
Java基础知识
- 自己说一下对Java的理解
- volatile关键字
- final关键字
- abstract关键字
- 了解String类吗,线程安全吗
Jvm
- jvm内存模型
- 类加载器
- 类加载过程
- 双亲委派机制
集合
- HashMap,concurrentHashMap
- LinckedHashMap
多线程
- synchronized
- 可重入锁
- 线程池
spring
- 常用的注解
- 前端通过一个url访问servlet的全过程
挑了一个项目
- 问在项目中扮演什么角色、项目的架构是什么样的、怎么实现的购物车和订单
- 如何识别用户身份
- 购物中,多个用户购买同意商品,怎样避免商品多卖(消费者模式)
二面
自我介绍
聊之前的笔试题
- 第一题如何优化
- 第二题下去之后有写过吗(看过)
问经历
- 解释GPA为什么不太高(大一落下的)
- 操作系统多少分
操作系统
- 对操作系统和线程的理解
- 为什么操作系统有了进程还要提出线程的概念
- 进程之间的通信
- 除了这些之外还有自己印象深刻的点吗
- 线程调度有哪些算法
- 进程的状态
数据库
- 讲一下对MySQL事务的理解
- 隔离性为什么通过锁来实现
- 所有的隔离都是通过锁来实现的吗
- 讲一下什么叫原子性
- 可重复读和读已提交的区别
- 可重复读是如何实现的
- 各自常用的场景
- 你项目中使用的隔离级别是什么
- 有在Java中开启事务吗
- 你怎么知道数据库的隔离级别呢
- 讲一下对数据库索引的理解
- 讲一下索引的最左匹配
- 索引的优化在哪里处理的
数据结构
- 讲一下自己最熟悉的数据结构(基础的数据结构,选择了堆)
- 1,2,3三个节点形成的最小堆是怎么样的
- 为什么要保证是一个完全二叉树
- 适用场景
Java
- 介绍自己Java面向对象的理解
- 面向对象和面向过程的区别
- JVM的内存
- 堆和方法区的区别
- new的对象放在那里(新生代和老年代)
- 内存垃圾回收
- 垃圾回收的区域,方法区的垃圾回收是什么
- JVM为什么要做内存管理
并发
- Java线程池核心参数,具体理解
- 场景,core=5,6个线程,max=10,会发生什么
- 场景:多个线程从0计数,当所有都大于1000之后,输出hello world
- countDownLath和CyclicBarrier的区别
- Java为什么要使用线程池
反问
- 有什么要提升的(面试官比较好,说了好多)
- 总共75min,很顶
三面
- 自我介绍
- 后面计划考研嘛,为什么呢
- 如果开发时遇到技术上的欠缺,怎么处理呢
- 你学过的几门课中,那几门课的成绩相对优秀一些,或者你更喜欢一些
- 你有总结过对于你来说学习效率比较高的方法吗
- 在做项目之前有没有一个快速学习的经验,短时间可以上手那种
- 具体是哪个项目有这样的经历
- 上手较快,后来开发的时候没有遇到什么问题吗
- 能不能介绍一下做的这些作品,挑一个你投入比较大的一个,一共几个人呢,你负责哪些部分,持续了多久
- 架构的设计是谁在负责呢
- 过程中有没有碰到对你有挑战的技术难点呢
- 开发过程中的分歧是怎么解决的呢
- 现在项目有在使用吗
- 可以说一下数据库性能优化的方法吗
- 另一个项目规模如何,开发时间,你负责哪些模块,有没有遇到有挑战的点
- 你对购物车,交易这方面有没有了解,有没有做过一些调研
- 自己对未来的技术规划是怎么样的
- 现在有没有进行一些系统化的学习
- 之前有没有实习的经历呢
- 前边面试有没有自己觉得答的不太好的(我请求看着面经答,面试官同意了)
- 有面其他的公司吗
反问: 如果通过了,接下来还有几面
答:接下来就是hr了
主要是聊天,面试官人很好