腾讯Java面经

网友1

作者:xjia
链接:https://www.nowcoder.com/discuss/225392
来源:牛客网

1.jvm基本结构

2.内存分区

3.虚拟机栈异常类型以及复现代码

4.堆内存异常类型以及复现

5.直接内存怎么使用以及jvm对其管理

6.并发容器种类

7.concurrenthashmap数据结构

8.链表什么时候变红黑树以及变回链表

9.mysql数据引擎知道几种

10.innodb和mylsam区别

11.索引失效

12.覆盖索引

13.三次握手中ack的值是什么

14.死锁怎么产生的

15.怎么预防死锁

16.死锁代码demo

17.arraylist和linkedlist的区别

18.arraylist为什么查询快(ps除了随机访问之外还有什么原因)

19.io类型知道几种

20.nio是其中哪一种

 

网友2

 

作者:很哇塞的大叔
链接:https://www.nowcoder.com/discuss/225485
来源:牛客网

1. 讲述下实习做了什么:略。

2. Java final关键字:略。

3. Java反射的特点:运行时任意构造对象,执行方法。

4. 进程间的通信:object的wait、notify;ReentranLock;CountDownLatch;CyclicBarrier。

5. 产生死锁的条件:互斥、不可剥夺、请求和保持、循环等待。

6. 死锁和死循环都会导致程序hung住,怎么判断是死锁还是死循环:一开始说用jps找到对应的pid,然后通过jstack pid,查看进程中线程的状态,然后分析有没有死锁,面试官说ok,还有没有其他 的做法,我说死循环可以中断,死锁无法中断(可能有误),面试官说ok,还有没有通过系统状态来判断的方法,我,cpu。

7. 线程池参数的意义:考察最大线程数、核心线程数、等待队列、拒绝策略等。

8. 口述算法:两个单向链表,找出相交点。

9. 口述算法:变异的10进制转2进制,

1可以转 001

2可以转010,002

3可以转011

4可以转100,020,012

10进制n有多少种转换方法。

面试官介绍了下他们的部门,使用的语言

有什么想问的。

感觉腾讯很喜欢问dp啊,两轮面试遇到了三个dp算法。

 

网友3

作者:KL3
链接:https://www.nowcoder.com/discuss/219646?type=2&order=0&pos=4&page=1
来源:牛客网

操作系统 内存部分(虚拟地址怎么找到物理地址)
swap分区
为什么用虚拟地址
linux怎么查看内存情况
进程的堆栈里面放的什么

快排  归并排序
口述算法 最长回文子串
三次握手
syn攻击
多态
hashmap  hashtable
线程状态(blocked   waiting  timed_waiting)
jvm内存分配
==  equals  hashcode
数据库隔离级别
脏读  幻读

 

二面面经:时长22分钟

感觉面试官不是搞Java,很多问题都是由我自己讲,都是谈理解。

说说对并发的理解

synchronized 和  lock

说说juc你认识的工具类

爬楼梯问题

mysql连接对象问题
长事务
mvcc
change buffer
项目

你是本科生还是研究生

你愿意来成都吗

实习干些什么

 

三面

8月13日 10:00  34分钟

说下你用到哪些框架

说说对spring mvc 和spring cloud的理解

你是实践过dubbo的序列化框架改用protobuf吗

说一下tcp 和 udp

tcp的time wait 和 close wait

说一下拥塞控制

怎么控制滑动窗口的大小

(还有个滑动窗口的题,有些记不清,当时也没答上了,就不说了,怕误导大家)

如果服务器端已进入close状态,客户端还处于time wait 状态,占用着端口,怎么解决

查看tcp连接数的命令

linux你知道哪些命令

linux 中 ‘|’的作用是什么?

 

当前系统的性能遇到了瓶颈,如何去定位问题

内存泄露怎么定位

说说你调优jvm的方向

说说jvm gc的特点,你的理解

 

你在校做的项目给你了什么收获

项目的大小,使用人数之类的。。。

网友4

作者:熬夜是万恶之源
链接:https://www.nowcoder.com/discuss/224096?type=2&order=0&pos=6&page=1
来源:牛客网

