java培训,南京java培训哪家比较好

java培(pei)训(xun),南(nan)京(jing)java培(pei)训(xun)哪(na)家(jia)比(bi)较(jiao)好(hao)

背景

面试完了上述几家公司之后,最后开始面试南京的字节跳动,其实面试南京字节之前,我大概是在7月初就投递了简历,一直是没有音信,不过找了一个内部认识的HR,也咨询了了解内情的猎头,说字节跳动7~8月在做校招,我也加了字节跳动招聘的官方微信公众号,发现推送的的确是校招信息,所以坚信还是有机会面试的,所以才有了上面的数家公司的面试经历

在面试字节跳动的前几天,忙里偷闲面试了一下南京vivo,其实我就是随便投的,看这个公司名气比较大,而且离目前自己工作的单位也比较近,就抱着这种心态,在boss直聘上主动投递了自己的简历,效率还是很快的,第二天HR就打来了电话,安排了面试,面试一共是四面,2轮技术,一轮总监洽谈面,一轮HR面试

一面

我也是晚上去面试的,毕竟不能请太多的假,这样单位的人比较容易起疑,主要还是要低调,也不是说确定一定要离开,闹僵就不好了,所以还是趁着不忙的时候早下班的时候,出来面试的,南京vivo在天隆寺地铁站二号口一出来,就能看到醒目的logo,安排面试的地方应该是最豪华的,听说那个vivo大厦,是vivo自己的,不是租的,也是财大气粗

在二楼的会议室等了一会,就来了两位面试官,看年龄估计30岁出头一点,都比较飒爽

1:RPC调用的时候,如果注册中心宕机怎么办,整个RPC还能调用吗,如果注册中心一直因为某个原因,一直宕机,新起来的服务怎么办

第一问就是相对比较深的,还是比较有挑战的,我就把怎么本地缓存RPC服务信息,或者持久化服务信息的思路简单地说了一些,反正实际工作中我怎么处理的,我就是怎么说,面试官说有什么更好的方法呢,我说不知道了,希望面试官给点提示,他们也没有说啥,就下一个问题了

2:注册中心有没有遇到过性能瓶颈,有没有遇到过服务提供者突然宕机,流量依旧打到宕机的这台机器上去呢?

我说遇到过zookeeper作为注册中心,当服务节点很多的时候,watch通知的机制就会有明显的延迟,当服务提供者突然宕机就会出现流量错误分发的可能,这个时候可以按照大部门划分zookeeper集群,然后跨部门调用的接口统一注册到服务网关zookeeper,这样能够做到流量隔离,也算是服务治理的一种,并且可以根据服务治理中,调用次数的统计,查看哪些服务是僵尸服务,根本没人使用,应该下线就下线,应该合并就合并,尽量减少注册服务的个数,这个也是服务治理的一种方式

3:讲一下AQS源码,一些核心变量,什么是公平锁,什么是非公平锁,AQS排队是怎么排的,怎么实现后继节点通知的,里面用到的数据结构是什么,双向链表,为什么使用双向链表,单向链表不行吗?

这个问题问的还是比较细的,不过也还好,我在一个blog看到过AQS的精细讲解,也花了好长时间一遍看源码一遍看别人的理解,基本上也能口述上来答案,也是侥幸通关

4:java的动态代理是怎么做的,spring中怎么判断用java的动态代理还是用cglib做代理呢?可以稍微讲一下cglib的API吗?

前2问我想大家都会,但是我很诚实地说我没有在实际场景中使用过cglib的直接API,说不会,面试官也说没有关系,知道最好,不知道就算了

5:java的Object类中有哪些方法?java中的基本类型有哪些?

toString,hashcode,wait ,notify等等方法,int long float double boolean byte char,short,这个问题其实非常初级,不过其实我也是吓了一跳,万一我忘记一个就凉了,初级题目不能挂

6:请使用多线程交替打印数字,一个线程打印1,3,5,7,另一个线程打印2,4,6,8,手写代码

这个问题非常凑巧,如果提前2天问我,我可能憋的时间长一点还能写出来,但是叫我面试当场写出来是万万不可能的,运气好,我之前看到莫那鲁道大佬写的blog,一时兴起,也手写了2遍实现方法,印象还是比较深刻的,我相信这种手写代码如果通过的话,这一轮面试肯定是过了

7:后来另一个面试官也把spring的一些问题从头到尾问了一遍,从aop,ioc,到事务的传播,mysql索引优化,explain等等,跟之前的差不多,反正也问了一遍,准备的很充足,也就顺理通过,mysql那一块我回答的还不是很好,特别是锁那一块,没有理解的特别透彻,回去还是要多加工

一面顺利通过,第二天HR来电话跟我约了二面的时间,也是晚上,效率还是很高的

二面

二面的面试官估计35岁左右,看起来像是架构师,看起来比较干练

1:把目前你们公司的整个技术架构画一下,为什么要有网关,你们网关中有哪些功能,怎么考虑安全问题的

