GrowingIO 后端服务器开发1-3面+offer
原地结束秋招
==========
前几天接到了口头offer,接下来就是等书面offer了。。 不容易啊,书面一到原地结束秋招了。
============
接到了HR小姐姐的电话~ 惊喜,HR面发挥自我感觉还可以,接下来就等通知了。。。。
===========
官网查不到状态 大概率凉了
===========
回馈一下牛客,希望能HR面 🤦。
面试官都超级和善,很棒,面试体验极好,而且流程不拖拉,是我面试经历中最棒的一家。
就是到后面状态不太好了,身体不舒服一直咳嗽,没能发挥到最好有些可惜。
一面
0、自我介绍1、一个线程打印abcdef,一个线程打印123456,两个线程交替打印,最终打印结果为a1b2c3d4e5f6
2、二分查找
3、JVM的知识有了解过吗。JVM的内存分配是怎样的?
4、Java代码中所有的new操作是在哪里操作的?
5、垃圾回收是在什么时候开始的?
6、JVM堆的划分。
7、年轻代的垃圾回收算法是怎样的?
8、复制算法是怎样的?
9、什么是重载、什么是重写?
10、抽象类和接口的区别是什么?
11、假设有三个线程t1 t2 t3 如何实现线程顺序执行?
12、有没有了解过线程的join()?
13、那刚才的t1 t2 t3 可以通过join()吗? (11题目我回答的lock精准唤醒,面试官说这个就是通过join实现的。lock也可以实现,不过有简单的为什么不用呢?)
14、什么叫自旋锁?(回答较差)
15、Java单例模式有了解过吗,单例模式是怎样的一种东西?(实现方式、volatile 、双重加锁验证)
16、你怎么理解锁的?
17、锁是锁的什么呢?(回答有些出入)
18、什么是CAS?
19、说一下你对进程和线程的理解
20、进程的进程状态 (。。。晕了 说成了Java中的线程)
21、有了解过协程吗? (不会)
22、进程间通信有哪些方式?
23、Java线程池有了解过吗?
24、线程池工作流程、拒绝策略
25、如果发生死锁 应该怎么办?
26、设计短链系统,如何想的?
27、301和302
28、反问:您觉得我有哪些需要改进的地方?
二面
0、自我介绍1、讲一下Java8的新特性
2、说一下多线程
3、多线程之间有哪些通信方式?
4、使用多线程会出现的问题? (回答了线程间不可见、乱序执行、没说原子性)
5、java8有哪几种类型的锁(JUC包下的)? (没回答好 一时间什么都忘了)
6、java8中对sychronzied的优化?
7、写道题目 用Java实现一个单例。为什么要使用volatile修饰? 为什么要进行双重加锁验证?
8、写个登录、注册系统。 表、接口、哪些需要注意的接口。 可以使用伪码实现
9、反问:您觉得我有哪些需要改进的地方? 整体来看还可以,可能简历上的东西没办法体现个人优势。项目经历这里只写了一个个人网站薄弱了,需要去一些公司实习,做个一个东西才会有体会。
三面
0、聊一聊你对多线程的理解1、为什么线程的切换比进程的切换要快?快在哪里?
2、线程比进程做的少在哪些地方?
3、换种方式来问你,在jvm方面一个线程它自己的空间都有哪些?(回答了虚拟机栈,栈帧)
4、用多线程的过程中大概会遇到什么问题? 怎样解决? (并发编程遇到的问题)单例模式下如何解决这种问题
5、除了这些(原子性、乱序、线程可见性)还有其他的嘛? 忘记了,应该还有个资源竞争。。
6、大概讲一讲,根据你自己的理解去推测一下:什么样的情况下用多进程去解决一个问题,什么样的情况下用多线程去解决一个问题?
7、进程与进程之间是怎样协作的呢? (管道、共享内存、事件通知。。 后面忘了 进程间通信需要补一下)
8、举一下例子,什么情况下是共享内存、什么时候是管道、什么时候事件通知。
9、linux发送消息的命令可以说一下吗? (忘了。。。)
10、JWT是做什么用的?
11、是怎样实现的?
12、反问:您觉得我哪方面还需要加强呢? 面试官反反问:你觉得呢?(这是我万万没想到的)
13、你觉得呢? (感觉在操作系统这里还有一些问题,Linux系统命令有很多不熟悉,需要加强。)
14、那你觉得你对整个多线程多进程的知识理解是怎样的?
15、对自己的定位怎样?你觉得你的技术是需要了解底层的还是不需要的? 做应用还是做底层?
16、你说知识是相通的,在举个例子,说在干什么的时候是感觉到跟jvm是相通的?
17、线程跟jvm的对应,说得再详细点。
#面经##校招##GrowingIO##Java工程师#