阿里腾讯外包Java怎样_阿里Java岗、腾讯后台开发岗面经(拿到AT双Offer)

4.5,前段时间去面了阿里腾讯的暑期实习,腾讯总共三轮技术+一轮HR面目前已结束等结果中,阿里已经两轮技术面,听面试官说之后还有一轮交叉面和HR面,正在准备中......

相比较来说,投腾讯的那个部门处理效率高一些,3.22投的简历,27号打电话过来约一面时间,当时约了3.30号下午,从3.30号开始一天一面,4.2面完四轮,效率属实可以。看面试官问的问题,腾讯的问的多一些难度也大一些,但是了解到腾讯上海那边后台主要是C++架构,个人还是比较喜欢阿里的技术栈。阿里那边是三月中的时候启动的内推,3.29进行一面,4.3二面,问的技术方面的点比较少,但是问了很多项目相关的经历。以下是大概的内容,未能100%还原,主要做个参考:

一面

Q:项目经历相关

A:因为项目之类的都写在简历上,我只是照着念一遍

Q:某项目的整体架构设计

A:挑了比较复杂的说

Q:socket连接建立流程

A:没准备好,大概讲了bind套接字,监听客户端请求,建立连接。详细可百度

Q:socket如何判断断开

A: onclose、heartbeat

Q:TCP,UDP区别

A: 计网基础

Q:TIME_WAIT状态的意义

A:这个是TCP断开连接时客户端发送最后ACK的时候处在的状态,时长2个RTT,主要是确保ACK被服务端收到。如果ACK没有被服务端收到,服务端会重发FIN,那么客户端在TIME_WAIT状态时会收到重发的FIN(至多2个RTT的多时间内),这就是服务端没有收到ACK的情况,如果客户端2个RTT都没有收到重发的FIN,那么就是ACK被服务端收到了,连接关闭。

Q:TCP如何保证消息传输可靠

A:没答全,建议百度

Q:TCP超时重传

A: 用计时器检测有没有收到ACK当然是最简单的,然后还有快重传,由3个重复ACK触发。

Q:Mysql索引种类

A: mysql基础,Hash索引、B+树索引

Q:Hash索引和B+数索引的区别

A: 数据结构的差异,hash索引不适合范围查询,B+树查询的话复杂度和树高有关系,hash是O1

Q:Java .class文件结构

A: 能问这个我是真没想到,还好之前看过的还没完全忘掉。推荐《深入理解JVM虚拟机》,class文件头两个字节是0xCAFEBABE固定的,然后是支持的最低虚拟机版本,然后是常量池,字符串之类的。。。然后是访问标志位,比如是否public是否static,然后是属性和方法的定义,不过当时这部分没看了,用不上。

Q:Redis几种数据结构

A: key-value,list,set,map,zset

Q:Redis适用场景

A: 比较开放

Q:缓存穿透是什么

A: 非法value的查询,导致缓存失效,全走db导致高流量

Q:Redis TTL原理

A: 不懂,底层没看过,随便猜了基本的过期判定逻辑

Q:Redis淘汰策略

A: 一般是LRU最久未使用,效率比较好,也比较符合业务,用linklist的话复杂度是o1,也有最不经常使用、随机去除等策略

Q:Linux查看进程命令、查看端口占用命令

A: ps、netstat

Q:Linux实时统计日志每秒产生的条数,shell

A: 我想用两次tail取补集,面试官说不合理,然后不会

Q:死锁产生原因

A: OS基础

Q:进程线程区别

A: OS基础

Q:协程线程区别

A: 因为我说我有Go语言的基础,协程主要是用户态下实现的并发模型,比线程轻量。

Q:协程的底层原理

A: 不知道,也是没想到,Go语言实战里是有说的,但是没深入研究

Q:Go和Java比较

A: Java是最好的语言

二面

Q:Redis Object的底层实现

A: 不懂

Q:redis主从同步策略

A: 不懂,和持久化有点类似,另外可以使用监听线程

Q:做题:二维递增数组中找一个值

A: 二分变种

Q:做题: 判断链表是否成环

A: 访问标志

Q:搭建微服务的一些要点

A: 扯

这轮应该算是交叉面,感觉挺水的

三面

Q:OAuth流程

A:说来话长,详情百度

Q:JVM垃圾搜集算法

A: 标记-清楚,标记整理,复制

Q:InnoDB和MyISAM的区别

A: 主要是有无外键、有无事务、只支持表锁之类的,前者适合频繁写、后者适合频繁读

Q:TCP三次握手

A: 计网基础

Q:SYN序列号生成?

A: 不懂

Q:滑动窗口

A:做流量控制用的,详情百度

Q:最深的项目经历

A: 扯

Q:另外对着项目问了好久

HR面