这个问题似曾相识,看来大佬面试都不问技术细节,一上来就是喜欢这种大架构,大设计,各种理念的东西,我也把之前的图画了出来,安全问题我还是说的接口黑白名单,加验签,接口限流,ip控制等等,反正我就简单了说了一下思路

2:接口如何限流,如何做集群限流,redis限流的时候怎么不影响接口性能

还是比较粗粒度的问题,也偏向实战,我就说我们公司使用阿里巴巴Sentinel的框架进行限流,目前效果和目的都达到的不错,我也把Sentinel的源码比较核心的部分,怎么做统计,窗口函数,跳跃数组什么的,令牌桶限流,token集群限流什么的,把能说的都说了一通,从redis中拿token,redis的队列,阻塞队列啥的也都简单的描述了一下

3:供应链架构清楚吗,以前做过吗,有什么细节吗

我没有做过供应链的项目,所以我就直接说不清楚,这个问题,你不能瞎忽悠人家,还是老老实实地说了一下,不过我把我自己做的项目的一些特点,遇到的一些问题,怎么解决的,也是算亮点,我都简单地说了一下,面试官还是很nice的,并没有打断我说的话,虽然我的回答跟问题没有任何关系

4:如果做vivo的支付系统,做积分扣减系统的话,应该要注意什么,怎么才能给用户更好的交互体验,面试官有所vivo百万日活,要考虑性能

我就把支付宝的那套方案说了一遍,异步通知,MQ解耦,有多个补偿接口,有重试,数据分表分库,每日做好对账,做一个稳定的支付系统,反正也算是黔驴技穷地能把自己知道的都说了一遍,也顺口提了一遍支付安全的问题,貌似这个答案面试官还是比较满意支付安全的考虑的

三面

总监面试,没有技术面,就问一些人生问题,你是怎么看待技术的,如果做管理的话,需要注意什么,如果一个项目失败了,你会怎么分析项目失败的原因的,会从哪些角度分析问题,家离公司远吗,对vivo公司了解过吗,对南京的业务有过了解吗,这些问题就没有标准答案了,反正就尽量给人家一个好印象,不要瞎说,只要情商正常,不怼人家,基本问题不大

四面

HR面试,聊了聊薪资要求,确认了一下学历,过去工作的经历,应该是再次确认一下你逻辑思维能力和语言组织能力,就结束了

结果

拿到了offer,vivo据说是两种薪资结构,后来打听到南京vivo的薪资是按照广州那边标准开的,我要的有点少,不是有点少,是少的可怜,我要28k,HR说肯定能超过我要的薪资,不管哪种方案,最后涨幅估计有60%左右吧,反正我是有点后悔,早知道就更加认真准备了,薪资也不会要这么低了,自己是真的傻,南京有愿意吃苦的小伙伴缺钱的小伙伴可以好好准备去vivo试试,土豪公司,你值得拥有

字节跳动

南京的字节跳动,去年刚刚过来,据说是要考算法的,去年猎头找我的时候,我是"无情"地拒绝的,哈哈,其实倒不是不心动,主要是我知道面试不会过,只能拒绝,一个大厂刚刚有地区公司刚刚成立,如果你能早去,肯定是有好职位好部门可以选择的,但是算法,呵呵,不怕各位大佬笑话,我去年的时候,基本就会几个排序,估计快速排序也是写不出来的,但是,当时就跟自己定了目标,要学算法,刷LeetCode,今年3月的时候,我开始系统的学习基本的算法,数组,链表,二叉树,栈,Trie,图,堆,树等,动态规划,二分查找,排序,0-1背包问题然后也手写了一些常用的时间,然后每天一道Leetcode题目,说实话,我是不会的,基本上看完题目是没有思路的那种,然后就看答案,答案一看就懂,一写就觉得"下笔没有神"的那种,难道是没有天赋吗,然后后来也看了一些慕课网的一些入门算法教程,这边还是推荐一下的,讲的很不错,一直到6月底,坚持每天一条Leetcode,然后7月就投了字节跳动,我当时的感觉有70%的把握能通过面试吧

结果石沉大海吧,直到8月的下旬,中午的时候,一个北京的电话,我一开始以为是诈骗电话,我刚刚睡醒,听到对方是字节跳动的HR,才如梦初醒,约了下周二面试,当时已经是周四了,我给我自己争取了最大的复习时间,其实从7月开始我就没有再系统的看算法,基础的还是会,例如链表和排序,二叉树还行,动态规划,图基本就忘得差不多了,在这里我要千万提醒小伙伴,面试直接跳动的,一定要好好准备算法,否则我就是惨痛的教训

学习算法,一定要系统,不能一上来就是LeetCode,去背字节跳动的题库,这些是行不通的,至少保持4个月以上的时间,每天花半个小时,系统的去学习,我感觉,除了那些比较有天赋的,我这种普通人,当然如果你有天赋,你是高材生,东大南大的学霸可以当我瞎BB,我们这些普通人,一定要不断地积累,才会有希望,我就属于在最后的时候,以为没有面试机会了,就放弃了,在这个时候才会发现"机会是留给有准备的人的",这话的真正含义