一面

  • MySQL索引
  • MySQL Innodb引擎的事务是怎么样的?(ACID)MVCC?锁?
  • MySQL主从复制原理
  • 主键和唯一索引对的区别
  • MySQL有同步复制吗?半同步呢?(第一次被问到,学到了)
  • MyISAM存储引擎下表的数据和索引是以什么样的方式存储的?
  • 联合索引什么时候不会用到?
  • b+树讲一下
  • 100个节点的二叉搜索树怎么找到他第80大的节点
  • Redis如果主节点凉了怎么办?注意哨兵和集群模式不一样
  • Redis分片原理,hash是用的哪一种算法?
  • Redis一个客户端可以访问分片的其他节点吗
  • Redis的主从复制原理
  • 如果Redis主从复制中途断了怎么办?怎么解决的?如果已经断了很久了呢?中途断了是通过主节点的内存上的缓冲区重新拿数据,大小是1M,如果数据超过,则不能恢复
  • Spring MVC的流程是怎么样的?
  • 前端相关:React父组件怎么给子组件传参的?React和JQuery的区别?箭头函数是什么?
  • linux用什么命令看负载?我看一个某一个端口是否被占用用什么命令?linux什么命令建立分级目录?
  • 讲一下tcp三次握手
  • 讲一下https握手
  • 手撕代码:给定一个字符串,查找其最长回文字符串

二面

  • 实习做的东西?
  • 你觉得作为开发有什么办法可以帮助运维?
  • 讲一下Java和PHP的区别
  • 如果有一个并发量很大的读请求请求我们的数据库,你觉得应该怎样才能压榨数据库的性能?
  • 如果有一个并发量很大的写请求请求我们的数据库,你觉得应该怎样压榨数据库?
  • 已知A节点 ping B节点的时长为30ms,请问A节点 wget B节点的资源,资源默认一个包就能发送,需要多长时间?
  • 你知道怎么调试断点吗?请问如果一个服务器已经在运行了,我们怎么像在开发环境一样给它打断点。
  • 怎么去监控我们业务信息,比如每小时成交多少成交量,不能去侵入改业务代码,给一个思路?
  • 如果要去查找一个linux服务器的负载,你怎么去查。
  • 你说了数据库连接池,假如我们要比较不用数据库连接池和用数据库连接池,你怎么去查找他们的响应时间区别?不是从业务层面,从更基础的数据库层面去分析
  • 如果一个人告诉你,你的这个web界面响应很慢,你的排查是怎么样的?
  • 我们业务有很多种对数据库的查询,如果要统计每一种查询分别需要多少时间?你会怎么做?如果不一个一个拼接SQL语句呢(SQL语句太多了),你会怎么做?
  • 如果你有一个跳板机,你怎么样去验证它是正常工作的?讲一下你的思路?
  • 假如A节点去调用B节点的服务,而A节点觉得是B节点处理太慢,而B节点说他们处理速度没有问题,你应该怎么去排查问题所在?不能改代码,在现有的基础上去排查?
  • 你觉得运维开发可以把什么做成自动化的来帮助开发?
  • 我们知道C的代码编译很麻烦,很多时候我们的开发效率会受到影响,而我们很多业务是C编写的,如果我们用docker发布业务,如果是你,你觉得怎么样才能够缓解现在这个局面?
  • 你知道ELK这一种日志的处理方式,你可以告诉我,我们可以从哪一些维度去查找我们想要的信息吗?

网友5

作者:很哇塞的大叔
链接:https://www.nowcoder.com/discuss/223656?type=2&order=0&pos=7&page=1
来源:牛客网

1.自我介绍 实习经历

2.用的什么语言?Java?还有其他熟悉的语言吗?C ?

3.C 指针指向的是物理地址吗?

4.堆和栈的区别

5.hashMap和hashTable的区别

5.不用加减乘除求一个数的7倍

6.A B两个文件 各有50亿个url,每个url 64K,怎么找出相同的url

7.10亿个数求topk

8.有两根香,香不均匀 每根完全烧完要一小时,求怎么判断15分钟

9.十层楼,每层楼有一颗钻石,大小不一,电梯从下往上,每层楼可以打开电梯门查看,但是只能拿走一颗,且不能交换,请问有什么方法可以拿到最大的

10.两个鸡蛋,100层楼,判断出鸡蛋会碎的临界层

有什么想问的吗

====================================

emm 好吧,我刚收到腾讯的笔试,可能之前面试凉了

网友6

 

作者:星辰007007
链接:https://www.nowcoder.com/discuss/222766?type=2&order=0&pos=10&page=1
来源:牛客网

先介绍下自己,然后介绍项目。

TCP和UDP的优缺点,什么情况下使用?

如何确定网络的稳定性?
mysql引擎,注入
TCP四次挥手,如何避免进入TimeWait
TCP三次握手,为什么不是两次?
http报文组成(QAQ)
多态的隐藏和覆盖
继承和组合
Linux下开发经验

客户端一次发送两个请求,如何区别哪一个(要考虑到包不完整的情况)?

堆排序
IO多路复用

 

 

 

网友7

