欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

是人都想进大厂,你凭什么?(内附学习路线)

程序员文章站 2022-09-02 16:07:13
我,一位双非渣本的大三学生,终于踏上了实习之旅,面试了不下三十场,虽然很菜,但是也相应地拿了一些 offer ,例如京东金融、人人车等五六家 offer总结一下就是一个字:难。没学历,技术还凑合,简历能过但是面试就有点困难。这期间收到了 N 个面试官的歧视,有些面试官感觉骨子里瞧不起我们这些双非的人。以下内容仅凭记忆回想起,还有一些必问的东西,总结在这里,希望能帮到大家!开始之前,记得点赞收藏加关注哦 ,需要下载PDF版本和更多知识点、面试题的朋友可以点一点下方链接免费领取链接:点这里!!! 79...

我,一位双非渣本的大三学生,终于踏上了实习之旅,面试了不下三十场,虽然很菜,但是也相应地拿了一些 offer ,例如京东金融、人人车等五六家 offer

总结一下就是一个字:难。

没学历,技术还凑合,简历能过但是面试就有点困难。这期间收到了 N 个面试官的歧视,有些面试官感觉骨子里瞧不起我们这些双非的人。以下内容仅凭记忆回想起,还有一些必问的东西,总结在这里,希望能帮到大家!

开始之前,记得点赞收藏加关注哦 ,需要下载PDF版本和更多知识点、面试题的朋友可以点一点下方链接免费领取

链接:点这里!!! 799215493 暗号:CSDN

是人都想进大厂,你凭什么?(内附学习路线)

算法

这个真的就只能靠刷题,不敢说每家公司对于笔试的重视程度怎么样,反正笔试基本上是必须要过的一关,像字节跳动就对于算法十分钟爱,几乎每一面都会至少两到算法题,所以,要想进字节,至少俩月算法题刷起来。

不要扯什么算法不重要,程序猿搞不定算法就像厨子不会颠勺,司机不会挂挡。

  • 队列
  • 数组
  • 链表
  • 散列表(哈希表)
  • 无序树:树中任意节点的子结点之间没有顺序关系、这种树称为无序树、也称为*树
  • 有序树:树中任意节点的子结点之间有顺序关系、这种树称为有序树
  • 二叉树:每个节点最多含有两个子树的树称为二叉树
  • 完全二叉树
  • 满二叉树
  • 斜树
  • 平衡二叉树
  • 霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优二叉树
  • 红黑树

以及各种遍历方式、按层打印、统计距离等等

树是基础,基本的数据结构还包括图、图的遍历方式

DFS、BFS以及各种优缺点、贪心算法、回溯、以及建模等等等等,只能靠刷题来提升

Java基础

  • 描述一下值传递和引用传递的区别
  • == 和 equals 区别是什么、String 中的 equals 方法是如何重写的、为什么要重写 equals 方法、为什么要重写 hashCode 方法
  • String s1 = new String(“abc”)、String s2 = “abc”、s1 == s2 。语句1在内存中创建了几个对象
  • String 为什么是不可变的、jdk源码中的 String 如何定义的、为什么这么设计
  • 请描述一下 static 关键字和 final 关键字的用法
  • 接口和抽象类的区别是什么
  • 重载和重写的区别
  • 面向对象的三大特性,谈谈你对 xx 的理解
  • 考察的是基本类型的转换,及原码反码补码的运算
  • byte 的取值范围是多少、怎么计算出来的
  • HashMap 相关、HashMap 和 Hashtable 的区别、HashMap 和 HashSet 区别、HashMap 底层实现、HashMap 的长度为什么是 2 的幂次方、HashMap 多线程操作导致死循环问题、HashMap 的线程安全实现有哪些、ConcurrentHashMap 的底层实现
  • Integer 缓存池
  • UTF-8 和 Unicode 的关系
  • 项目为 UTF-8 环境,char c = ‘中’,是否合法
  • Arrays.asList 获得的 List 使用时需要注意什么
  • Collection 和 Collections 区别
  • 你知道 fail-fast 和 fail-safe 吗
  • ArrayList 和 LinkedList 和 Vector 的区别
  • Set 和 List 区别、Set 如何保证元素不重复
  • UTF-8 与 GBK 互转、为什么会乱码
  • 重载和重写的区别
  • 为什么 Java 是解释性语言
  • ConcurrentHashMap 1.7和1.8的区别:整体结构;put()方法、get()方法、resize()方法、size()方法
  • 地址栏输入 URL 发生了什么
  • 组合和聚合的区别
  • 讲一下 CMS 垃圾回收器
  • JDK 动态代理和 GClib 动态代理、JDK 动态代理具体实现原理、CGLib 动态代理、两者对比
  • Threadlocal 内存泄漏问题
  • StringBuilder 安全怎么实现的、详细描述怎么扩容的

