JAVA后端面经

一面:
介绍你自己

  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模式解释一下
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值