南京渣硕求职路(网易美团头条百度面经)+Java学习路线(拙见)

南京渣硕求职路(网易美团头条百度面经)+Java学习路线(拙见)_第1张图片

 

首先自我介绍一下,楼主南京渣硕一枚,秋招主要投递JAVA后台岗位,面过以下公司:网易+美团+头条+百度+华为+中兴,拿下了网易和中兴提前批offer,华为依旧泡池子,美团四面挂,头条三面挂,百度今天下午二面没去了。其他一些公司收到了面试,没去参加了。

之前在上海某互联网大数据实习一段时间,后因个人兴趣问题不在大数据这块干了一个月跑路。

最后,猪场是最想去的,没有之一。


网易三面:(内推)

网易整个过程来说,算对得起自己长期的准备。面试之前刷了一些面试大佬的面经,特此感谢,挺有用的。

一面:

一上来,面试官没让我自我介绍,直接开始问题目。

java基本类型和占用字节数,回答八种,也特意提到boolean类型,1或者4个字节,为什么?

阅读过哪些集合源码?重点提了hashmap的哈希算法

Innodb的索引实现

jdk1.8和jdk1.9的新特性。听到这个楼主一脸懵逼,1.9根本不会,只能把1.8的一些新特性结合具体例子跟他讲了一下,比较满意。

JVM内存结构

解释下装饰器模式,回答不会,以前这个的确没准备

动态代理原理和实现,画出代理模式UML,我说不会画,然后面试官挺好的,说你是非计算机专业的,那就不用画了,那就在纸上写一个过程吧

画完以后,看着手上的表,说20分钟了,到点了,于是结束。出去等hr通知二面。

二面:

项目做的是一个秒杀系统设计,面试官问的偏项目多,面试官胖胖的,挺可爱,虽然不爱说话。

谈谈你对redis的理解。提到一个redis热启动,没听过,一脸懵逼。

秒杀过程中怎么保证redis缓存和数据库的一致性?

多个用户请求同时第一次访问空的redis,怎么样不使redis崩溃?

SpringMVC 有几个IOC容器?由什么决定?有点懵,特意反复跟面试官确认这个问题,在IOC概念饶了一圈又一圈,回答不好。

动态代理实现,说一下过程。

不同的面试官,但是也看了一下表,说20分钟到点了,心里一慌,感觉GG,对我不感兴趣。

hr面:

这是我面过的最刁钻的hr面了,男,全程一直看我的眼睛,下了一些套。边自我介绍,边翻我的简历。全程40分钟,前两轮技术面总和。

  • 兴趣爱好(回答爬山游泳)
  • 家庭情况,女票背景,交流生背景
  • 你觉得父母对你最有的品质是什么?举个例子,我这里吹大了
  • 为什么报互联网产品这个hc?你了解哪些产品?回答说不太清楚,想扇自己几个耳光
  • 非计算机专业为啥来搞开发?
  • 为什么选择网易,其他公司为什么不考虑?吹过了,被hr怼,说我大空
  • 选择工作时,你考虑哪些因素,给地点薪资技术等因素排名
  • 实习收获最大的,举个case?平时怎么解决问题的?
  • 从小到大最坚持的一件事,我回答学习,是的,我是傻逼
  • 兴趣爱好,重复一遍(此处有套,看我是不是说假话),你说爬山,多大频率,去哪儿爬
  • 现在面试哪些公?offer收割情况?
  • 你有什么问题要问我的么?

网易面试总结:

拿到内推offer,当时心情五味杂陈,晚上彻夜难眠。谈了多年的女票也在杭州读研,自己的努力也有了收获,于是昨天决定去猪场养猪。

网易刷了一些面经,结合自己的面试经历来看。技术上面,一轮基本偏JDK基础,如果基础不好,绝对过不了。然后很喜欢问Spring类框架,一些特性和源码也问的挺深,最后就是设计模式了,网络方面也有些设计。算法撸得比较少,就算撸也偏简单的那种。


美团四面:

一面:(50分钟)

你对集合那么熟悉,看过哪些源码?HashMap,HashTable,ConcurrentHashMap等等

讲到ArrayList,讲一下初始长度,扩容机制。