作者:菜的找不到实习
链接:https://www.nowcoder.com/discuss/223499?type=2&order=0&pos=11&page=1
来源:牛客网

一面

  1. 讲讲java容器(吹了半天HashMap和ConcurrentHashMap)。
  2. 讲讲jvm的内存管理机制(对比着c和java讲了下,主要详细说了下对象的创建过程,说了下如何判别对象该被回收了(可达性分析算法)、垃圾回收算法、垃圾收集器)。
  3. 项目中为什么要用redis来缓存赞和踩?数据不一致怎么办?如何保证数据的持久性?
  4. python会吗?c语言会吗?前端会吗?ios会吗?(会一点...)
  5. 来写个题吧,给一个日志文件,里面记录的是当天的访问的ip、时间等等,我希望求出每天的访问量。(我感觉应该是写shell,但是我不会,面试官说可以用java,但是我忘记Java io的api了。。。)
  6. 懂测试吗?大概讲一下,测试一支笔需要怎么测试?
  7. 你还有什么要问我的?

二面

  1. jvm是吧,讲讲内存分配。我吹了一大堆的对象创建,面试官说你这只说了对象的创建,那其他变量呢?然后大概写了个这样的程序,问我每个变量存在哪?

1

2

3

4

5

6

7

8

public class A{

      int a;

      B b1 = new B();

      void fun(){

          int c;

          B b2;

    }

}

  1. 讲一下你的项目吧,画一下架构。你使用redis做缓存,那现在假设你是一个测试,你能提出多少redis可能存在的坑?(留下了不熟悉redis的泪水)
  2. 重载和重写。为什么要有重载,我随便命名一个别的函数名不行吗?谈谈你是怎么理解的。
  3. 算法题:给一个数组,找出出现次数大于数组长度一半的那个数。(我直接无脑用哈希表,面试官皱着眉头说能优化不,我想了半天没想出来)。
  4. 让我写测试用例来测试算法题,并根据所写的测试用例找出你写的程序有哪些bug。。(我当成leetcode来做了,就各种判断都没有进行)。

网友8

作者:金鹏201903071839583
链接:https://www.nowcoder.com/discuss/222035?type=2&order=0&pos=14&page=1
来源:牛客网

从九点面到十点二十
1. 计算机网络:url输入回车经历了什么(本来以为说的很细了,面试官直接来了个一层一层的说,每一层都干了什么),后来问tcp,路由器,交换机,反正计算机网络一整套给我弄懵逼了。
2. 数据结构:我实话实说不会图,就说了快排和归并(可能看我太菜就不问了)
3. (面试官可能感觉我太菜就问我对什么最熟悉)我叔jvm,gc 后来讲了一下gc的各种算法的优缺点,标记整理为什么适合老年代,年轻带适合什么,年轻带垃圾回收的过程,jvm调优参数。
4.接下来挣了一套数据库的ACID,事务隔离级别,每个都细致的解释一下。
5.一致性哈希算法,不让我讲理论,直接讲什么场景下能用到,为什么用!
6.问我还会什么,Java cas syn lock锁底层实现讲了一下
7你还有什么想问我的么���
基本感觉基础很重要,特别重要,写的项目一个没问!!感觉是凉了呜呜呜!总结一下纪念我秋招的第一面!!!

 

作者:金水妹妹保佑我
链接:https://www.nowcoder.com/discuss/201562
来源:牛客网

腾讯是我实习投的最早的公司,提前批开始之后的第二周就投递了,但是先是被锁简历一周,然后快要被释放了,才被约了3天后面试,这个时候都3月22号了,所以我的腾讯提前批是从22号开始的。废话不多说直接上面经。

提前批 3.22号一面(PCG):
1、自我介绍
2、http协议状态码301和302的区别
3、time wait状态是什么意思
4、concurrenthashmap(说的是1.7,1.8发生了变化也要看一下)
5、JVM的垃圾回收
6、Mysql的优化:怎么优化sql、用过mysql的性能分析工具吗
7、反转数组
8、jdbc怎么使用的,什么是sql注入
9、一致哈希
10、抽象类和接口的区别
就2、3没答上,但是第3个问题我是没听清楚面试官说的啥,确实没听懂time wait这两词。
面完直接灰了。

正式批 4.15 一面(CDG,电面,突击面试):
面试官先和我说,我这边是cpp的技术栈,你确定你还要面下去吗?
1、TCP的四次挥手
2、Java中类变量和成员变量,类方法和成员方法
3、Java中的线程安全问题
4、select/epoll的区别
5、Java中变量存储的位置
6、mysql的查询优化,用explain查询是否用到了索引
7、算法题:
从100W个数中选出第1 3 5 7 9大的数字?选出第50W大的数字?
范围1~300的100W个数,51排在第几?
给你一个单词表,然后给你一个单词,判断是不是合法?(trie树或者hashset)
(当中穿插了一些cpp的问题,我是实在不会就没写了。这面的感觉很好,面试官直接和我说我这边是OK的。这一轮的面试官貌似感冒了,喉咙有点发炎,真是辛苦面试官了。)

