腾讯Java开发面试凉凉,2021最新Java笔经,不吃透都对不起自己

前言

这期我想写很久了,但是因为时间的原因一直拖到了现在,我以为一两天就写完了,结果从构思到整理资料,再到写出来用了差不多一周的时间吧。

你们也知道作者一直都是创作鬼才来的,所以我肯定不会一本正经的写,我想了好几个切入点,最后决定用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,我甚至还收集配套视频和资料,暖男石锤啊,这期是呕心沥血之作,不要白嫖了。

京东一面凉经

  1. object的方法,7大方法
  2. synchronized方法讲解
  3. synchronized方法实现原理
  4. volatile关键字的原理
  5. 锁的分类
  6. 偏向锁讲解
  7. NoClassDefFoundError和ClassNotFoundException的区别
  8. 追问,ClassNotFoundException是不是只发生在编译时,运行时可不可以
  9. 类加载机 制
  10. redis过期策略及内存淘汰机制
  11. mysql的索引种类4种
  12. Innodb和myIsam的区别
  13. Innodb的索引结构
  14. B+树的优缺点
  15. 海量数据的索引有什么影响
  16. 选择联合索引还是多索引,最左前缀的规则
  17. CAP理论的关系
  18. 见过哪些系统,保证两个牺牲一个的
  19. 一致性Hash
算法题:
给一个正数N,求这个N的所有的因子分解;
N = 12;
Ans = {12},{6,2},{3,4},{3,2,2}
解法:递归

京东二面凉经

  1. 自我介绍+项目
  2. 项目中的异步怎么做的?具体说说
  3. 用户密码的安全性怎么保证的?
  4. mybatis底层怎么实现的?(不会)
  5. tcp中拥塞控制和流量控制有什么区别?
  6. 流量控制具体怎么控制的?
  7. 拥塞控制具体的算法怎么样的?
  8. Java中的锁有用到哪些?
  9. 说说syn、re和cas的区别?
  10. cas具体怎么现实的?
  11. 进程和线程的区别?具体讲下什么情况下是多进程,什么情况下是多线程?
  12. java中的map有哪些?各个简单介绍下
  13. hashmap的底层数据结构是怎么样的?
  14. 有没有map是按key的值排序的?底层怎么现实的?
  15. 类的加载流程?具体每一步做了什么?
  16. Spring Bean 的作用域。
两道算法题
1、有序二维数组找target,找到返回坐标,找不到返回[-1, -1];
2、树的根节点到叶子节点的所有路径和。

失败乃成功之母

以上就是第一次京东面试的全部内容了,一面二面是接着面的,时长2个小时,经历下来,就一个感受:京东的面试太硬核了,就是会一直问到底,看你到底掌握到什么程度,如果掌握的不深刻很容易就被问出来了。二面完之后就让粉丝回家了,PASS的也是很含蓄了。

但是你以为这样就结束了?当然没有!

据我所知京东跳动投递简历是有三个月的锁定时间,所以这次失败了不代表没有下次。
然后就总结了经验并为下次面试作准备并开始了三个月的闭关之旅。

1. 恶补JAVA并发底层的知识,尤其是synchronized,volatile和hashmap的
2. 刷算法题,需要详细复习下数据结构与算法的知识
3. 了解高并发下的问题解决方案与性能调优
4. 阅读是spring框架的源码,提升自己的竞争优势

重整旗鼓再战京东

这次面试官果然上来就直接问:看你6月份也来面过京东但没有通过,你觉得你现在的优势在哪里呢??

回答:因为上次来贵公司面试没有准备充分,同时在之后认识到自己有些技术方面确实明显不足,所以回去经过系统的学习,我觉得这次能够胜任这份工作!

然后面试官看着他笑了笑(应该是欣赏的意思吧),然后第二次面试就正式开始了!
因为第二次面试与第一次相差不大,第二次面试内容通过知识点的分类给大家分享出来。