说一下ArrayList和LinkedList区别,然后讲了大量数据下在LinkedList前1/10处插入效率高,在ArrayList中部以及后部插入效率高,解释原因。

楼主故意引线程安全的CopyOnWriteArrayList,然后把源码吹了一下。

来,给你看例子:

  1. private HashMap map = new HashMap<>();
  2. 线程一:map.put(1,2); 线程二: map.put(1,3);
  3. 两个线程去执行一段代码
  4. if(map.get(1) == 2) 输出...
  5. if(map.get(1) == 3) 输出..

问线程一和线程二执行完上述完会出现什么问题?

我回答说可能出现覆盖,跟执行顺序有关系,怎么解决,我说map用锁修饰?可以,有没有其他的,再想一想,想一想??

然后想了好久,没想出来,他说ThreadLcoal你没听过么?我豁然开朗,于是开始拼命解释原理实现、可能导致的内存泄露问题,挽救路线完成。

来,做些题吧。心慌,看他从桌边的一坨纸中抽出一张,两个题

(1)两张表,考连接关系,写SQL语句,楼主把sum写错成了count,尴尬,SQL太长肯定错的,可是面试官没细看了,暗喜。

(2)N个数中求最小的M个数,用快排的partion思想,时间复杂度O(n),跟面试官讲解了三遍,他还是没听懂,说回头再看。。。。

二面:

疯狂对着我的项目进行提问。有点尴尬

具体的秒杀细节怎么做的?秒杀的核心技术在哪儿?你怎么保证的?

超卖怎么解决?讲一讲spring的事务特性

来,谈一谈你的redis理解,为什么使用prostuff,不用传统的序列化?

来,继续撸算法吧。给一个string类型数字字符串,比如“1026”,范围0000-9999,打印繁体读法string-----"壹仟零贰什陆”

看你对多并发熟悉是吧,来,多个线程同时去访问同一个代码块,我想知道最后一个线程什么时候执行完,怎么做。答CountDownLatch。

三面:

之前同学都是当天只有二面,第二天再继续面,我懵逼了,刚出来了又被拉进去面,我说我想去上个厕所,面试官微笑,两分钟解决。

进去面试官在电脑不停敲字,说,来给你出一道算法吧,很简单,很容易,我心一暖。

定义两个字符串相等的规则:(1)大小写不敏感;(2)s1中的字符中s2中必须有;(3)s2中的字符中s1中必须有。判断两个字符串是否相等。

很快写出来了,没借助空间,看完以后,让我用一个map实现,O(N)的时间复杂度,balabala。。。

  • 你实习的这个部门,主要负责哪一块?
  • 你自己做的哪一块?详细介绍一下?
  • 为什么不愿意搞大数据,转而搞java开发?

这一块回答的很差,自己傻逼了一回,没事,后面有继续傻逼的

  • 以后想留哪儿呀?

我说南京和上海都可以,反过来问我,南京纯互联网少吧,特意提了下途牛,我吹了一波新美大较途牛的优势

精彩的来了,他问我:那你刚刚为什么说南京也可以?我..我...我......开始挽救,挽救失败。

  • 有没有问我的?

此处最傻逼:我说我有时候用美团app发现输入具体的位置时,周围并没有显示我想要找到的店。问完这个就超级后悔了。

开始尬聊模式,我不停在解释不该提这种问题,并没有什么意思,面试官一直说没关系,不是我们部门做的,可能他们有bug或者没有考虑到的。。

hr面:

又是一个男hr,全程微笑,呵呵哒。

来,小伙子做个自我介绍。目前手头拿到的哪些offer。手头的不错呀,为什么选择来上海?你知道新美大现在市值么?你最大的缺点和优点?

我回答说可能有点急性子,受不了周围的人拖节奏。

两个问题也没回答好,感觉贼难受:

(1)你的同事就是那种很拖的人,你怎么解决?不要说沟通,沟通无效

(2)你的老大就是那种很拖的人,你怎么解决?不要说沟通,沟通无效

昨晚出了结果,周围进hr的好多都收到了offer,心里有点不开森,的确情商有点低,仍需学习。但是要好的朋友过了,很开心。


头条三面:

一面:(26分钟)

写了单例,具体解释了volatile禁止指令排序机制和对象new过程。

数组最长递减子序列,写了个动态规划,比较简单。

