【深信服】-Java岗-一二三hr面经,已offer

一面:9.11

面试官是个小姐姐😁
1.自我介绍
2.项目(烂大街的博客)
3.读过spring源码吗?(当初看spring的类名字过于长,放弃了)😔

  1. springboot的特性?我谈自动装配,然后问我如何实现?并让我举个例子😔例子真举不出来,然后问自动装配需要什么?我说starter
    5.聊一聊spring的ioc和aop,有些语无伦次
    6.谈谈b+树,我说了下它的非叶子节点数组和叶子结点链表,还说了它主要用于磁盘,但面试官说我主要是从数据库的角度谈的,让我说说它的结构😂(我傻了,插科打诨混了过去)
    7.然后一道多线程交替打印list的内容。我是用synchronized加锁,一开始两个线程只交替打印了两数,遂在外层加上循环,然后越界了…面试官提示了下也没找到,事后发现一个线程被唤醒后没有判断越界,直接打印了。
    8.反问。问了下哪里要加强,说应该深入了解下spring底层(让我看些源码)😂

二面:9.13

1.自我介绍
2.容器有哪些

  1. hashtable和hashmap区别
    4.栈在项目中有用过吗?(答曰没有,只是写算法题会用,又让我举例子😂)
    5.满二叉树,完全二叉树是什么
    6.哈夫曼树是什么(忘了😭)
    7.写一写单例。先写了个饿汉,然后让我写个懒汉,就写了个double-check,然后问我为什么要第二个if,楞了1分多钟,答曰还没创建时,两个线程进入第一个if,然后其中一个进入第二个if;然后问去掉第二个if会如何,楞了两分钟(这里太久没看了)

😂,自己想了想是避免重复创建吧。

  1. synchronized的原理
    9.double-check中volatile的作用
    10.写一个栈溢出错误(递归)
    11.写一个将10进制数转为其他进制的函数(除和求余结合。我循环判断出了点问题,de了三四分钟bug)
    12.如何统计全国程序员的数量(我傻了,中途结结巴巴了有10分钟,想问面试官要点提示,说是开放题,自己想吧)我就想着统计csdn ip和发问卷统计职业了,甚至是国家发布的统计资料😂。
    13.让我给高中生讲讲微积分。(我说我忘了,哈哈哈哈哈,高数太菜了)
    14.看过哪些书
    15.反问。我问为啥问程序员,微积分这种奇怪的题目,说是看我们的思维能力

——————————————————
2021.9.29编辑

线下两面,去的深圳

hr面:9.28

1.自我介绍(会根据介绍延伸,问问学校生活之类的)
2.学校期间比较有成就感的事(类似的)
3.性格方面,内向外向,比较讨厌什么类型的人
4.优缺点之类
5.为什么会选择深信服,相对其他公司的优势
6.怎么看待加班
7.手上有其他公司的offer吗
8.薪资
还有些问题忘了,都算是常规问题,聊了二三十分钟吧,我比较放松,气氛聊得比较愉悦吧。

三面:9.28

(在hr面后1个多小时)
一个中等大小的会议室,一位胖胖高高的面试官,比较冷漠严肃吧,近距离面试确实很有压迫感,最后确实也答得不咋样。

(看了看我的简历,我的简历确实烂,因为确实能写的少)
1.一直搞java吗?其他编程语言咋样?(是的,其他不会)
2.项目是自己练手的吗?实习有无?(我的项目确实是练手,而且数量少,于是全程就没问了;没有实习经验就更难受了)
3.是否有jvm调优经验?(我扯了扯简单的参数设置,毕竟是练手的项目也没用上调优)
4.java gc是手动调用后就会立即开始收集的吗?
5.是否有阅读过源码(一年半前看过shiro的,一年前看过spring的,但由于过于久远,回忆不起来就被叫停了)
6.看我简历里有redis,问redis为什么适合作为缓存中间件?redis使用的是单线程还是多线程?redis如何实现多核?是否读过redis源码?(……我只能说不懂c,没读过)
7.线程安全的java类或方法?(我扯了些容器)然后让我解释ConcurrentHashmap怎么实现线程安全的。
8.java如果要读取大型文件,如何利用缓冲?(好像是这样问的)我就提了BufferedInputStream,然后问我它底层怎么实现的?(……这个不会呀)然后问我为什么有缓冲更好?我答是减少I/O次数。(面试官不太满意,不知道咋答)
9.一个有序数组插入数据的时间复杂度?
10.数组按行遍历和按列遍历时间差别?(之前见过这题,忘了答案,搞崩心态……(按行更快,因为cpu缓存))
11.会用什么数据库?(mysql)mysql的索引是b+树还是b树?它们的区别?为什么用b+树?
12.然后看我项目用了nginx,问了怎么用的?问我nginx反向代理和正向代理区别?我答一个是服务器内部,一个是外部。(面试官不太满意)

  1. java文件如何转换为字节码?字节码又如何被执行的?(我扯了扯记得的字节码的内容格式,面试官不太满意)
  2. 如何防止类不被继承?final为什么可以阻止类被继承?(我从字节码的final标识被jvm检测到的方面谈的)
  3. leetcode 40.组合总和Ⅱ 类似的,然后求数量。
    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
    candidates 中的每个数字在每个组合中只能使用一次。

发表评论

后才能评论