MyBatis

  • Mybatis 执行流程
  • Mybatis缓存
  • Mybatis用到的设计模式

Java锁

  • 锁类型
  • 悲观锁 VS 乐观锁

悲观锁代表 Synchronized 关键字

Synchronized 关键字实现方法

乐观锁代表 CAS 操作

CAS 带来的 ABA 问题

CAS 带来的循环时间长开销大问题

CAS 带来的只能保证一个共享变量的原子操作问题

CAS 是如何保证原子操作的

AtomticXXX 实现的原理

volatile 关键字

内存可见性的原因

禁止指令重排序的原因

volatile 关键字不能保证原子操作的原因

关于 volatile 关键字的讨论

happen-before 规则介绍

  • 可重入锁、 可中断锁、公平锁、读写锁

谈谈对 AQS 的理解

可重入锁

可中断锁

公平锁

读写锁

  • 偏向锁/轻量级锁/重量级锁 升级过程
  • 补充

自旋锁

分段锁

轻量级锁就一定比重量级锁快吗

需要更多面试知识点和大厂面试真题的朋友,可以点一点下方链接免费领取

链接:点这里!!! 799215493 暗号:CSDN

是人都想进大厂,你凭什么?(内附学习路线)

Java多线程

  • 线程与进程的区别

线程的状态。
Notify 和 wait 。
Thread.sleep() 和 Thread.yield() 的异同。
死锁的概念。
并发和并行的区别。
线程安全三要素。
如何实现线程安全。
保证线程安全的机制。
谈谈对对多线程的理解。
run 和 Start 方法的区别。

  • 多线程

创建线程的方法。
线程池创建线程。
ThreadPoolExecutor介绍。
BlockingQueue。
ArrayBlockingQueue。
LinkedBlockingQueue。
LinkedBlockingQueue 和 ArrayBlockingQueue 的主要区别。
handler 拒绝策略。
线程池五种状态。
深入理解 ThreadPoolExecutor。
线程池中 ctl 属性的作用是什么。
shutdownNow 和 shutdown 的区别。
线程复用原理。
灵魂拷问:你如何设置你的线程池参数。
CountDownLatch 和 CyclicBarrier 区别。

  • 多线程间通信的几种方式

使用 volatile 关键字。
锁机制。
final 关键词。
ThreadLocal 类。
JUC 包中的相关 lock 类

Jvm内存模型

  • JVM内存模型

程序计数器(记录当前线程)。
Java栈(虚拟机栈)。
本地方法栈。
堆。
方法区。
直接内存。

  • JVM 垃圾回收

垃圾判断标准。
引用计数法。
可达性分析算法(根索法)。

  • 垃圾回收算法

标记清除。
复制算法。
标记整理。
分代回收。
GC 垃圾回收器。

  • 垃圾收集器

Serial 垃圾收集器(单线程、复制算法) (新生代)。
ParNew 垃圾收集器(Serial+多线程) (新生代)。
Parallel Scavenge 收集器(多线程复制算法、高效) (新生代)。
Serial Old 收集器(单线程标记整理算法 ) (老年代)。
Parallel Old 收集器(多线程标记整理算法)(老年代)。
CMS 收集器(多线程标记清除算法) (老年代)。
G1垃圾回收器。

  • 目前 web 应用中的垃圾收集器
  • 吞吐优先与响应优先
  • Minor GC 和 Full GC
  • Full Gc 触发条件
  • 对象内存布局
  • 为什么新生代存在两个 survivor 区
  • 一个对象真正不可用,要经历两次标记过程

MySQL

什么是数据库事务、数据库事务的四个特性是什么。

请分别举例说明幻读和不可重复读、并描述一下它们之间的区别。

MySQL 的默认隔离级别是什么。

为什么要使用索引。

索引这么多优点,为什么不对表中每个字段都创建索引呢。

索引是如何提升查询速度的。

请说出你知道的索引失效的几种情况。

什么是聚簇索引与非聚簇索引

MySQL 索引主要使用的数据结构有哪些。

谈谈 MyISAM 和 InnoDb 实现 BTree 索引方式的区别。

什么是覆盖索引、请举例说明。

谈谈你对最左前缀原则的理解。

MySQL 中 InnoDb 和 MyISAM 有什么区别。

谈谈如何对SQL进行优化。

如何用 explain 分析 SQL 执行效率。

explain 显示的字段具体解释下。

