Java校招八股文 - 2020年秋招面试题记录

Java校招八股文 - 2020年秋招记录

@zhang 有朋友要看。没写完,先放上来,慢慢填坑。
作者在面试时遇到这样的情况,明明这个知识点学习过,但因为没有及时加深记忆,导致面试卡壳。比如,CMS收集器的流程,这种知识在实际开发中不可能使用到,非常容易忘记,需要及时加强学习。
本文记录面试常考的知识点,供面试前查漏补缺,加强记忆。点到即止,不对知识进行展开,具体内容可面向搜索引擎学习。
部分内容来源于牛客网,如有侵权可联系作者删除。

目录

  • Java校招八股文 - 2020年秋招记录
  • 小厂考题
    • Java基础知识
      • 数据结构
      • 集合
    • 数据库
      • 基本CURD语句
      • 索引
      • 事务
        • 隔离级别
    • 开源框架
      • Spring
      • SpringMVC
      • Mybatis
      • SpringBoot
      • SpringCloud
    • 设计模式
  • 大厂加试(内卷模式)
    • 算法
    • 数据结构
    • JVM
    • 并发
    • 网络IO
    • Linux命令
    • 中间件
    • 场景题
    • 源码

小厂考题

Java基础知识

数据结构

二叉树前序中序遍历。
哈夫曼树。
手撕快速排序。
Springbuffer和Springbuilder的区别
异常的分类。
包装类的装箱拆箱,享元模式
深克隆与浅克隆
有字节流为什么还要有字符流

集合

特别喜欢考。
HashMap:底层结构,扩容
HashMap初始容量10000,插入10000条数据,会不会扩容
TreeMap的特点

数据库

基本CURD语句

索引

MyISAM与InnoDB 的九个区别
为什么要用B+树
聚簇索引和非聚簇索引
联合索引和全文索引,索引命中问题
回表
索引下推
包含 order by 和 group by 的语句,应该怎么使用索引
各种join的区别,性能之间有什么差异

事务

ACID是什么

隔离级别

四种隔离级别以及会导致的问题

锁分类
什么时候会触发行锁
乐观锁和悲观锁
间隙锁
手撕个死锁
数据库会解决死锁吗

开源框架

Spring

IOC如何实现
AOP如何实现
Java的动态代理
Spring Security的权限实现原理
Bean的生命周期
AOP怎么实现事务
Spring常用注解
Spring事务传播机制
Spring事务隔离级别

SpringMVC

Mybatis

mybatis的缓存
接口怎么跟mybatis的xml产生关联?Java接口能直接调用吗?
mybatis的#和{}

SpringBoot

SpringCloud

对微服务的理解、使用微服务的优点

设计模式

单例模式, 代理模式,工厂模式,观察者模式,策略模式等

大厂加试(内卷模式)

算法

几个经典的算法:
01背包
手撕LRU
手撕堆排序 / TOP K问题
最长公共子序列
最大子序列和
股票买卖问题
问一个整数的二进制表示有几个1
单调栈问题
ipv4和int32互转

数据结构

JDK1.8的Hashmap有什么区别
红黑树
ConcurrentHashMap底层原理

JVM

如何将类的字节码加载进内存:load、link、initializing
什么是类加载器,双亲委派和打破
Java内存模型
方法区:线程共享。存放加载好的类。常量池就在这个区。
PC:程序计数器。每个线程都有自己的PC。
栈:同样是线程独占。存放栈帧。一个方法对应一个栈帧。
堆:线程的共享数据区。面试重灾区。
String常量在哪个区
如何判断一个对象需要回收
三种回收算法:标记清楚,拷贝,标记整理
堆的逻辑分代,哪个代用什么回收算法
有什么垃圾回收器,CMS和G1有什么不同
JDK1,8内存模型的变化
什么叫STW
四种引用类型:强软弱虚
ThreadLocal的原理
常见JVM参数
了解最新的ZGC回收器吗???

并发

进程、线程、纤程、协程的区别
创建线程的三种方式
volatile的两个特性:内存可见性,禁止指令重排
CAS是怎么做的
手撕线程池
sychronized锁升级的过程
可重入锁
实现Runnable和Callable的区别
直接调用run方法不行吗?为什么要调用start方法
synchronized和ReentrantLock的区别
ReentrantLock如何实现公平锁
ThreadLocal会发生内存泄露吗
HashMap多线程下会出现的问题
线程发生死锁怎么查

网络IO

三次握手
四次挥手
socket编程
多路复用
epoll
项目部署在HTTPS环境下,要访问HTTP的资源能访问吗
RPC 和 Rest API
https的加密和解密如何实现
http2.0和http1.0区别
证书怎么签发的
状态码的分类
网络拥塞一定会导致丢包吗
DNS过程中,一个域名只可以映射一个IP吗

Linux命令

中间件

Redis、Mysql、ES的区别?
点赞量用的redis里面的哪种数据结构?
阻塞队列是线程安全的吗?
Redis常用数据结构
Redis中删除过期key的策略
Redis的穿透、击穿,以及对应的策略
如何保证Redis和Mysql中的数据一致性
Redis集群的场景
sorted set底层数据类型
Redis分布式锁流程,如何解决缓存雪崩问题
多路IO复用原理
Redis锁是可重入的吗

场景题

  • 统计字符串出现的次数
  • 一张数据表非常大,几千万上亿数据,然后要将这个表的数据复制到另一张表中怎么实现
  • A生产消息,到消息队列,B消费消息,出现消息积压,如何定位问题
  • 目前有三个子系统(生产、销售、人员),上层有个管理系统,原有的三个子系统有各自的权限控制模型,权限设计上如何增加新的管理系统,并兼容下面的子系统
  • 有100w个url,检测上述url返回的状态码是否是200;讨论具体实现
  • 12306买票,一段从杭州到北京路程,中途可分为多段买票,如何设计数据库表结构
  • 数据库数据海量的时候需要进行分库,怎么设计主键形式(雪花算法)
  • 10亿个数字找最大的500个

源码

看过哪些源码

你可能感兴趣的:(面试)