Java八股文:核心知识点梳理(java八股文是啥)
wxin55 2025-05-11 02:02 2 浏览 0 评论
一、Java基础
1. Java基本数据类型
- 8种基本类型:
- 整型:byte(1), short(2), int(4), long(8)
- 浮点型:float(4), double(8)
- 字符型:char(2)
- 布尔型:boolean(1)
- 包装类:Byte, Short, Integer, Long, Float, Double, Character, Boolean
- 自动装箱与拆箱
2. String相关
- String不可变性
- String, StringBuilder, StringBuffer区别
- String:不可变,线程安全
- StringBuilder:可变,非线程安全
- StringBuffer:可变,线程安全(synchronized)
- 字符串常量池
- intern()方法作用
3. 面向对象特性
- 封装、继承、多态
- 抽象类与接口区别
- 抽象类:可以有构造方法,可以有普通成员变量
- 接口:JDK8后可以有默认方法,JDK9可以有私有方法
- 重载(Overload)与重写(Override)区别
二、Java集合框架
1. Collection体系
- List:有序可重复
- ArrayList:数组实现,查询快,增删慢
- LinkedList:链表实现,增删快,查询慢
- Vector:线程安全版ArrayList
- Set:无序不可重复
- HashSet:基于HashMap
- LinkedHashSet:保持插入顺序
- TreeSet:红黑树实现,有序
- Queue
- PriorityQueue:优先队列
- ArrayDeque:双端队列
2. Map体系
- HashMap:数组+链表+红黑树(JDK8)
- 扩容机制:默认16,负载因子0.75,2倍扩容
- 解决哈希冲突:拉链法
- 线程不安全
- LinkedHashMap:保持插入/访问顺序
- TreeMap:红黑树实现,按键排序
- ConcurrentHashMap:线程安全
- JDK7:分段锁
- JDK8:CAS+synchronized
三、JVM相关
1. 内存区域
- 程序计数器
- 虚拟机栈(Stack)
- 本地方法栈
- 堆(Heap)
- 方法区(元空间)
2. 垃圾回收
- 判断对象可回收:
- 引用计数法(循环引用问题)
- 可达性分析法(GC Roots)
- 垃圾回收算法:
- 标记-清除
- 标记-整理
- 复制算法
- 分代收集
- 垃圾收集器:
- Serial/Serial Old
- ParNew
- Parallel Scavenge/Parallel Old
- CMS
- G1
- ZGC
3. 类加载机制
- 加载过程:
- 加载
- 验证
- 准备
- 解析
- 初始化
- 类加载器:
- Bootstrap ClassLoader
- Extension ClassLoader
- Application ClassLoader
- 自定义ClassLoader
- 双亲委派模型
四、多线程与并发
1. 线程基础
- 创建线程方式:
- 继承Thread类
- 实现Runnable接口
- 实现Callable接口
- 线程状态:
- NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED
2. 线程安全
- synchronized
- 修饰实例方法
- 修饰静态方法
- 同步代码块
- volatile
- 可见性
- 禁止指令重排序
- CAS与原子类
- ThreadLocal
3. JUC包
- Lock体系:ReentrantLock, ReadWriteLock
- 并发集合:ConcurrentHashMap, CopyOnWriteArrayList
- 线程池:
- ThreadPoolExecutor参数
- 执行流程
- 拒绝策略
- 同步工具:CountDownLatch, CyclicBarrier, Semaphore
五、IO与NIO
1. BIO/NIO/AIO
- BIO:同步阻塞
- NIO:同步非阻塞(Channel, Buffer, Selector)
- AIO:异步非阻塞
2. 网络编程
- Socket编程
- NIO实现多路复用
- Netty框架特点
六、设计模式
1. 创建型模式
- 单例模式
- 工厂模式
- 建造者模式
2. 结构型模式
- 适配器模式
- 代理模式
- 装饰器模式
3. 行为型模式
- 观察者模式
- 策略模式
- 模板方法模式
七、Spring框架
1. Spring核心
- IOC/DI原理
- AOP实现原理
- Bean生命周期
- 事务管理
2. Spring MVC
- 请求处理流程
- 常用注解
3. Spring Boot
- 自动配置原理
- 启动流程
- 常用starter
八、数据库与ORM
1. MySQL
- 索引原理(B+树)
- 事务特性(ACID)
- 隔离级别
- 锁机制
2. MyBatis
- #{}与${}区别
- 一级缓存与二级缓存
- 动态SQL
九、分布式与微服务
1. 分布式基础
- CAP理论
- BASE理论
- 一致性算法:Paxos, Raft
2. 微服务组件
- 服务注册发现:Eureka, Nacos
- 服务调用:Feign, Ribbon
- 熔断限流:Hystrix, Sentinel
- 网关:Zuul, Gateway
- 配置中心:Config, Nacos
3. 分布式事务
- 2PC
- 3PC
- TCC
- 本地消息表
- Seata框架
十、消息队列
1. Kafka
- 架构设计
- 消息存储
- 高可用机制
2. RabbitMQ
- 交换机类型
- 消息确认机制
3. RocketMQ
- 消息存储
- 事务消息
十一、Redis
1. 数据类型
- String, Hash, List, Set, ZSet
- 特殊数据结构:BitMap, HyperLogLog
2. 持久化
- RDB
- AOF
3. 高可用
- 主从复制
- 哨兵模式
- Cluster集群
4. 应用场景
- 缓存
- 分布式锁
- 限流
十二、性能优化
1. JVM调优
- 内存分配
- GC日志分析
- 常用参数
2. SQL优化
- 执行计划
- 索引优化
- 分库分表
3. 代码优化
- 减少对象创建
- 合理使用集合
- 并发控制
以上是Java面试中常见的技术点大概梳理,实际面试中可能会根据岗位需求有所侧重。
需要这份Java面试题(2025版)文档的小伙伴,观住+留“求资料”免费领取!
相关推荐
- Java中List 和 Map、Set 的区别(list和set和map)
-
hello,大家好,我是霖仔java集合的大家了解,我再给大家说一下他们的区别,希望能够帮助到大家结构特点:List和Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合;Lis...
- Java 集合框架全面解析:选对数据结构,提升开发效率
-
上一章我们详细介绍了各种常用的数据结构情况(参考:数据结构复杂度全览:如何选择最优结构?),本文结合关键数据结构,从列表(List)、队列(Queue)、集合(Set)、映射(Map)四个维度,深入解...
- LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)
-
数组和链表是程序中常用的两种数据结构,也是面试中常考的面试题之一。然而对于很多人来说,只是模糊的记得二者的区别,可能还记得不一定对,并且每次到了面试的时候,都得把这些的概念拿出来背一遍才行,未免有些麻...
- LinkedList 底层源码深度解析(linkedlist底层数据结构)
-
目录1.引言2.LinkedList概述2.1类继承体系图2.2各个接口作用3.与ArrayList的对比4.底层数据结构5.核心方法源码解析5.1add()方法5.2a...
- List的用法和实例详解——Java进阶知识讲义系列(四)
-
序欢迎来到全网最完整的Java进阶知识系列教程!!!每天定时更新!!!本期是Java进阶知识系列的第四讲,将分享Java常用的数据容器——集合类。集合类也分很多类型,比如:List、Set、Map、Q...
- Rust高效集合操作(rust基本操作)
-
集合的分类Rust的集合类型主要分布在标准库的std::collections模块中,同时也包括语言内置的数组和字符串类型序列容器序列容器维护元素的顺序,适合需要按索引访问或顺序遍历的场景向量(...
- Java八股文:核心知识点梳理(java八股文是啥)
-
一、Java基础1.Java基本数据类型8种基本类型:整型:byte(1),short(2),int(4),long(8)浮点型:float(4),double(8)字符型:char(2)布...
- 为什么我不推荐研发人员使用 LinkedList?
-
在Java集合框架中,LinkedList作为List的实现之一,经常被认为是ArrayList的替代方案。然而,在大多数实际场景下,我们并不推荐使用LinkedList,原因主要集中...
- ArrayList 、 LinkedList、Vector的区别
-
ArrayList、LinkedList、Vector的区别如下:ArrayListLinkedListVector结构动态数组双向链表动态数组是否线程安全否否是效率遍历查找快,插入删除慢插入删除...
- (2020 )Java最新面试笔试题答案解析(一)
-
Java中的集中基本数据类型是什么?各占用多少字节?【数值型】—(整数类型)byte(1字节)short(2字节)int(4字节)long(8字节)拓展:Java中的数据类型除了上面的基本...
- 超简单五步实现Linux虚拟机CentOS 7系统Root密码忘记重置
-
环境:CentOS7.5重置root密码:1.CentOS7虚拟机开机,将鼠标光标移动至虚拟机内。2.在虚拟机中使用键盘上↑和↓键将选择行设置为第一行(背景高亮即为选中),按下键盘上的e,进...
- 吊轨门和推拉门哪个好?北京今朝区别介绍看完不入坑
-
厨房到底使用什么门好?相信这是大多数业主都比较抓狂的事情,其实在装修中材料的选择最终还是要依据空间而定,那么吊轨门和推拉门哪个好呢?下面就跟随北京装修网一起来看看吧!吊轨门与推拉门介绍吊轨门吊轨门的特...
- 〖省钱宝典〗不花冤枉钱,少走弯路!居家中推拉门如何设计?
-
想要空间最大程度的显大?想要充足的光线?又想拥有合理的区域划分?那么推拉门是你绝对不能错过的好选择。推拉门的设计轻盈简洁,绝对是室内每个空间的福音。它不仅可以最大化地节省空间,方便了居室的功能划分和利...
- 吊趟门与推拉门有什么区别?(吊趟门贵还是推拉门贵)
-
吊趟门与推拉门的区别很多人在购买的时候并不清楚,有些客人甚至根本分不清吊趟门和推拉门,今天小编就给大家讲讲吊趟门与推拉门的相关内容,看看吊趟门与推拉门的区别有哪些?1、推拉门采用以门扇下滑轮为主支撑点...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Java中List 和 Map、Set 的区别(list和set和map)
- Java 集合框架全面解析:选对数据结构,提升开发效率
- LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)
- LinkedList 底层源码深度解析(linkedlist底层数据结构)
- List的用法和实例详解——Java进阶知识讲义系列(四)
- Rust高效集合操作(rust基本操作)
- Java八股文:核心知识点梳理(java八股文是啥)
- 面试题:ArrayList和LinkedList有什么区别?
- 为什么我不推荐研发人员使用 LinkedList?
- ArrayList 、 LinkedList、Vector的区别
- 标签列表
-
- hive行转列函数 (63)
- sourcemap文件是什么 (54)
- display none 隐藏后怎么显示 (56)
- 共享锁和排他锁的区别 (51)
- httpservletrequest 获取参数 (64)
- jstl包 (64)
- qsharedmemory (50)
- watch computed (53)
- java中switch (68)
- date.now (55)
- git-bash (56)
- 盒子垂直居中 (68)
- npm是什么命令 (62)
- python中+=代表什么 (70)
- fsimage (51)
- nginx break (61)
- mysql分区表的优缺点 (53)
- centos7切换到图形界面 (55)
- 前端深拷贝 (62)
- kmp模式匹配算法 (57)
- jsjson字符串转json对象 (53)
- jdbc connection (61)
- javascript字符串转换为数字 (54)
- mybatis 使用 (73)
- 安装mysql数据库 (55)