JVM

  1. 什么样的垃圾才被回收?
  2. 如何利用JFR和JMC监控Java程序?
  3. 解释下Java虚拟机内存模型
  4. JVM垃圾收集机制
  5. 什么样的对象会进入老年代
  6. 讲一下OOM与调优

MySQL

  1. 说说自己对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB的理解?
  2. 数据库索引了解吗?
  3. 为什么索引能提高查询速度?
  4. Mysql如何为表字段添加索引?
  5. 对于大表的常见优化手段说一下?

spring

可能是简历上专门写了阅读过源码,所以这次问spring的比较多

  1. Spring 框架中都用到了哪些设计模式?
  2. Spring事务的实现方式和实现原理
  3. Bean Factory和ApplicationContext有什么区别?
  4. 什么是Spring中的依赖注入?
  5. IOC(依赖注入)有哪些不同类型?
  6. 解释Spring Bean的生命周期?
  7. 有哪些重要的bean生命周期方法?你能重写它们吗?

分布式

  1. 为什么要用 redis缓存?
  2. 为什么要用 redis 而不用 map/guava 做缓存?
  3. redis 和 memcached 的区别?
  4. redis 常见数据结构以及使用场景分析?(String,Hash,List,Set,Sorted Set)
  5. redis 设置过期时间。
  6. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
  7. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)?
  8. redis 事务。
  9. 缓存雪崩和缓存穿透问题解决方案。
  10. 如何解决 Redis 的并发竞争 Key 问题。
  11. 如何保证缓存与数据库双写时的数据一致性?
  12. 什么是消息队列?为什么要用消息队列?

第二次面试总结

第二次去京东面试因为准备的时间比较长,所以面试问题基本都在意料之中,最终也成功拿下了京东的offer,可喜可贺!
在这里插入图片描述

最后

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习,戳这里免费领取

已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

记,PPT,学习视频)免费领取。

[外链图片转存中…(img-BSuFGbeA-1619276777272)]

[外链图片转存中…(img-5zuWYYXm-1619276777275)]

[外链图片转存中…(img-T84iinfr-1619276777276)]

MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第一部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、XML解析 3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、编写第一个jsp文件 4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet: 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 5.7.2、程序实现思路 5.7.3、程序实现 5.8、本章摘要 5.9、开发实战讲解(基于Oracle数据库) 第6章 JSP内置对象 6.1、JSP内置对象概览 6.2、四种属性范围 6.2.1、page属性范围(pageContext范围) 6.2.2、request属性范围 6.2.3、session属性范围 6.2.4、application属性范围 6.2.5、深入研究page属性范围 6.3、request对象 6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解(基于Oracle数据库) 第7章 JavaBean 7.1、JavaBean简介 7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用指令 7.3、JavaBean与表单 7.4、设置属性: 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置具体内容 7.5、取得属性: 7.6、JavaBean的保存范围 7.6.1、page范围的JavaBean 7.6.2、request范围的JavaBean 7.6.3、session范围的JavaBean 7
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、XML解析 3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、编写第一个jsp文件 4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet: 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 5.7.2、程序实现思路 5.7.3、程序实现 5.8、本章摘要 5.9、开发实战讲解(基于Oracle数据库) 第6章 JSP内置对象 6.1、JSP内置对象概览 6.2、四种属性范围 6.2.1、page属性范围(pageContext范围) 6.2.2、request属性范围 6.2.3、session属性范围 6.2.4、application属性范围 6.2.5、深入研究page属性范围 6.3、request对象 6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解(基于Oracle数据库) 第7章 JavaBean 7.1、JavaBean简介 7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用指令 7.3、JavaBean与表单 7.4、设置属性: 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置具体内容 7.5、取得属性: 7.6、JavaBean的保存范围 7.6.1、page范围的JavaBean 7.6.2、request范围的JavaBean 7.6.3、session范围的JavaBean 7.6.4、application范围的JavaBean 7.7、JavaBean的删除 7.8、实例操作:注册验证 7.9、DAO设计模式 7.9.1、DAO设计模式简介 7.9.2、DAO开发 7.9.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值