前言
4.30早上,hr微信告诉我通过了,让我放个开心假哈哈哈哈哈哈哈哈哈,意向书在五一结束后开始发,还愿成功!
4.21开始一面,刚刚结束hr面,昨天hr面了10分钟然后她要去开会了说晚点再打给我(心态崩了都),许愿意向书!!!!
一面:(57分钟)
- 自我介绍
- 介绍项目,职责,项目功能,架构
- 为什么用websocket不用其他
- 怎么实现深拷贝?实现Cloneable接口,重写Object类的clone方法改成public,方法里面调用super.clone(),这样实现了浅拷贝,要实现所有成员变量也进行拷贝的深拷贝就需要调用成员变量的clone()方法;使用序列化和反序列化
- JMM讲一下:规定所有变量存储在主内存,每条线程还有自己的工作内存,线程工作内存保存了被这个线程使用的变量的主存副本,线程对变量的读写都必须在工作内存中进行,不能直接读写主内存的数据,不同线程之间也无法访问对方工作内存的变量,线程间变量值的传递需要通过主内存来完成。
- Happens before原则:
a. 程序次序规则:在一个线程内,按照控制流循序,写在前面的操作先行于后面的操作(循环、分支操作)
b. 管程锁定规则:unlock操作先行发生于后面(时间上的后面)对同一个锁的lock操作。
c. volatile变量规则:对一个volatile变量的写先行于读操作。
d. 线程启动规则:Thread对象的start()方法先行发生于此线程的每一个动作。
e. 线程终止规则:线程中所有操作都先行发生于对此线程的终止检测,join方法是否结束,isAlive方法返回值检测线程是否已经终止执行。
f. 线程中断规则:对线程interrupt方法调用先行发生于被中断线程的代码检测到中断事件的发生。可以通过interrupted方法检测是否有中断发生。
g. 对象终结规则:一个对象的初始化完成(构造函数执行结束)先行于他的finalize方法开始。
h. 传递性:如果操作A先行发生于操作B,操作B先行发生于操作C,那就可以得出操作A先行发生于操作C。 - java有几种锁
- 详细讲一下Synchronized。它公平吗?
- ReentrantLock呢?怎么实现公平锁?
- 那讲讲AQS。
- 讲讲volatile。除了线程间变量可见性还有啥?
- 乐观锁和悲观锁。什么时候用乐观锁,什么时候悲观锁?
- 怎么实现线程安全?
- 讲讲线程池的几个参数?
- JVM用过什么命令?查GC怎么查
- linux命令?查文件里出现的关键字次数怎么查?你用linux都做些什么?文件权限命令呢?
- Mysql count(),如果数据量很大但是又想用innodb查count(),怎么做?
- 进程间通信方式
- socket拿来干嘛的?
- TCP和UDP区别,TCP支持一对多吗(艹,支持啊!!!)
- 拥塞控制讲一下,可以设置的参数有?
- 流量控制讲一下
- 做一道题:
//给定一个数组,求最大子数组和,以及起始、结束的下标
//{-2, 2, 4, -4, -1, 1, 6, -5}
//输入:一个数组; 输出:子数组和 int、两个下标; - 平时怎么学习?
- Mysql8.0和5.6 7 8 有什么新增功能?
- Http2.0有什么优化
- RPC协议知道吗?
- jdk用的几。知道现在最高是几吗?16了。害
- 反问:
a. 正式员工工作时间:995,周末加不加班看项目急不急
b. 技术栈:阿里自研jdk、中间件、框架
c. 简单评价一下我:你不是很符合我们的要求。(听到后没压抑住啊了一声。。难受,不过可能因为用纸和笔写代码加了点分让我过了?)
面试资料分享
根据我的面试经验为大家整理了很多资料!包括一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结! 这些资料的内容都是面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。
有需要的朋友点这里直接下载就好了,希望对你有帮助
二面(主管面):(60+分钟)
- 自我介绍
- 怎么学习的,从什么时候开始学java
- 看了什么书?
- 怎么看GC
- YGC FGC
- 什么时候FGC
- linux怎么看gc呢
- 用什么软件
- linux怎么用这些软件
- 项目堆内存大小设置多少
- 怎么监控项目?
- 怎么判断对象可回收?
- 讲讲ArrayList和LinkedList
- websocket连接过程
- http连接过程
- http连接的时候传输什么
- 为什么用websocket
- IO模式,你项目里都用了什么
- 讲讲NIO。
- IO主要消耗在哪些?NIO优化了哪些?
- 怎么看sql执行多少秒之类的
- mysql参数设置,自己都设置了什么
- 你觉得Spring最主要的是什么
- 讲讲IOC
- 你项目里用了什么设计模式
- 如果用多摄像头要怎么做,一个城市都让你监控,要怎么设计
- 有没有看市面上的模型效果怎样
- 你的算法能优化什么
- 实验室经历给你带来了什么
- 你在实验室的定位
- 你跟前面几任负责人比有什么厉害之处?
- 团队怎么管理
- 是否启动一个项目如何做的决策
- 项目如何迭代
- 之后的学习规划
- 反问:
a. 业务:做支付的
b. 学习氛围:分析、理解业务需求,理解原理。
c. 评价:注重实践、基础不错、准备充分,但是还需要学习:服务器、交互过程、运行时状态、k8s、监控服务
hr面:(30分钟)
- 自我介绍
- 最有成就的一件事
- 现在在哪
- 项目职责
- 项目难点
- 目前offer情况
- 正在进行的项目情况
- 优势劣势
- 工作地点
- 比较想从这次实习获得什么
- 为什么不读研
- 对客户端开发了解吗
- 为什么很少人选择ios开发
- 反问
最后
文章的最后为大家准备了一些Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等,祝大家都能拿到心仪的offer!
有需要的朋友点这里直接下载就好,希望对你有帮助