Java知识结构大纲
2022-03-19 10:42:53 0 举报
AI智能生成
登录查看完整内容
Java知识结构大纲
作者其他创作
大纲/内容
计算机网络
计算机组成结构
数据结构
操作系统
计算机基础
IDEA
Eclipse
VSCode
WebStorm
PostMan
APIFox
APIPost
HTTP工具
Navicat
XShell
XFtp
SSH
jmeter
jconsole
arthas
压测工具
fiddler
Wireshark
抓包工具
开发工具
ssh
https
登录方式
提交
更新
分支
git
svn
github
gitlab
gitee
腾讯 coding
阿里巴巴 codeup
华为云 代码仓库
代码管理平台
github desktop
webstorm
git工具
代码管理
Coding
TAPD
项目管理
腾讯文档
飞书
语雀
WPS
石墨文档
为知笔记
知识管理
百度网盘
阿里网盘
网盘类
Master Go
蓝湖
阿里巴巴IConfont
设计类
团队协作
番茄工作法
工作四象限
工作方式
工具
Windows
Linux
Docker
安装与配置环境
sun
oracle bone inscriptions(天谕)甲骨文
oracle
Java历史
概念以及安装
+
-
*
/
%
算术运算符
>
<
>=
<=
==
!=
关系运算符
||
&&
!
逻辑运算符
后++
前++
++
--
自增和自减
== 和 =
+=
-=
*=
/=
赋值运算符
(条件)?true :false
条件运算符(三元表达式)
& 和 &&
进制的由来
java中的进制
进制的基本转化
子主题
位运算
位运算符
\
\\b
\\t
转义运算符
运算符
private
protected
public
默认
访问修饰符
abstract(抽象)
static(静态)
类、方法、成员、局部
修饰符
int
double
float
short
long
char
byte
boolean
八大基本数据类型
while
switch
for
do/while
break
continue
return
结束语句
循环
if/else if/else
选择语句
一维数组
多维数组
数组
单行注释
多行注释
注释
静态方法
重载和重写
方法
常量池
StringBuilder
StringBuffer
String
==和equest hashCode
Object
基础入门
继承
封装
多态
面向对象三大特性
类
接口
对象
抽象
面向对象
RuntimeException
Exception
Throws
StackOverflowError
常见异常出现的原因
异常
o(1)
o(n)
o(log n)
时间复杂度
线性查找法
二分查找法
查找算法
直接插入排序
希尔排序
插入排序
简单选择排序
堆排序
选择排序
冒泡排序
快速排序
交换排序
归并排序
基数排序
排序算法
算法
size
内部维护
默认容量为10
如果超出将扩容1.5倍
扩容缩容
System.copyArray
复制
多线程情况出现问题
如何解决(使用Iterator)
在遍历的时候,同时新增或者删除,会报错
modCount作用防止数据乱
面试题
相同点:都是基于数组,默认容量10
不同点:1. ArrayList 线程不安全,Vector线程安全2. 扩容的时候原来容量 ArrayList 是1.5 Vector是2倍3.Vector可以设置capacityIncrement扩容量
ArrayLis与Vector区别
ArrayList
代码示例
LinkedList底层是双向链表,可以保证key的有序性HashMap底层是单向链表,不能保证key的有序性
底层原理
数组合链表区别
Linked为什么需要一个变量下头节点(后期方便遍历)
达到查询复杂度 o(log n)
LinkedList折半查找法原理
LinkedList
List
因为HashMap遍历key也是无序的
HashSet为什么是无序的
这种设计缺点:一个对象占用了16个字节
HashSet<String> set = new HashSet<>();set.put(\"test\");set.put(\"test2\");底层是一个HashMap,key是存放的值,value是一个空的Object对象
HashSet底层
HashSet
Set
数组 + 链表 + 红黑树
HashMap底层原理
缩容:没有缩容,因为需要重新计算index值
hash值不相等
再比较equest方法不相等
HashMap怎么保证key不重复
HashMap与HashTable之间的区别
异或运算^无符号右移>>>&与运算
基础知识
HashMap底层是有序存放的吗
数组 + 链表
头插入方式(并发扩容死循环问题)
代码写法简单
JDK1.7
尾插入
代码写法高大上
数组容量 >= 64 & 链表长度大于8
红黑树节点个数<6转换链表
红黑树转换
JDK1.8
(h = key.hashCode()) ^ (h >>> 6)
i = (n - 1) & hash
Hash函数计算
key没有冲突
链表存放则为o(N)
红黑树存放为O(log N)
Key产生冲突
hashcode值相同,内容不同
hashcode碰撞问题
底层实现方式
链表 增删效率非常高 查询效率非常低(o(n))
JDK1.7版本
链表+红黑树
JDK1.8版本
HashMap是如何解决Hash冲突问题的
HashMap 线程不安全---HashTable---线程安全 但是最终变成单线程
ConcurrentHashMap 1.7分段锁 1.8 node节点 cas+syn锁 取消分段锁设计
在高并发的情况下如何使用HashMap集合?
HashMap如何合理指定集合初始值大小
性能优化
为什么重写equals还要重写hashcode方法
HashMap如何避免内存泄漏问题
HashMap1.7底层是如何实现的
HashMapKey为null存放在什么位置 0
HashMap如何解决Hash冲突问题
HashMap底层采用单链表还是双链表 单向链表
时间复杂度O(1)、O(N)、O(Logn)区别
HashMap根据key查询的时间复杂度
HashMap底层是有序存放的吗?无序 散列
为什么HashMap是无序的?
LinkedHashMap 和 TreeMap底层如何实现有序的?有序
HashMap面试题
有序,双向链表
访问排序
两种排序方式
方案一:访问key的时候,对count +1,效率非常低(因为HashMap排序慢)
方案二:基于LinkedHashMap实现,访问key的时候把这个key放在最后,那么最前面的就是最少使用的
LRU算法(最近少使用的)
缓存淘汰算法
Redis缓存满了如何处理
LinkedListHashMap
HashMap
HashTable
Map
集合和数据结构和算法
IO
正则表达式
序列化
克隆
反射
注解
枚举
泛型
动态
JS
Python
调用脚本语言
JSON
XML
Http
Mail
网络爬虫
JNode
HTML
调用第三方
log4J
slfj
logback
日志
加密解密
函数式编程
新特性
Socket
TCP
UDP
http原理
servlet运行原理
网络编程
awt
swing
JavaFX
GUI
JNI
JNA
Native
SPI机制
Java
并发
JVM
消息队列
数据库
Maven
Mybatis
SpringBoot
SpringCloud
SpringCloud Alibaba
zookeeper
dubbo
微服务
Nginx
Netty
框架
安全
高并发
设计模式
高可用
注册中心
配置中心
负载均衡
服务熔断
架构
后端知识
html
css
css3
html5
基础
浏览器以及内核版本
单页面应用和多页面应用
前端工程化发展之路
PWA技术
SSR服务端渲染
前端概念
es6
TypeScript
eslint 前端规范
less
sass
CSS解析器
node
npm
yarn
包管理器
webpack
vite
构建工具
jquery
layui
bootstrap
多页面应用
vue组件化
vuex存储
vue路由
vue3新特性
vue
Ant Design
Element UI
Arco Design
UI框架
单页面应用
常见的布局
尺寸
移动端概念
h5开发
微信小程序
h5 +
vant app
uniapp
移动端开发
Canvas
Echats
图表制作
高德地图
百度地图
腾讯地图
地图
3D
前端知识
Jenkins
K8S
运维知识
Java知识结构大纲
收藏
0 条评论
回复 删除
下一页