先说结论吧,三面就挂了,第三面的算法没有写出来,是一个动态规划问题,也是比较入门的,我就是没有写出来,不怪任何人,就是自己的问题

先说下面试过程吧,都是视频面试,在牛客网有一个链接,视频面试,当面写代码,这个小伙伴们可以提前模拟环境,也可以提前在上面谢谢代码,找找感觉,每次面试都是40分钟,字节这点把控的很严,时间不能超过规定的时间

面试题如下,因为南京字节跳动并不是很纯粹的java开发,听说是以数据处理为主,java的面试还是相对阿里巴巴比较水的,原因估计字节是golang为主要语言,算法为魂的公司,所以java问题比较水这个可以理解,基本没有问过框架类的东西。

1:java就问了一些集合类的问题,问了JVM的一些参数,叫你解释每一个参数的意思,问的还是比较细致的

2:MYSQL的索引下推原理,不下推和下推的时候,叫你解释一下获取数据的过程

3:给你200G的文件,这些文件中存放的都是userId,现在内存就1个G,叫你获取出现次数最多的前100个UserId

4:Netty的Epoll和Select的底层原理,区别是什么?

5:Netty的堆外内存怎么使用的,怎么垃圾回收的

6:会golang吗,跟java对比过吗,golang的垃圾回收了解过吗?(主要是我学过一年多的golang,但我重来没有研究原理,都是些代码,熟悉语法,能CRUD,我就回答会一点,才会有了后面的问题)

7:算法题:

1:倒序链表

2: 返回二叉树的右视角的元素集合

3:0-1背包问题,(就挂在这个上面了)

字节跳动的面试题我就不列答案了,其实我回答的也不是很好,其实有些问题和java格格不入,那个200G的问题,我也不知道答案,如果哪个大佬知道答案,可以教教我这个小菜鸡,相互学习嘛,来年再战

结果

最后的最后是我哪也没去,出去溜达了一圈,看了看外面的世界,知道了自己的不足,总结一下吧

  1. java的知识点范围不够大,rocketMQ,etcd那一块需要系统的学习,mysql的锁知识很欠缺
  2. 算法还没有入门,至少基础算法没有融会贯通,没有算法灵性
  3. 还是需要再接再厉,架构这边的知识,网络的知识,linux的一些常识需要学习
  4. 知识体系不够健全,docker和k8s,现在一些比较流行的技术,也需要达到成熟运用的地步,目前入门都算不上
  5. 可以再深入学习一些golang的知识点,目前为止,我就会java,居安思危,多一门语言也算多一种保障
  6. 目前公司的数据量并发都比较小,长期以往,可能会被淘汰,没有大的业务支撑,技术也很难前进一步,大浪淘金嘛

再跟大家分享一下我浅薄的面试准备吧

1:可以面试之前把自己简历上写的技术点一一列出来,可以使用processOn这个在线免费软件,做一个思维导图,比如mysql,spring,redis,java集合类,juc,jvm,中间件这几个大的模块,然后不停地去细化知识点,这些大类的一个个知识点列出来,一一复习到,平时积累的一些心得和看到的一些优秀blog也可以放在这些大类下面,整理清楚,这样就能够形成完整的知识图谱,面试的时候,按照图谱复习,这样就能基本做到面面俱到

2:简历要好好写,不写自己不会的东西,不要写自己还没有完全掌握的东西,不求多,只求精,写什么就会什么,人家问你写的,你至少能回答一二,不能开口说不知道

3:平时项目中实际遇到的问题,也要好好积累,例如你遇到数据库死锁,慢查,OOM等等问题,自己的解决方案要记下来,不要总想着CRUD,把这些事情交给运维,交给你的leader,我就看看面试宝典,就可以起飞了,遇到大公司老辣的面试官,你考面试宝典是过不去的,及时过得去,职位也不会很高

4:最好找内推,今年经济不景气,全国互联网公司的HC都不多,如果能认识人,还是尽量内推,如果你认识字节跳动的人,也就不会出现我这样隔了近2个月才有消息的情况,只会让你措手不及,还有就是知道薪资范围,就不会出现薪资要的过高或者过低的问题

最后的最后还是一句话,平时多积累,多看源码,对这一行多热爱一点,你肯定会起飞的

如果有大佬觉得有什么可以补充的,欢迎留言,我们一起学习,希望P7,P8大佬带飞啊,祝今年想找工作的小伙伴最后能够找到称心如意的工作

大佬们看到最后,能关注一波吗

本文来自网友投稿,不代表智慧经验大全立场,如若转载,请注明出处:https://www.tjxxjx.com/xuexi/3238.html

小杨哥

小杨哥

聚集行业内的专家和资深从业者,提供多种问答形式,包括文字、图片、视频等,让用户更加直观地了解问题和解决方案。

全国肝病医院,全国肝病医院排名
花花连连看4399,西瓜视频创作者平台官网
尾行2攻略,尾行2攻略皋月
53517230,数字含意
冬季晚餐食谱大全,一家四口晚饭
ae序列号,ae中遇到的问题及解决方法