数据库事务隔离级别

进程通信方式

一面就26分钟,答得还可以,小哥让我等一等,后面继续二面,接着视频面。

二面:(60分钟)

秒杀商品的库存放在哪里,如何保证redis和DB的一致性

多个线程同时访问为空的redis,怎么解决(这两个问题跟网易一模一样)

非递减序列找到第一个大于x的位置,时间复杂度要求lgN(二分)

一个完全由数字组成的字符串,求字符序列子串可以被k整除的个数,要求O(N),有点难度,没A全

cookie和session区别

get和post区别

网址中输入URL,一系列过程

状态码,知道的讲一下

一个CPU单核,同时只能处理一个指令,是或否?

一个CPU 8核,最多同时只能处理8条指令,是或否?

最后,小哥问我JAVA虚拟机那一块知识,他不懂,最近面好多人都是搞JAVA的,临时学习一下。于是我开始背课文了。

二面一个小时,晚上接到hr电话,说二面过了,欣喜万分。

三面(80分钟)

锁在操作系统层面实现原理(回答那么多,其实面试官的意思是想让我回答原子性三个字。。。)

多线程和多进程的使用场景

CAS原理,写了个底层源码

mac地址和ip地址,瞎扯了写

IOS7层变成为什么变成5层,为什么要分层?

给定一个数组(全为0~9的数字),可能有重复,挑出数字自由组合,给定数k,找最小的大于k的数(回溯),没撸完,这个是败笔,撸了半个小时,跟面试官讨论了好久,面试官也提示我用回溯,可是我太菜不会呀。

面完半个小时后,hr来电话说不好意思,GG,不过收到网易通过短信,于是无所谓。


百度

一面:(今天下午本来2:00二面,后面心想对上海不是很感冒,所以放弃了)

百度的小哥真的超级好的。在酒店的一个房间,我刚刚推开门,就站起来迎接我,微笑,很舒服。下面面经。自我介绍。

你说你熟悉Java基础,那讲一讲int与Integer的区别。我特意解释了拆箱装箱、Integer的一些源码、泛型的应用。

JVM回收机制,从判断对象死亡、GC Roots、Stop the World、回收算法优缺点讲起,提到引用计数弊端。

JVM中给对象赋值为null,一定会被回收么?举个case,讲到了内存泄露。

进程中文件写怎么保证安全?我操作系统那块不熟,就提了JAVA中的ReadWritelock底层实现。

好了,来撸个算法。找到字符串中第一个出现次数只有一次的字母,比如abcdab,输出c,两种方法

海量数据题两个:

(1)两个文件,分别存放50亿个URL,每个URL60个字节,内存4G,找两个文件并集。

(2)一个文件,存放45亿已排好序的32位int整数,找出一个出现次数大于一次的整数,找出一个就行。经过提示回答出来了。

智力题:一个袋子100个球,每次只能取1-5个,甲乙两个人抽,谁抽到最后一个谁赢,甲先抽,怎么保证甲赢。

三次握手中为什么不是两次?为什么不是四次?

网站输入一网址过程,具体讲一下DNS解析过程。

get和post区别,post一定是安全的么?怎么解决登录信息被截取?

淘宝的登录就是get方式,怎么保证安全?

再次提一下,百度的小哥人真的很好,走的时候特意站起来送我走,特别感谢。不去二面现在不后悔。

华为二面(优招):

一面:之前问周围同学的都是项目,之前在上海实习回奔到南京,于是也就没怎么准备基础,项目准备了一些。然而,事实相反。

HashMap和Hashtable区别,我特意提了哈希算法不一样,各自的算法原理,提问:为什么不一样?Hashtable为什么不用HashMap的?

HashMap1.8优化在哪些方面?

写了个单例模式。好久没写了有点忘了,双重锁检查写错了两个地方,被指出来了,尴尬

写了个二分查找。面试官问我,你确定数组就是排序的么(我心里无语),数组非空判断不用(我服)?

用过哪些锁呀?synchronized和reentrantLock区别

讲一讲reentrantLock底层啥样子,实现api

楼主嘴贱,扯了一下ThreadLocal,疯狂问这个,底层实现我还可以讲一下,问一下使用背景,怎么使用?有点懵,忘了