请举出可能形成数据库死锁的原因、如何能避免死锁。

数据库中的乐观锁和悲观锁有什么区别、各适用于什么场景。

请结合你的开发经历,谈谈数据库中的乐观锁和悲观锁是具体如何被应用的。

索引的本质。

MySQL 存储引擎。

MySQL 索引

数据结构,B-Tree 和 B+Tree。

带有顺序访问指针的 B+Tree

索引的物理存储。

与 B-Tree 相比,B+Tree 有什么不同。

为什么 B+Tree 更适合做文件索引。

为什么不用 AVL 树或者红黑树做索引。

两种引擎的索引存储机制。

MyISAM 索引实现。

InnoDB 索引实现。

索引失效条件。

索引类型

哈希索引。

有序数组。

B+ 树索引(InnoDB)。

联合索引。

最左前缀原则。

覆盖索引。

索引下推。

Spring

Spring bean 的生命周期

初始化容器。

Bean 属性注入、更改以及初始化。

Bean 的使用。

关闭容器、销毁 Bean。

Spring如何解决 bean 的循环依赖

容器循环依赖。

setter循环依赖。

构造器循环依赖

Bean 的加载过程

BeanFactory 和 FactoryBean 的区别

Bean 注册与使用

Spring 三级缓存如何解决循环依赖。

Spring事务、原理、传播行为、失效条件。

AOP

IOC

SpringBoot 自动注入原理、stater原理、启动流程。

Spring 事务管理原理。

分布式

Dubbo 支持哪些协议、每种协议的应用场景、优缺点。

Dubbo 超时时间怎样设置。

Dubbo 有些哪些注册中心。

Dubbo 集群的负载均衡有哪些策略。

Dubbo 的主要应用场景。

Dubbo 的核心功能。

Dubbo 的核心组件。

Dubbo 服务注册与发现的流程。

Dubbo 的服务调用流程。

Dubbo 支持哪些协议、每种协议的应用场景、优缺点。

Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么。

Dubbo与 Spring 的关系。

Dubbo 使用的是什么通信框架。

Dubbo 的集群容错方案有哪些。

Dubbo 支持哪些序列化方式。

zookpeer

zookpeer 节点类型。

zookpeer 的作用。

zookpeer 的 watcher 机制。

zookpeer 如何实现分布式锁。

zookpeer 选举算法。

Paxos 算法。

Raft 算法。

ZAB 协议。

什么是分布式事务。

分布式事务解决方案。

了解 seata 吗

一致性哈希?

哈希槽、以及为什么是2^14。

SpringCloud组件?

什么是 Hystrix、它如何实现容错。

什么是 RestTemplate。

什么是 Ribbn。

nacos/Eureka 的对比。

什么是 zuul。

什么是 Getway。

什么是 Config。

什么是微服务

什么是SOA。

SOA和微服务的区别。

为什么要用微服务。

使用微服务存在的问题以及解决办法。

微服务之间如何通信。

微服务如何发现。

微服务挂了、如何解决。

重试机制、幂等性。
限流
熔断、降级

如何复习

Java笼统一点来讲,无非是:JUC、多线程、锁、集合、基础知识、框架、分布式。

一个知识体系一定要一块学,比如 JUC,这个是一个很大的包,系统学习会比较消耗时间,但是收益也是比较不错的,能够吧一些细节的点都串联起来,这样记忆比较更深刻一些

比如 HashMap 可以揉碎了学习,为什么0.75的负载因子,为什么要无符号右移16位?为什么是2的倍数?为什么是8而不是7、9?

工具类的东西很容易被替代,曾今的 SSH 现在的 Spring-Boot、Cloud,也许过几年之后又是新花样,但技术底层是差不多的原理,了解了底层,不仅有助于问题的排查,对于程序猿的整个晋升的道路而言,更是不错的一种思维、学习方式。

忌讳东一榔头,西一棒槌的学习,那样知识为了应付面试,面试过了,很容易就会忘。

一般这样的一个顺序:

  1. 看源码,抠细节
  2. 自己总结一遍,写到自己的MD文件或者博客里
  3. 一周之后,或者几天之后在复习一遍,(艾宾浩斯遗忘曲线)温故而知新

在这里为大家整理了各个知识点模块整理文档(微服务、数据库、mysql、jvm、Redis等都有)和更多大厂面试真题,有需要的朋友可以点一点下方链接免费领取

链接:点这里!!! 799215493 暗号:CSDN

是人都想进大厂,你凭什么?(内附学习路线)
是人都想进大厂,你凭什么?(内附学习路线)

本文地址:https://blog.csdn.net/XingXing_Java/article/details/109607849