震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

前言

天之道,损有余而补不足,是故虚胜实,不足胜有余。

京东大佬在三个月之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。故总结两份资料,一份“Java核心知识总结”,一份为“面试题”。对于各位志在投身 Java 开发岗位的小伙伴们来说,本文所提到的知识点绝对是面试中的重点,希望各位可以有效掌握。

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

Java核心知识点总结

从形式上说,面试一般分为 2-3 论技术面试 +1 轮 HR 面试。但是一些公司确实是没有 HR 面试的,直接就是三轮技术面。

技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。只要你回答的不是特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。

也就是说,一轮技术面试 = 基础知识和业务逻辑面试 + 算法面试。首先先说一下基础知识!

主要包括以下几个部分:

IO

 

集合

 

反射的思想及作用

 

代理模式

 

变量

 

深入理解 static 关键字

 

String、StringBuffer 和 StringBuilder

 

Comparator 和 Comparable

 

谈谈强引用、软引用、弱引用、幻象引用

 

Linux 命令相关

 

线程

 

同步容器类

 

Java 锁分类

IO

Java lO是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从Java的BIO开始,一步一步深入学习。

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

Java I/O

  • 传统的 BIO
  • BIO NIO 和 AIO 的区别
  • 什么是流
  • 流的分类
  • 节点流和处理流
  • Java IO 的核心类 File
  • Java IO 流对象
  • 字节流与字符流的转换
  • 新潮的 NIO
  • 缓冲区(Buffer)
  • 通道(Channel)
  • 选择器(Selectors)
  • 选择键(SelectionKey)

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

集合

集合在我们日常开发使用的次数数不胜数。

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

Java集合全家桶

  • 集合框架总览
  • Iterator Iterable ListIterator
  • Map 和 Collection 接口
  • Map 集合体系详解
  • Collection 集合体系详解
  • Set 接口
  • List 接口
  • LinkedList
  • Queue接口
  • Deque 接口

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

图都画的如此精细

反射的思想及作用

反射是一个非常重要的知识点,在学习Spring 框架时,Bean的初始化用到了反射,在破坏单例模式时也用到了反射,在获取标注的注解时也会用到反射.....

  • 反射的基本使用
  • 反射的应用场景
  • 反射的优势及缺陷

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

代理模式

  • 静态代理与动态代理
  • 常见的动态代理实现
  • 动态代理的实际应用

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

变量

变量是我们经常用到的一种,我在刚学Java的时候,也经常被各种变量的概念折磨,当时并没有细抠,但是我在写一篇类似的文章中,想把变量作为一种小标题来简述一下,但是发现,变量这个概念还是比较繁琐的,下面就来认识一下这些变量。

  • 变量汇总
  • 实例变量
  • 全局变量
  • 静态变量
  • 类变量
  • 局部变量
  • 成员变量
  • 常量
  • 验证过程

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

深入理解 static 关键字

  • static 基础知识
  • static 进阶知识
  • 类的构造器是否是 static 的

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

String、StringBuffer 和 StringBuilder

  • String
  • StringBuffer
  • StringBuilder
  • 深入理解 String、StringBuilder、StringBuffer
  • StringBuilder 和 StringBuffer 的扩容问题

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

Comparator 和 Comparable

  • 对 Comparable 的解释
  • 对Comparator 的解释
  • Comparable 和 Comparator 的对比

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

谈谈强引用、软引用、弱引用、幻象引用

  • 垃圾收集器
  • Finalizers
  • 对象的生命周期

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

并发历史

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

线程

  • 什么是多线程
  • 并发和并行的关系
  • 优势和劣势
  • 并发为什么会出现
  • 线程带来的安全性问题
  • 引起线程切换的几种方式
  • 线程安全性
  • 竞态条件和关键区域
  • 并发模型和分布式系统很相似
  • 认识两个状态
  • 并发模型
  • 函数性并行
  • 创建并启动线程
  • 继承 Thread 类来创建线程
  • 使用 Runnable 接口来创建线程
  • 使用 Callable 接口来创建线程
  • 使用线程池来创建线程
  • 休眠
  • 优先级
  • 作出让步
  • 后台线程
  • ThreadFactory
  • 加入一个线程
  • 线程异常捕获

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

同步容器类

同步容器主要包括两类,一种是本来就是线程安全实现的容器,这类容器有Vector、Hashtable、Stack,这类容器的方法上都加了synchronized锁,是线程安全的实现。

还有一类是由 Collections.synchronizedxxx实现的非线程安全的容器,使用Collections.synchronized会把它们封装起来变成线程安全的容器。

  • fail-fast
  • fail-safe
  • 操作系统中的并发工具
  • Java 并发工具包
  • ConcurrentMap
  • BlockingQueue
  • BlockingDeque
  • 同步工具类

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

Java 锁分类

Java中的锁有很多,可以按照不同的功能、种类进行分类,下面是对Java中一些常用锁的分类,包括一些基本的概述。

  • 线程是否需要对资源加锁
  • 悲观锁
  • 乐观说
  • 两种锁的使用场景
  • 乐观锁的实现方式
  • 乐观锁的缺点
  • CAS与synchronized的使用情景
  • 资源已被锁定,线程是否阻塞
  • 自旋锁的提出背景
  • 什么是自旋锁
  • 自旋锁的原理
  • 自旋锁的优缺点
  • 自旋锁的实现
  • 多个线程并发访问资源
  • 锁状态的分类
  • Java 对象头
  • Synchronized锁
  • Monitor
  • 锁的分类及其解释
  • 锁的公平性与非公平性
  • 锁公平性的实现
  • ReentrantLock 基本概述
  • ReentrantLock 如何实现锁公平性
  • 根据锁是否可重入进行区分
  • 可重入锁
  • 不可重入锁
  • 多个线程能够共享同一把锁
  • 独占锁和共享锁

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

面试题

这份面试题你不要只把它当成一个 PDF,你可以把它想象成一个非常美好的东西,它能让你在面试中所向披靡。

Java 基础篇

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

HTTP 篇

  • HTTP 和 HTTPS 的区别
  • HTTP Get 和 Post 区别
  • 什么是无状态协议,HTTP 是无状态协议吗,怎么解决
  • UDP 和 TCP 的区别
  • TCP 三次握手和四次挥手
  • 简述 HTTP1.0/1.1/2.0 的区别
  • 请你说一下 HTTP 常见的请求头
  • 地址栏输入 URL 发生了什么
  • HTTPS 的工作原理

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

MySQL 篇

  • 非关系型数据库和关系型数据库区别,优势比较
  • MySQL 事务四大特性
  • MySQL 常见存储引擎的区别
  • MySQL 基础架构
  • SQL 的执行顺序
  • 什么是临时表,何时删除临时表
  • MySQL 常见索引类型
  • varchar 和 char 的区别和使用场景
  • 什么是 内连接、外连接、交叉连接、笛卡尔积
  • 谈谈 SQL 优化的经验

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

操作系统篇

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

一共将近 80 页,将近 3w + 字,希望可以帮到你们。

算法

上文说到算法,给你们补充一下!

这本书很强了,是左神左程云著作,强烈建议你们刷一下!

震精!京东T4大佬面试整整三个月,才肝了两份java面试笔记

 

结尾

这是一篇很长的文章,然而,再长的文章也道不尽面试笔试的所有经历。找工作是一场持久战,坚持到最后的才是胜利者。

获取方式:由于篇幅过长,无法全部展示,需要这三本文档的朋友,麻烦点赞+关注,加助理VX:mxx2020666,即可免费领取