CopyOnWriteArrayList底层实现

JVM的回收算法,当我背到一半后,打断了,说我知道你是为了面试背背而已,过几天忘了

major gc和full gc的区别,我脑抽,说反了,被鄙视了

聊了这么久虚拟机,你调过优吗?怎么调的。。。一脸懵逼

二面:(20分钟)

一面基础没有回答好,二面面试官对我也不感兴趣的样子。

自我介绍后,拿着我的简历,说这上面有三个项目,来,挑一个你觉得最牛逼的项目讲一讲

画画具体结构和功能模块。我在画时他在电脑端不停打字,然后基本没看我写的。

怎么看待华为?

你选择华为的理由是啥?最看重华为的哪一点?

你有什么想问我的?

面完以后,心里很虚。前一天周围有同学在二面面试官直接谈薪资的那种。我觉得我可能遇到了一个假的面试官,java是真心的很懂啊,而且问的都挺深,这件事告诉我别想钻空子,该来的还是要来的,那就要在来之前把所有的裤子穿好。

ps:华为今年有点厉害,面试结果都在池子里泡了两个月多了,啥时候给个准信?

中兴两面(提前批):

参加的云计算提前批,感觉面试组织的有点乱,我是先进行的二面(两个技术官),再进行的一面。加起来20分钟。

技术的问的比较少,也就介绍一下项目,然后对加班的看法。有两个奇葩问题:

(1)如果华为和中兴同时给你发offer了,你愿意去哪家?

pa:周围有同学被问,网易和中兴,阿里和兴,你选哪家?为什么?考验自己说假话的能力到了,不要舔的过分,不要真的深刻

(2)如果项目中某个接口模块是另一个部门设计的,出现了问题,而另一个部门因为事情有轻重没有时间解决,你怎么解决?

后面部门老大说过了,然后全程电话介绍他们的产品,我加起来说话的时候不超过一分钟。加了hr微信。

最后总结一下楼主学习JAVA的一些技术历程,纯属个人拙见,不同看法求轻拍~~

JAVA语言基础:

  • java基本类型、引用类型、多态底层、泛型底层、反射机制等
  • 常见的集合类1.7/1.8版本源码
  • 推荐书籍:Java编程思想,Effective JAVA(深)

多线程并发编程:

  • concurrent包源码必看,有以下几点:
  • 线程池,阻塞队列,非阻塞队列
  • 各种锁的使用,优化
  • 原子类Atomic
  • 并发安全容器
  • 推荐书籍:Java高并发程序设计(浅),Java并发编程实战(深)

Java虚拟机JVM:

  • Java内存区域,OOM
  • 垃圾回收算法,垃圾收集器
  • 类加载机制,类加载器
  • 虚拟机字节码执行引擎(重写重载底层等)
  • Java内存模型JMM
  • 推荐书籍:深入了解Java虚拟机

数据结构与算法:

  • 常见的栈、堆、链表、二叉树、B/B+树、堆(图问的比较少)
  • 常见的排序算法:冒泡、选择、插入、快排、堆排序、归并(后三个核心函数熟练)(希尔、拓扑基本不问),最坏最差情况
  • 推荐书籍:大话数据结构(语言不是问题)
  • 刷题:剑指offer强烈推荐(面试好多原题),左程云算法牛人的书--程序员代码面试指南,有时间可以去刷leetcode的题,hard题略过

web框架推荐学习spring,这个网易阿里美团都问的贼多,话说你今天看了spring源码了吗?

设计模式那么多种,推荐熟悉以下几种就可以:单例、代理模式、工厂(三种)、适配器、装饰器、策略、观察者等

TCP/IP和操作系统楼主不精通,后续还需要深入了解。


最后:

给个建议,遇到问题不懂的知识点多去找找牛逼的博客,看完了自己一定要吸收,写在博客上面,后面面试拿出来吹吹比还是很有用的~~

原文链接:https://www.nowcoder.com/discuss/48445?type=2&order=4&pos=7&page=1

南京渣硕求职路(网易美团头条百度面经)+Java学习路线(拙见)_第2张图片

 

秋招不易,一生一次,大家都一定能拿到自己最想要的大大的offer,一起加油~~!!!~~~!!!

你可能感兴趣的:(架构师)