转载声明:文章来源https://blog.csdn.net/Darker2017/article/details/82528852
一面:
介绍你自己
1.上来手撕算法 先来实现一个反转链表
2.java集合ArrayList和LinkedList的区别 为什么ArrayList查询效率快
3.常见的排序知道哪些(说知道快排,冒泡,选择,插入) 继续手撕快排(写了也讲了一遍)
4.多线程安全问题知道吗 同步的方法 使用syschronized和lock的区别 为什么要有重入锁?
5.java虚拟机调优知道哪些 新生代和s0区默认分配比例是多少(8:1)
6.spring IOC解释一下(这个面试官全程没怎么说话 我怕要凉就一直自己在说, 说了IOC实现原理反射+xml+工厂 然后面试官就换问题了)
7.什么是Spring的AOP (面向切面编程,我自己说了用代理模式实现的)
8.那画一下代理模式的UML图(说自己不会画,直接强行解释,从静态代理到动态,各种区别,底层实现都说了,动态代理还没说完,面试官就打断我说我这里结束了,去等着接下来的吧)
二面:
二面基本上我的面试官全程看我简历问我。
介绍一下自己(说了自己算法一般,可能是这样所以二面没遇到和室友一样还手撕代码)
1.类加载过程(说了好久,还举例一个类里的变量是个static,它是在哪个过程进行加载的)
2.双亲委派是什么、bootstrap加载器加载的是什么,为什么要有双亲委派(这个是真不知道,不是类优先级那个原因,中间一些问题是根据你的回答来问的,越来越深)
3.syschronized关键字底层原理知道吗(我说在书里看过好像是管程实现,一个线程有一个管程,线程持有管程就上锁,管程底层是本地方法和操作系统有关不会,然后就没问这个了)
4.数据库InnoDB 事务底层知道怎么实现的吗(没太明白强行说了自己控制事务用的框架)
5.解释事务的隔离级别 说了mysql默认隔离级别
6.知道voliate关键字吗和syschronized两个有什么区别(解释控制多线程可见性,说了主内存和工作内存)问我什么是工作的内存这个也不知道说啥 就说书上看的 ,又问知道voliate底层如何实现的吗(没了解过,说可能也是加锁吧,面试官也没啥反应-。-疯狂问底层实现)
7.java的Runtime内存有什么知道吗,问的是运行时数据区分的五大块,然后又问了栈里面存的是什么,多个线程变量是怎么存的(线程私有)
8.问Maven的生命周期知道吗(不知道,只是会用一下)
【二面过程一些对话和回答(答案应该不对):主修java是吧,那知道类的加载机制吗,知道,我知道类的加载的过程和他的双亲委派模型。那你说一下类的加载过程吧(吧啦啦啦 中间我大概把五个过程都是干什么说了一下,可能勾起了他的兴趣)问如果一个类里面有一个栈他是什么时候进行加载的(我当时也有点蒙,就问了这个栈是成员变量还是静态变量,最后我默认成员变量跟他解释)准备过程中分配变量内存,new时候会创建对象,但是准备阶段一开始会把变量值置为null在初始化的时候才会给定new的值,我感觉没解释清楚,因为解析过程会把引用变量换成直接引用,而且解析可以在初始化之后进行,那时候才会对变量赋值(什么时候记加载最后也没说具体的,就是说new的时候会创建加载,然后转到赋值去了)然后就是双亲委派解释一下,启动加载器加载的是什么类文件(三个加载器加载什么巴拉巴拉),然后又问问什么要有双亲委派这种机制支支吾吾没说清说不知道。】
(连续两个不会然后跟我说我这边今天结束了,本来以为又是一个凉凉,但是旁边的小姐姐说在旁边等待,结果最后又通知面了hr。)
hr面:
介绍一下自己,主要是说说自己生活近况,项目觉得有什么收获,有什么生活经历,能不能加班,以后期望是什么,还有没有什么问题。
(最后告诉等待通知到9月中下旬还会陆续通知结果,感觉面试中间很多答的不是很好,最后好多人也都面了hr,只能等待结果,不被淘汰出局了)
附笔试:
笔试是去哈工大一点现场宣讲完,直接有现场的笔试,还去晚了,不过小姐姐还是给了机会,非常感谢。
选择是一些基础的笔试题(涉及网络、数据结构、操作系统,其实还是不怎么会的)
编程题3道(一个我觉得考察排序,一道算一个数的幂次尽可能计算次数少,第三道一个图找路径)编程其实不是很会,勉强写,第三题没研究过是不可能会的了
方向题(也是编程,一个数n,求出所有的因子,因子互相相加得不到1-n中的数有几个)
同行室友提供自己面试问题:
一面
1.手撕代码快排和两个栈实现队队列
2.java集合 hasmap原理
3.java 虚拟机 垃圾回收算法 分代算法解释和垃圾回收器都有哪些
4.虚拟机如何调优
5.数据库调优 对数据库分表分库 sql语句优化
6.hibernate和Myabtis的区别 beanFactory和FactoryBean的区别
二面:
1.面向对象和面向过程的区别 解释
2.继续手撕算法 判断一个二叉树是否有环
3.会什么设计模式 手写单例模式双重校验
4.数据结构问hashmap 在多线程下为什么不安全 因为会出现死锁 rehash会死循环 concurrenthashmap原理解释
5.近期在做什么东西 如何学习 如果让你写一个评论的模块你会怎么写
6.TCP三次握手四次挥手 http和https区别 https过程 问如果我要访问某个ip这个过程描述一下
7.liunx操作系统常用命令 管道
8.springMVC mvc模式解释一下
懂了懂了
基础送分题目不能丢