主要就是当聊天环节,那边HR问了个问题说 目前拿到了几家暑期实习Offer,我:目前只拿到了腾.....不不不不,目前只投了腾讯......害怕

总结

计网问了好多,这块也不是特别熟,另外都是后台的通用知识。另外感觉项目经历以及在字节这边的实习经历的加分不少,所以面试整体上来看难度不算特别大。

阿里

一面

Q:自我介绍

A: bbb

Q:在字节这边主要做啥工作

A: bbb

Q:介绍下项目经历

A: bbb

Q:对php、go、java作为后端开发语言的看法

A: bbb

Q:HashMap底层

A: Java岗基础

Q:HashMap新节点怎么插入的

A: hashCode()->hash(hashcode和hashcode右移16位亦或)->index(和size - 1与操作)->插入,JDK1.7以前是头插,1.8之后是尾插,头插在rehash的时候会有循环引用的问题。

Q:ConcurrentHashMap和HashMap的区别

A: 这么问的话感觉应该只是想要我答出来线程安全性的问题,但实际上ConcurrentHashMap是细粒度的分段锁,相比HashTable的sychronized锁来说并发度更高一点,CHashMap只锁bucket,hashtable锁整个map

Q:事务ACID

A: 数据库基础

Q:隔离级别

A: 先说了数据库中的并发问题:丢失更新、脏读、不可重复度、幻读。针对这些问题设计不同粒度的锁,实现四种隔离级别。

Q:TCP/IP协议栈,每层主要有哪些协议

A: 计网基础

Q:HTTP基于?

A: TCP/IP

Q:TCP、UDP区别

A: 计网基础

Q:进程线程区别

A: OS基础

Q:多线程应用场景

A: 我主要说了多任务工作,异步处理的场景

Q:线程间的通信方式

A: 我从Java语言层面说,讲了信号量(JUC包下的Semaphore类),Object类中的notify wait方法,共享变量之类的。

二面

二面的是部门leader级别,都没问技术的点,问了项目经历,在字节的主要工作,还问了飞书和钉钉的区别0.0,飞书在线文档和语雀的区别= =。主要还是问了很多在校项目相关的,项目的收益,用户侧体验的提升,项目取得的成果之类的。然后告知之后还有hr面和交叉面。

4.6凌晨,就等着吧

-----------------------------------------------

4.22二更,成功拿下阿里腾讯实习offer,总感觉过了好久好久,实际看下时间也就半个月,春招终于结束了。

腾讯面完HR面之后的第13天,上海腾讯打电话过来说后台开发满员了,问对移动端开发有没有兴趣,我当时拒绝了,说还是希望参与后台相关的,然后当天下午看简历状态,瞬间变灰,本来以为GG了。4.15号腾讯深圳总部TEG事业群打电话过来约面试,应该是在池子中被捞起来了,于是4.16晚腾讯第五面,这次面试总体来说比较满意,少了很多linux和网络相关的很细节的东西,上来直接做题,数组中找出前二大的数(不重复)、n个数中找出和为sum的所有可能,第一题简单过,第二题用DFS也还行,之后面试官再问判断如何判断链表是否有环,答:1.set 2.访问标记 3.快慢指针。数据结构问了红黑树相关的,平衡规则没记,另外问的东西基本上在上面的问题中都出现过,就不说了。4.17下午腾讯第六面,对面应该是主管,还是问了学习经验,项目经验,其余协程,并发之类的也就是像上面问的那样,另外还问了Golang的垃圾回收相关,这个真的没准备,我直接说只对JVM垃圾回收有了解,go中不清楚异同点,然后他让我讲jvm的GC,于是我依次讲了 JVM内存区域以及每块都是放什么、如何判断object是否应该被回收(引用计数、GCRoot)、垃圾回收策略、分代回收以及原因,并没有讲太深,这个环节说了5-10分钟吧,说完面试也差不多结束了。4.18中午HR面,还是平常的问题。总共7面,腾讯告一段落,收到offer call以及正式邮件是4.20日下午,腾讯的效率真的可以,流程中基本都是日更。但是很想吐槽的是5面的时候回答问题经常被面试官打断。

阿里的话,10号左右的交叉面,问的还是对计算机的经历,我从高中开始说起,说到现在,面试官会在某一个点打断细问,整体上说完也就差不多了,十四号的时候HR面完过了两三天一面面试官call过来确认能否实习,我说可以。然后4.22收到了正式offer,阿里给我感觉效率比较慢,基本是周更,但是面试的内容以及技术环境对阿里更有好感一些。

ps: 听腾讯HR小姐姐说今年他们实习生是招的偏多的,而且特殊原因不去实习对秋招也没有太大影响

你可能感兴趣的:(阿里腾讯外包Java怎样)