JAVA后端面经

10月21日 收藏 0 评论 0 java开发

JAVA后端面经

转载声明:文章来源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模式解释一下

C 0条回复 评论
雾岛残月

懂了懂了

发表于 2024-09-06 21:00:00
0 0
媲美

基础送分题目不能丢

发表于 2021-12-23 22:00:00
0 0