校招没过,被迫去小公司熬了2年,现在我终于进了腾讯Java岗

其实两年前校招的时候就往腾讯投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里,想着总有一天会再次挑战的。

其实这两年除了工作以外,其余时间基本上都在学习,打磨自己的技术水平。也会坚持上论坛写写东西,也因此结识了很多优秀的小伙伴,从他们身上我学到了特别多东西,把这次面试分享出来,也是希望可以帮助到更多的人。

校招没过,被迫去小公司熬了2年,现在我终于进了腾讯Java岗_第1张图片

一面(远程视频面)

  1. 自我介绍
  2. 项目介绍
  3. Redis介绍
  4. 了解redis源码吗
  5. 了解redis集群吗
  6. Hashmap的原理
  7. hashmap容量为什么是2的幂次
  8. hashset的源码
  9. object类你知道的方法
  10. hashcode和equals
  11. 你重写过hashcode和equals么,要注意什么
  12. 假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
  13. 往set里面put一个学生对象,然后将这个学生对象的学号改了,再put进去,可以放进set么?并讲出为什么
  14. Redis的持久化?有哪些方式,原理是什么?
  15. 讲一下稳定的排序算法和不稳定的排序算法
  16. 讲一下快速排序的思想

我特意整理了一下,有很多问题不是靠几句话能讲清楚,所以整理成一份文档,用来回答这些面试题。很多问题其实答案很简单,但是背后的思考和逻辑不简单。

二面(现场)

  1. List item
  2. 自我介绍
  3. 讲一下数据的acid
  4. 什么是一致性
  5. 什么是隔离性
  6. Mysql的隔离级别
  7. 每个隔离级别是如何解决
  8. Mysql要加上nextkey锁,语句该怎么写
  9. Java的内存模型,垃圾回收
  10. 线程池的参数
  11. 每个参数解释一遍
  12. 然后面试官设置了每个参数,给了是个线程,让描述出完整的线程池执行的流程
  13. Nio和IO有什么区别
  14. Nio和aio的区别
  15. Spring的aop怎么实现
  16. Spring的aop有哪些实现方式
  17. 动态代理的实现方式和区别
  18. Linux了解么
  19. 怎么查看系统负载
  20. Cpu load的参数如果为4,描述一下现在系统处于什么情况
  21. Linux,查找磁盘上最大的文件的命令
  22. Linux,如何查看系统日志文件
  23. 手撕算法:leeetcode原题 22,Generate Parentheses,给定 n
  24. 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。

三面

  1. 说一说Java内存区域。
  2. 什么是分布式系统?
  3. 分布式系统你会考虑哪些方面?
  4. 为什么说TCP/IP协议是不可靠的?
  5. OSI有哪七层模型?TCP/IP是哪四层模型。
  6. 讲一讲TCP协议的三次握手和四次挥手流程。
  7. 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?
  8. 为什么TCP TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?
  9. 什么是DoS、DDoS、DRDoS攻击?如何防御?
  10. 描述一下Java异常层次结构。
  11. 什么是检查异常,不受检查异常,运行时异常?并分别举例说明。
  12. finally块一定会执行吗?
  13. 正常情况下,当在try块或catch块中遇到return语句时,finally语句块在方法返回之前还是之后被执行?
  14. try、catch、finally语句块的执行顺序。
  15. Java虚拟机中,数据类型可以分为哪几类?
  16. 怎么理解栈、堆?堆中存什么?栈中存什么?
  17. 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
  18. 在Java中,什么是是栈的起始点,同时也是程序的起始点?
  19. 为什么不把基本类型放堆中呢?
  20. Java中的参数传递时传值呢?还是传引用?
  21. Java中有没有指针的概念?
  22. Java中,栈的大小通过什么参数来设置?
  23. 一个空Object对象的占多大空间?
  24. 对象引用类型分为哪几类?
  25. 讲一讲垃圾回收算法。
  26. 如何解决内存碎片的问题?

大家在去面试自己中意的公司之前建议大家先去练练手,我首先去了美团和快手,每次都会带上录音笔,这样可以更快的发现自己的错误并改正,校招看重的是基础,社招也重基础但是更多的是考察项目,上面一些题可能有些很简单,但是某些点面试官会深挖。

面试前我也准备了挺久,前面主要是看电子书,学习笔记视频什么的,后面就是刷面试真题这些我也有做一个整理可以分享的。

我的学习笔记

主要包括 Java 基础、Java 容器、Java 并发、Java 虚拟机和 Java IO。另外还附带网络、linux、数据结构与算法、数据库、系统设计、必会工具、面试指南等内容,非常全面。

本次是免费分享!下面展示部分截图,点击文末名片,扫码即可免费获取!

(一). 基础

1、Java 基本功

  • Java 入门(基础概念与常识)
  • Java 语法
  • 基本数据类型
  • 方法(函数)

2、Java 面向对象

  • 类和对象
  • 面向对象三大特征
  • 修饰符
  • 接口和抽象类
  • 其它重要知识点

3、Java 核心技术

  • 集合
  • 异常
  • 多线程
  • 文件与 I\O 流

(二). 并发

1、并发容器

  • JDK 提供的并发容器总结
  • ConcurrentHashMap
  • CopyOnWriteArrayList
  • ConcurrentLinkedQueue
  • BlockingQueue
  • ConcurrentSkipListMap

2、线程池

  • 使用线程池的好处
  • Executor 框架
  • (重要)ThreadPoolExecutor 类简单介绍
  • (重要)ThreadPoolExecutor 使用示例
  • 几种常见的线程池详解
  • ScheduledThreadPoolExecutor 详解
  • 线程池大小确定

3、乐观锁与悲观锁

  • 何谓悲观锁与乐观锁
  • 乐观锁常见的两种实现方式
  • 乐观锁的缺点
  • CAS与synchronized的使用情景

(三). JVM

1、Java内存区域

  • 概述
  • 运行时数据区域
  • HotSpot 虚拟机对象探秘
  • 重点补充内容

2、JVM垃圾回收

  • 揭开 JVM 内存分配与回收的神秘面纱
  • 对象已经死亡?
  • 垃圾收集算法
  • 垃圾收集器

3、JDK 监控和故障处理工具

  • JDK 命令行工具
  • JDK 可视化分析工具

(四)网络、linux、数据结构与算法、数据库、系统设计、必会工具、面试指南

因为篇幅有限,其他内容就不一一展示了,这本进阶笔记总共有512页。对于想要进阶的小伙伴来说应该会很有帮助,希望也能帮助到你。

需要的小伙伴可以点击下面的名片免费领取。

你可能感兴趣的:(程序人生,java,面试,开发语言,java进阶,java面试)