渣本面经,记录秋招将我弄弯的辛酸历程~~~
四非渣本就是想对本年度秋招小小汇总一下
没什么大厂,单纯为了记录一下秋招之路,回报牛客牛友,有些许遗漏,望各位大佬,多多指教~~~
美团(一面挂):比较基础
- 先问项目
- String,StringBuffer,StringBuider区别,结合线程和单例模式变换着问
- JVM垃圾回收,老年和新生代区别
- JVM内存分配
- 数据库隔离级别,分别产生的错误
- 索引底层原理,B-树和B+树区别
- HashMap原理,寻找第一个entry位置(这个给我问懵了。。。)
- 手写九九乘法表,时间复杂度要求O(n),这类题写之前最好问问时间及空间上的需求
- 智力题:从头点燃一柱介质不均匀的香(既烧的速度不断变化),能烧一个小时,如何用一炷香判断半个小时过去了?(如果这个想出来了,附加一个,判断十五分钟)
- 说说Spring的框架,有什么理解(说了说ioc和mvc的原理)
问我有什么问题问他,问了几个套话,顺遍把上面的智力题答案问了,,,面试官跟讲究,有说有笑的亲自将我送走了。。。。。。
58到家(二面挂):
一面:- 归并排序原理(当时有纸和笔,边画变描述,面试官还比较满意)
- Tcp三次握手
- String类特点,对象存放在哪里?
- JVM内存结构,细说堆和栈
- 隔离级别,幻读,脏读,不可重复度实际场景
- Wait()和sleep()区别
二面:
- 线程安全集合类
- 手写一个算法题(给定一个整数数组,若一排数组中任意两个数的和等于100,)
- 不加锁,如何实现线程安全(了解过单例模式有一种使用内部类的方式,就说了和内部类)
- 堆和栈区别
- String源码看过么?
- 数据库锁了解多少,何时发生死锁
- 聚簇索引了解么
- B+树的原理
- Volatile有什么功能,能否实现线程安全(感觉这有个坑,少量线程可以实现,多数则不适合,可以看看这个)
58到家基本没问项目,可能是觉得项目很渣,二面后面越聊越炸,已料到gg,,,并且面试官建议我还是多去实习,我吸取你的建议,可是我现在正在秋招。。。。。。。
猎聘(Java岗,一面挂):
- 谈项目
- 线程池的四种创建方式,以及线程池的好处
- 为什么项目中使用单例模式,单例模式的好处,如何实现
- HashMap底层原理,扩容机制
- 如何组织列对象序列化,关键字是什么
- 数据库分页的关键字是什么,如何实现
- 线程中wait和sleep区别
- 垃圾回收的几种算法,细说原理
第一次面试,紧脏到爆,,,问的基本都是Java基础,第一次面试,可以说是万分紧张,最后面试官问了问接下来的学习规划是什么,面试比较快。。。gg
盖亚互娱(Java岗,一面挂)
- 接着猎聘后紧接着进行了盖亚面试
- 老规矩,谈项目
- JVM垃圾回收,内存结构(高频)
- GC是不是守护线程(由于不了解守护线程,所以直接说的不知道)
- 是否了解聚簇索引,
- 说说volatile
- 手写算法,判断字符串是否是回文
Rokid(拿到offer)
一面- 群面,很有意思,问了一道很有意思的开放性思维题,主要考察思维逻辑。
二面
- 介绍项目
- 问了问Linux的指令,如何查看连接本主机的其他ip
- netstat如何查看端口使用情况,参数是什么
- 对Mybatis的理解,使用的好处
- Mybatis的映射原理是什么
- 说说BIO,AIO,NIO的区别
- 阻塞和非阻塞有什么区别
本次面试很强啊,居然遇到了群面,并且问到了很多关于Linux的知识,个人感觉人工智能企业很看重Linux,现在正进行恶补。
PS:HR小姐姐还是很美丽的,聊得比较开心。。。
随行付(拿到offer,略坑,实习offer):
- Linux 打开一个文件一般用什么指令
- 了解的设计模式(最好结合jdk的中用例结合着说)
- 链表了解的多少,特意往链表成环引了下,然后就顺势问了下如何判断链表成环
- Wait()和sleep()区别
- ArrayList()的扩容机制
- Mysql分页关键字
- 数据库中分表的原因(项目中有用到分表处理)
神州信息(hr面挂):
- Mybati实现原理,主要实现,关键代码(一直死磕到尾)
- Linux指令如何修改权限,权限代码含义
- Linux如何进行文件删除
- 谈设计模式,主要谈单例模式
- Spring ioc,mvc,,,由于aop还没有学,所以没聊
之前了解过神州信息信息----半外包公司,面试可能很重视项目以及框架知识;
HR面谈了下薪资,可有由于我提出太高而挂掉。。。
Keep(估计hr面挂,严重怀疑男hr嫉妒我的美貌与才华,,,开个小玩笑):
一面:- 单例模式(手写了懒汉式三种安全方式)
- 对其他设计模式的理解
- String中 ==和equals()区别
- float和int对象存放在哪,顺势又问了内存分配
- GC算法(可以说是很高频了)
- 多态的理解,细说了重载和重写
- 如何实现多线程异步方式(这个就不太了解了,面试官推荐了RxJAVA)
- 一个很有意思的思考题:a,b,aa,ab,ba,bb ,,,,,问接下来的是什么(画了一个二叉树,根节点空,左右子树a,b以此类推),然后又改造了一下,换成01,这样移动或加减1就可解决了
二面:
- 说说Mybatis优点,缓冲,与Hibernate有什么区别
- Sychronized和Lock锁的区别
- Mysql索引原理,怎么实现,符合索引条件
- 服务器对于多线程的性能解决问题(没太懂什么意思)、
- Spring和springMVC的处理异常问题
- 堆和栈结构
- 垃圾回收机制,引用计数和根引用
- 为什么使用内部类来实现单例模式
- 堆一般存放那几种对象
Hr面就是玄学了,问了家庭情况,平时爱好(平时比较喜欢玩三国杀),问了用没用过Keep,什么等级,平时的学习规划,,,,,,Keep是个人感觉发挥的比较好的一次,至于为什么跪,就难以揣测了。
猎豹(一面尬聊,非常尬):
- Thread和Runnable区别
- 字节流和字符流区别
- 单例模式高性能的线程安全模式
- Volatile和Sychronized区别
- JVM内存结构,GC(最后强调一波,非常高频)
- 看过什么源码么?Arraylist和Linkedlist有没有看过。
- 问了一道笔试做的思维题(有足够量的2分、5分、1分硬币,如果想凑齐一元钱,可以有多少种方法)
- 笔试的一道动态规划算法题(牛客上可以查到)
最后就看看简历,问了问家庭情况,又问问如果学Android多久能上手,估计是没啥问的了。。。。。。
上述面试可以看出,很多题都是重复的,GC,内存结构,String类,隔离级别等等都是很高频的,,,并且项目一定要做充分准备,
总而言之,面试就是在一次有一次的挫败中寻找感觉,在一次次失望中建立信心,好事需要多磨。
#Java工程师#