二面(约了时间的视频面,90分钟):
这一面的面试官感觉是老大,比较年长的那种,问问题也是从浅入深直到不会为止。
1、自我介绍一下
2、主要语言是Java是吧?对c++了解吗?c++和Java的区别你说说。
3、Java的内存模型。每个区域是用***嘛的?
4、Java的垃圾回收是怎样的?为什么新生代中内存的比例是8:1:1?为什么会有新生代老年代?新生代怎么变到老年代?你说的垃圾回收算法基于内存整理的是怎么整理的?你觉得可以怎么优化?
5、算法:
给你1,3,5,7,...,n不同面值的硬币(每种硬币数量不限),求组成面值M的最少的硬币个数。(这个算法问题其实挺迷的,题目是这样。我说应该是贪心,但是面试官说没这么简单,你再想想。)
6、Linux常用的指令。(这里我真的不会,用的好少,被说你这是完全不会linux。大概这就是非科班基础的差距吧)
7、MySQL根据成绩表查成绩。
8、MySQL的锁机制。
9、MVCC机制的实现原理。
10、出题考查对索引失效的理解。(最左匹配原则)
面试官评价:对数据库方面掌握还可以,,你在你感兴趣的方面的深度是有了,学习态度也没问题,但是要注意学习的广度。
这里又有了小插曲,我感觉春招开始就很不顺,插曲不断。面完二面以后,面试官说我这边还有其他面试,大概一周之内会给你结果的。然后刚好在我面携程的那一天4.23号刚好一周,状态变成HR面了。本以为差不多了,结果两天后,经历了从HR面退回到初试,然后又跳到GM面的过山车式面试状态。

三面(约了时间的视频面交叉面,30分钟):
今天的状态是真的差,下午赶着出门,上午面的。
1、自我介绍。
2、有实习过吗?有做过什么项目?(面试官对我的CRUD完全不敢兴趣,这也正常)
3、数据库的隔离级别?(我真是脑子抽,这个问题都漏了一个,状态是真的差)
4、数据库的引擎?innodb和myisam的区别?
5、什么是聚簇索引和非聚簇索引?
6、数据库怎么加锁的?共享锁怎么加的?
7、select、epoll的区别?
8、给你一整块内存,其中每一页的大小是1K,你怎么加锁?
面的感觉很不好,果然一小时后变灰。

本来以为我的腾讯实习之旅到此结束了,没想到。我在6月底被捞起来了。
一面(电话面,HR约的时间6.19):
1、自我介绍
2、数据库的隔离级别?
3、数据库的锁的机制?
4、MVCC在四种隔离级别下都有吗?undo日志什么时候会被删除?
5、一个事务中读取了A数据还未提交,另外一个事务处理了A数据,那么此时第一个事务读A会改变吗?
6、说一说HashMap、volatile、Java中的NIO。
7、进程和线程的区别。
8、Redis的跳表。
9、什么是一致性哈希?如果其中有服务器挂了,数据会丢失吗?
10、什么是分布式锁?分布式锁如何实现?
11、Redis一主多从的实现?如果主服务器挂了怎么办?能锁住吗?
12、事务的二段提交?
面试官:有后续会联系你。

二面(突击电话面6.21):
1、tcp的三次握手和四次挥手。
2、tcp和udp的区别。
3、二叉树的后续遍历。讲怎么实现就好了。
4、从篮子里拿出100个苹果,每次只能拿1个或者2个,有多少种拿法?
5、01背包问题。
6、Linux的常见命令。
面试官:基础还行,就是Linux不行。(再次中刀。。。)

HR面(6.25)
常规问题。

历经磨难,从3月初投简历,到6月底才上岸,一共面了7次,真是漫长又煎熬。期间,就拿了广联达和哈啰的offer。但是最终还是坚持了下来,也感谢我的女票带给我的好运和一直以来的鼓励和陪伴,还有小伙伴们的帮助。牛客网的面经和大佬们的总结对我找实习帮助真的很大,挺感激的。
虽然还没找到满意的工作,写下这篇面经算是攒攒人品吧。希望能帮助到以后的各位,也算是回馈牛客对我的帮助了。最后的最后,大家秋招一起加油吧,祝大家都能收获理想的offer。共勉!

你可能感兴趣的:(腾讯Java面经)