分类: IT职场
2020-03-17 16:26:35
面试过程
笔试过程
总结
?视频会议,面试了一小时二十分钟,先面试提问,然后做了笔试题目。
?首先,面试官做了自我介绍,然后我自我介绍,开始面试。
面试过程
1.说一下你的项目吧
?答:balabala(说的很笼统,不过好歹还是让面试官明白了我做的是啥系统,然后帮我总结了一下…)
2.你说做过数据库优化是吗,说一下吧
?答:
??1.首先是sql优化,把子查询修改成连表查,有些字段用的比较多又需要连表的增加了一些冗余字段;
??2.把一个请求拆分成多个ajax请求(由于请求数据太多导致页面加载慢的)
??3.我们的订单数量比较多,就用了麒麟(Kylin)来查询
追问1:为什么子查询会慢,改成连表查询就快了呢?
??e…好像是因为子查询会生成一个临时的表
追问2:你们优化前后加载页面时间差别
?之前有个页面要十几秒,后来一两秒
再追问:十几秒?
?恩恩有一个页面,不是经常访问的页面,但也会用到
?(谁让你说用Kylin的页面啦!面试官都没有追问kylin说明不了解或者不感兴趣呀!不过就算问了kylin也只能说那么一点点而已…可能应该说用sql优化和ajax优化的页面吧~)
3.从客户端发送请求到接收到信息,
中间经历了什么
?我:这个…之前好像写过HTTPRequest那些东西,但是现在不太记得了…
?面试官:没事儿,总不能一点都不知道,对吧,就说说你知道的吧
?我:(纠结半晌,颤颤巍巍…)客户端发起请求,服务器接收到请求,然后处理返回结果给客户端(内心:你这说的不是废话吗!【其实认真看了TCP的三次握手和四次挥手的,但是不知道咋把这个插进来,真是傻透了!不能再加个连接和断开连接吗!】)
?面试官:…那客户端怎样发起请求的?
?我:通过HTTP协议…
?面试官:(低头写写写,大概在写:该应聘者对技术的力量一无所知…)
?我:我还看了一下TCP…
?面试官:嗯?
?我:TCP比较安全(安全个屁!瞎扯啥!能不能说点儿会的了!三次握手啊喂!【TCP并不是安全的,请不要被误导,因为TCP在建立连接的时候步骤比较多,所以容易受到攻击,TCP是稳定可靠的,相对来说,UDP还没有那么容易受到攻击,只是UDP是尽最大努力传输,但不保证可靠,可能会丢包啊,顺序错乱啊啥的】)
?面试官:既然TCP是安全的,那还有什么不安全的吗?
?我:UDP(嘤嘤嘤,压根就没看…)因为TCP是需要一些步骤来建立连接的,但是UDP好像没有这些步骤
?面试官:那UDP还有啥存在的价值?大家还用它干嘛啊(我要为UDP鸣不平!谁说它不安全!)
?我:它快!…网络这块的东西还是大学的时候学的,好些都记不太清了…
4.你的Java基础怎么样?
?我:基础?您是指源码?
?面试官:不然你觉得我说的啥
?我:看了一些,但是不太多…
?面试官:说一下你看的吧(对JDK包中类的理解)
?我:好的。
?ArrayList,它的底层是数组(它的特性为啥不说!它的初始化长度为啥不说!复习了的都不说!你不说面试官不会觉得它简单而是觉得你不会或是不理解啊大傻子!)
?LinkedList,它是通过链表实现的(链表的特性也不配被说,因为它们太简单,嗯)
?HashSet,它里头有一个HashMap,HashMap是通过散列实现的,不过散列我还没有看…(要哭聊,会的不说,不会的非要瞎说!它的初始化长度,它的最大长度呢!!!!!不气不气,要不会被自己给气死的)
?TreeSet,它是一个可以排序的集合,可以给它传一个Comparator,就可以自定义排序了,它里面也是一个TreeMap,TreeMap是由红黑树实现的,这个…我也准备看,但是还没有看到。
?面试官:大学的时候应该学过吧?不是计算机学院的吗
?我:嗯学过数据结构,但是对散列和红黑树没啥印象了,就记得堆栈、指针那些了…
?面试官:还看过别的吗,可以接着说
?我:HashMap可以通过Collections.synchorizedMap()转化成一个可以同步的map,我看它是通过在方法上增加synchronized关键字来实现的,然后ConcurrentHashMap是通过分段锁来实现的,性能要高一些。
?面试官:那你知道锁吗
?我:之前看过,但是因为平时用不到,又忘记了…
5.怎样创建线程?
?我:创建Thread或者实现Runnable
?面试官:线程有哪些状态
?我:(又没看,就把它从创建到死亡说了一下,还说四个状态(多嘴!))
?面试官:线程池了解吗
?我:不了解…
笔试过程
1.给一个字符串,包含A和B,要获取目标字符串A必须在B之前,即A…AB…B的形式(也可以为A…A或者B…B),返回删除字符最少的字符串。示例1:ABABABA,目标字符串:AB(我当时想可能是面试官手误,因为是面试官现场打字的,反正意思我明白)示例2:AAAABBBBA,目标字符串:AAAABBBB(请往下看,题意好像不太明确?)
??面试官说这是个显示简单的题,让我考虑5分钟,然后两三分钟后我动笔了,面试官说你就开始写啦?先跟我说说你怎么想的吧
??(其实我没有想好,因为我感觉题意好像没有问题,但是答案确实是不唯一的啊,怎么才能找到删除最少的呢?难道是动态规划的问题?但是动态规划的问题级别是简单?难道是我太蠢有啥条件没有想到?所以我决定先写两句热热手…)
?我:我还没有想完,因为你它有多种答案,我还没有想到应该怎么找到删除字符串最少的那种情况。
?面试官:多种情况?哪几种情况?
?我:你看这个示例1,它可以是AAAB,也可以ABBB(也可以是AABB…幸亏面试官写出来这个示例,要不我就不知道咋表达我的疑惑了)
?面试官:喔不好意思,这个示例我写错了(思考ing)
?我:这个是不是动态规划的问题啊(弱弱地试探地问了一下)
?面试官:(想了一下)这个应该还用不到动态规划
?我:(灵机一动)啊!我知道了,其实也就只有几种情况,要么是A…AB…B,要么是全A,要么是全B,把这几种情况比较一下就行了!
?面试官:那你开始写吧(把返回值改成了int,只让我返回删除字符的个数)
?我:好(后面写着写着又想到A…AB…B其实还有多种情况,但是昨天我只想到两种:找到最后一个A删掉之前所有的B,找到第一个B删掉之后所有A(不过之后我又想到还有其他情况,也有可能不留最后的而是中间的A或B是最优解呢,又回到了最开始让我纠结的动态规划…我再想想这个问题,反正我还是有点难受,不知道是我的错还是题的错…-.-…))
2.50个红球,50个篮球,有两个罐子,将100个球放到两个罐子里,怎样可以使拿到红球的概率最大?拿到红球的最大概率?
?我:那我直接把50个红球放到一个罐子里然后从那个罐子里拿可以吗…
?面试官:你放的时候看得到,但你拿的时候看不到
?我:那应该是50%吧
?面试官:你确定?再给你3分钟考虑一下
minutes later…
?我:这个罐子有啥玄机吗
面试官:没有
我:那我觉得还是50%啊
面试官:说说你的想法
我:因为红球始终都是50个,占50%,不管有几个罐子,红球的比例是不变的
面试官:好,那我们今天的面试就到这里了。你有什么问题吗?
我:(卑微)您觉得我怎么样,对我有啥建议呀?
面试官:这个…现在评价你好像不太好,如果有机会一起工作可以讨论讨论。
我:喔~好的。
面试官:那你对这个面试感觉怎么样?觉得难度如何?
我:(认真措辞+娇羞hhhhhh)感觉我复习得不够全面,然后好多东西都理解得不够深刻,不过我觉得这个面试我已经尽力把我会的答出来了(只是表达一下我的态度,虽然答得一塌糊涂,但是我真的是认真对待这个事儿的耶!)
面试官:其实在你做笔试这个题目之前,我觉得你答得都…(想个啥词儿捏?)
我:(不如我来帮帮您哈哈哈哈)太浅了?
面试官:对,不太好。
(我:表面笑嘻嘻,心里哭唧唧)
面试官:因为你18年入职的对吧,一年多应该学到很多东西了,可是你简历上写的,包括你说的好像都没有什么内容。
我:嗯,刚入职的时候的确碰到很多问题,但是后来解决了,就觉得好像都没啥了,因为都是日常在用的东西…
面试官:好的,那就这样吧
我:好,那谢谢您了~
面试官:嗯,再见。
我:再见(挥手告别…)
总结
?? 有点害怕面试,因为很久没面试过了,其实自从上大学开始就不喜欢考试这种(屁,啥时候喜欢考试了?喔能考好的时候可能还是喜欢的吧)测试自己能力的…测试了,额跑题了。
??但,不管怎样逃避总不是问题!既然面试有问题,那就应该解决它啊!
??继续,因为这次面试中好多面试官问的问题我都好像知道又好像不知道,有些是因为以前学过但是忘记了,有些是因为自己了解过但是了解得不够全面,理解得不够透彻。
??但是有些问题,像是JVM这种,可以先不要急着去看,Java基础才是更重要的,还有网络这些,而且不应该每次只是复习一个点,而是应该把自己的知识点串起来,建立自己的知识体系,这样才能够在面试官提出问题的时候解释清楚它的来龙去脉。
??还有,博客是有必要写的!在让我讲项目收获的时候完全想不到,但是工作的时候不是经常在解决新问题吗!看了别人的答案,虽然当时是学会了,但是用完就不记得了啊~
??复习计划:
??1.先用Xmind画个知识体系图,把重要的点复习到位
??2.把常用的面试题揪出来,自己试着回答一下,录下来自己感受一下,看看应该怎样完善补充
??接下来还有别的笔试,那好像还是应该先准备笔试喔,毕竟这个面试已经过去了~ 但是这两天不太想刷题了耶,前几天焦虑又紧张,睡得都不太好~ ok那先整知识体系图好啦!