Skip to content

Commit 9aa6ba6

Browse files
committed
增加github目录
1 parent 34235fa commit 9aa6ba6

11 files changed

Lines changed: 1108 additions & 31 deletions

‎1.Java基础知识.md‎

Lines changed: 115 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,133 @@
22

33
<!-- GFM-TOC -->
44

5+
* [Java基础知识相关笔记](#java基础知识相关笔记)
6+
* [0、面向对象](#0面向对象)
7+
* [面向对象和面向过程](#面向对象和面向过程)
8+
* [面向对象的三大特性](#面向对象的三大特性)
59
* [一、数据类型](#一数据类型)
6-
* [基本类型](#基本类型)
7-
* [包装类型](#包装类型)
8-
* [缓存池](#缓存池)
10+
* [基本类型](#基本类型)
11+
* [浮点数的存储机制](#浮点数的存储机制)
12+
* [包装类型](#包装类型)
13+
* [缓存池](#缓存池)
914
* [二、String](#二string)
10-
* [概览](#概览)
11-
* [不可变的好处](#不可变的好处)
12-
* [String, StringBuffer and StringBuilder](#string,-stringbuffer-and-stringbuilder)
13-
* [String Pool](#string-pool)
14-
* [new String("abc")](#new-string"abc")
15+
* [概览](#概览)
16+
* [不可变的好处](#不可变的好处)
17+
* [String, StringBuffer and StringBuilder](#string-stringbuffer-and-stringbuilder)
18+
* [String Pool](#string-pool)
19+
* [new String("abc")](#new-stringabc)
1520
* [三、运算](#三运算)
16-
* [参数传递](#参数传递)
17-
* [float 与 double](#float-与-double)
18-
* [隐式类型转换](#隐式类型转换)
19-
* [switch](#switch)
21+
* [参数传递](#参数传递)
22+
* [float 与 double](#float-与-double)
23+
* [隐式类型转换](#隐式类型转换)
24+
* [switch](#switch)
2025
* [四、关键字](#四关键字)
21-
* [final](#final)
22-
* [static](#static)
26+
* [final](#final)
27+
* [static](#static)
2328
* [五、Object 通用方法](#五object-通用方法)
24-
* [概览](#概览)
25-
* [equals()](#equals)
26-
* [hashCode()](#hashcode)
27-
* [toString()](#tostring)
28-
* [clone()](#clone)
29+
* [概览](#概览-1)
30+
* [equals()](#equals)
31+
* [hashCode()](#hashcode)
32+
* [equals()和hashCode()的联系](#equals和hashcode的联系)
33+
* [toString()](#tostring)
34+
* [clone()/深浅拷贝](#clone深浅拷贝)
35+
* [1. cloneable](#1-cloneable)
36+
* [2. 浅拷贝 VS 深拷贝](#2-浅拷贝-vs-深拷贝)
37+
* [3. 如何实现深拷贝](#3-如何实现深拷贝)
2938
* [六、继承](#六继承)
30-
* [访问权限](#访问权限)
31-
* [抽象类与接口](#抽象类与接口)
32-
* [super](#super)
33-
* [重写与重载](#重写与重载)
39+
* [访问权限](#访问权限)
40+
* [抽象类与接口](#抽象类与接口)
41+
* [抽象类](#抽象类)
42+
* [接口](#接口)
43+
* [比较](#比较)
44+
* [使用选择](#使用选择)
45+
* [super](#super)
46+
* [重写与重载](#重写与重载)
47+
* [重写(Override)](#重写override)
48+
* [重载(Overload)](#重载overload)
49+
* [多态](#多态)
50+
* [JAVA如何实现多态](#java如何实现多态)
51+
* [JVM如何确定调用的是子类方法](#jvm如何确定调用的是子类方法)
3452
* [七、反射](#七反射)
53+
* [反射的优点](#反射的优点)
54+
* [反射的缺点](#反射的缺点)
55+
* [反射的应用](#反射的应用)
56+
* [动态代理](#动态代理)
3557
* [八、异常](#八异常)
58+
* [异常分类](#异常分类)
59+
* [异常相关的关键字](#异常相关的关键字)
60+
* [参考](#参考)
3661
* [九、泛型](#九泛型)
62+
* [9.1 泛型类 &amp; 泛型方法 &amp; 泛型接口](#91-泛型类--泛型方法--泛型接口)
63+
* [9.2 泛型与继承](#92-泛型与继承)
64+
* [9.3 通配符类型](#93-通配符类型)
65+
* [9.4 类型擦除](#94-类型擦除)
66+
* [9.4.1 什么是类型擦除](#941-什么是类型擦除)
67+
* [9.4.2 类型擦除引起的问题及解决方法](#942-类型擦除引起的问题及解决方法)
68+
* [9.4.2.1 自动类型转换](#9421-自动类型转换)
69+
* [9.4.2.2 类型擦除与多态的冲突](#9422-类型擦除与多态的冲突)
70+
* [9.4.3 泛型与数组](#943-泛型与数组)
71+
* [9.5 参考资料](#95-参考资料)
3772
* [十、注解](#十注解)
3873
* [十一、特性](#十一特性)
39-
* [Java 各版本的新特性](#java-各版本的新特性)
40-
* [Java 与 C++ 的区别](#java-与-c-的区别)
41-
* [JRE or JDK](#jre-or-jdk)
74+
* [Java 各版本的新特性](#java-各版本的新特性)
75+
* [1 JDK1.8新特性](#1-jdk18新特性)
76+
* [2 JDK1.7 新特性](#2-jdk17-新特性)
77+
* [Java 与 C++ 的区别](#java-与-c-的区别)
78+
* [JRE or JDK](#jre-or-jdk)
79+
* [十二、IO](#十二io)
80+
* [1 操作系统的五大IO模型](#1-操作系统的五大io模型)
81+
* [阻塞IO](#阻塞io)
82+
* [非阻塞IO](#非阻塞io)
83+
* [多路复用IO](#多路复用io)
84+
* [信号驱动IO](#信号驱动io)
85+
* [异步IO](#异步io)
86+
* [五大IO模型对比](#五大io模型对比)
87+
* [2 操作系统的select、poll、epoll机制](#2-操作系统的selectpollepoll机制)
88+
* [select](#select)
89+
* [poll](#poll)
90+
* [epoll](#epoll)
91+
* [三者对比](#三者对比)
92+
* [参考](#参考-1)
93+
* [3 JAVA提供的BIO、NIO、AIO模型](#3-java提供的bionioaio模型)
94+
* [BIO(同步阻塞IO)](#bio同步阻塞io)
95+
* [NIO(同步非阻塞IO)](#nio同步非阻塞io)
96+
* [AIO(异步非阻塞IO)](#aio异步非阻塞io)
97+
* [4 Reactor(Netty使用的)IO 模型](#4-reactornetty使用的io-模型)
98+
* [4.1 Reactor基本思想](#41-reactor基本思想)
99+
* [4.2 Reactor模型构成](#42-reactor模型构成)
100+
* [4.3 Reactor模型实现](#43-reactor模型实现)
101+
* [4.3.1 单Reactor单线程](#431-单reactor单线程)
102+
* [4.3.2 单Reactor多线程](#432-单reactor多线程)
103+
* [4.3.3 多Reactor多线程](#433-多reactor多线程)
104+
* [4.4 总结](#44-总结)
105+
* [十三、集合](#十三集合)
106+
* [1 HashMap实现原理](#1-hashmap实现原理)
107+
* [存储结构](#存储结构)
108+
* [构造方法](#构造方法)
109+
* [PUT()方法](#put方法)
110+
* [GET()方法](#get方法)
111+
* [扩容机制](#扩容机制)
112+
* [HashMap线程安全问题](#hashmap线程安全问题)
113+
* [2 ConcurrentHashMap实现原理](#2-concurrenthashmap实现原理)
114+
* [存储结构](#存储结构-1)
115+
* [构造方法](#构造方法-1)
116+
* [PUT()方法](#put方法-1)
117+
* [GET()方法](#get方法-1)
118+
* [扩容机制](#扩容机制-1)
119+
* [size()方法](#size方法)
120+
* [3 JDK1.8为什么使用红黑树?](#3-jdk18为什么使用红黑树)
121+
* [4 HashMap和HashTable的区别](#4-hashmap和hashtable的区别)
122+
* [5 ArrayList和Vector原理](#5-arraylist和vector原理)
123+
* [6 ArrayList和LinkedList区别](#6-arraylist和linkedlist区别)
124+
* [其它面试题](#其它面试题)
125+
* [1 Java和C++的区别?](#1-java和c的区别)
126+
* [2 ClassNotFoundException和 NoClassDefFoundError区别](#2-classnotfoundexception和-noclassdeffounderror区别)
127+
* [ClassNotFoundException](#classnotfoundexception)
128+
* [NoClassDefFoundError](#noclassdeffounderror)
42129
* [参考资料](#参考资料)
43-
<!-- GFM-TOC -->
130+
131+
<!-- Created by https://github.com/ekalinin/github-markdown-toc -->
44132

45133
# 0、面向对象
46134

‎10.数据结构和算法.md‎

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,97 @@
1-
1+
# 数据结构和算法
2+
3+
<!-- GFM-TOC -->
4+
5+
* [一、 排序算法](#一-排序算法)
6+
* [1. 简单选择排序](#1-简单选择排序)
7+
* [2. 冒泡排序](#2-冒泡排序)
8+
* [3. 插入排序](#3-插入排序)
9+
* [4. 希尔排序](#4-希尔排序)
10+
* [5. 快速排序](#5-快速排序)
11+
* [6. 归并排序](#6-归并排序)
12+
* [7. 堆排序](#7-堆排序)
13+
* [8. 计数排序](#8-计数排序)
14+
* [9. 桶排序](#9-桶排序)
15+
* [总结](#总结)
16+
* [相关面试题](#相关面试题)
17+
* [1 Arrays.sort()使用了什么排序算法?](#1-arrayssort使用了什么排序算法)
18+
* [参考](#参考)
19+
* [二. 查找算法](#二-查找算法)
20+
* [1. 哈希查找](#1-哈希查找)
21+
* [2. 二分查找](#2-二分查找)
22+
* [2.1 标准写法:](#21-标准写法)
23+
* [2.2 变种写法](#22-变种写法)
24+
* [<strong>寻找左侧边界的二分查找</strong>](#寻找左侧边界的二分查找)
25+
* [<strong>寻找右侧边界的二分查找</strong>](#寻找右侧边界的二分查找)
26+
* [2.3 相关题目](#23-相关题目)
27+
* [2.4 总结](#24-总结)
28+
* [2.5 参考](#25-参考)
29+
* [3. 旋转数组](#3-旋转数组)
30+
* [3.1 查找最小值](#31-查找最小值)
31+
* [3.2 查找指定值](#32-查找指定值)
32+
* [三、快速幂算法](#三快速幂算法)
33+
* [四、字符串匹配算法](#四字符串匹配算法)
34+
* [1. Brute-Force暴力算法](#1-brute-force暴力算法)
35+
* [2. KMP算法](#2-kmp算法)
36+
* [KMP实现](#kmp实现)
37+
* [快速构建PMT表/Next数组](#快速构建pmt表next数组)
38+
* [注意](#注意)
39+
* [3. 参考](#3-参考)
40+
* [五、数据结构](#五数据结构)
41+
* [1. 二叉树](#1-二叉树)
42+
* [递归法先、中、后序遍历](#递归法先中后序遍历)
43+
* [迭代法先、中、后序遍历](#迭代法先中后序遍历)
44+
* [2. 二叉查找/搜索树](#2-二叉查找搜索树)
45+
* [3. 红黑树](#3-红黑树)
46+
* [3.1 定义](#31-定义)
47+
* [3.2 操作](#32-操作)
48+
* [插入](#插入)
49+
* [删除](#删除)
50+
* [3.3 代码实现](#33-代码实现)
51+
* [节点定义](#节点定义)
52+
* [平衡调整](#平衡调整)
53+
* [左/右旋](#左右旋)
54+
* [3.4 相关面试问题](#34-相关面试问题)
55+
* [为什么要有红色/黑色。](#为什么要有红色黑色)
56+
* [为什么插入节点默认红色。](#为什么插入节点默认红色)
57+
* [红黑树和AVL树的对比?](#红黑树和avl树的对比)
58+
* [平衡二叉树/AVL树](#平衡二叉树avl树)
59+
* [4. B树](#4-b树)
60+
* [5. B+树](#5-b树)
61+
* [6. 字典/Trie树](#6-字典trie树)
62+
* [7. 堆](#7-堆)
63+
* [7.1 结构](#71-结构)
64+
* [7.2 属性](#72-属性)
65+
* [7.3 操作及其复杂度](#73-操作及其复杂度)
66+
* [7.3.1 原始操作](#731-原始操作)
67+
* [7.3.2 O(log n)复杂度的操作](#732-olog-n复杂度的操作)
68+
* [7.3.3 其它操作](#733-其它操作)
69+
* [7.4 堆和二叉搜索树的区别](#74-堆和二叉搜索树的区别)
70+
* [7.5 堆代码实现](#75-堆代码实现)
71+
* [8. 并查集](#8-并查集)
72+
* [8.1 结构](#81-结构)
73+
* [8.2 操作](#82-操作)
74+
* [8.2.1 初始化](#821-初始化)
75+
* [8.2.2 查询](#822-查询)
76+
* [8.2.3 合并](#823-合并)
77+
* [8.2.4 基于路径压缩的优化合并](#824-基于路径压缩的优化合并)
78+
* [8.2.5 按秩合并](#825-按秩合并)
79+
* [3. 参考](#3-参考-1)
80+
* [六、海量数据处理相关](#六海量数据处理相关)
81+
* [BitMap](#bitmap)
82+
* [Bloom Filter](#bloom-filter)
83+
* [归并(分治)](#归并分治)
84+
* [堆](#堆)
85+
* [七、智力题](#七智力题)
86+
* [八.其它常见算法](#八其它常见算法)
87+
* [1 洗牌算法](#1-洗牌算法)
88+
* [2 抽奖算法](#2-抽奖算法)
89+
* [3 单例模式](#3-单例模式)
90+
* [4 生产者消费者模式](#4-生产者消费者模式)
91+
* [5 rand7 / rand10相互生成【待完成】](#5-rand7--rand10相互生成待完成)
92+
* [6 foo 函数,返回0/1的概率分别为60%/40%,如何利用 foo 函数实现等概返回 0/1 的函数](#6-foo-函数返回01的概率分别为6040如何利用-foo-函数实现等概返回-01-的函数)
93+
94+
<!-- Created by https://github.com/ekalinin/github-markdown-toc -->
295

396
# 一、 排序算法
497

‎11.分布式系统设计相关笔记.md‎

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,86 @@
11
# 系统设计
22

3-
[TOC]
3+
<!-- GFM-TOC -->
4+
5+
* [系统设计](#系统设计)
6+
* [一、集群](#一集群)
7+
* [1. 负载均衡](#1-负载均衡)
8+
* [负载均衡算法](#负载均衡算法)
9+
* [1. 轮询(Round Robin)](#1-轮询round-robin)
10+
* [2. 加权轮询(Weighted Round Robbin)](#2-加权轮询weighted-round-robbin)
11+
* [3. 最少连接(least Connections)](#3-最少连接least-connections)
12+
* [4. 加权最少连接(Weighted Least Connection)](#4-加权最少连接weighted-least-connection)
13+
* [5. 随机算法(Random)](#5-随机算法random)
14+
* [6. 源地址哈希法 (IP Hash)](#6-源地址哈希法-ip-hash)
15+
* [转发实现](#转发实现)
16+
* [1. HTTP 重定向](#1-http-重定向)
17+
* [2. DNS 域名解析](#2-dns-域名解析)
18+
* [3. 反向代理服务器](#3-反向代理服务器)
19+
* [4. 网络层](#4-网络层)
20+
* [5. 链路层](#5-链路层)
21+
* [2. 分布式 Session 管理](#2-分布式-session-管理)
22+
* [<strong>粘性Session</strong>](#粘性session)
23+
* [<strong>Session同步/复制</strong>](#session同步复制)
24+
* [<strong>集中式Session管理</strong>](#集中式session管理)
25+
* [<strong>客户端存储Session</strong>](#客户端存储session)
26+
* [二、分布式一致性原理](#二分布式一致性原理)
27+
* [1 分布式理论](#1-分布式理论)
28+
* [1.1 CAP理论](#11-cap理论)
29+
* [一致性](#一致性)
30+
* [可用性](#可用性)
31+
* [分区容错性](#分区容错性)
32+
* [1.2 BASE理论](#12-base理论)
33+
* [基本可用](#基本可用)
34+
* [软状态](#软状态)
35+
* [最终一致性](#最终一致性)
36+
* [1.3 ACID/CAP/BASE总结](#13-acidcapbase总结)
37+
* [2 一致性协议](#2-一致性协议)
38+
* [2.1 两阶段提交2PC协议](#21-两阶段提交2pc协议)
39+
* [阶段1](#阶段1)
40+
* [阶段2](#阶段2)
41+
* [举例](#举例)
42+
* [优缺点](#优缺点)
43+
* [2.1.3 三阶段提交3PC协议](#213-三阶段提交3pc协议)
44+
* [3 分布式共识](#3-分布式共识)
45+
* [3.1 分布式共识问题](#31-分布式共识问题)
46+
* [3.2 Raft算法](#32-raft算法)
47+
* [领导人选举](#领导人选举)
48+
* [正常流程](#正常流程)
49+
* [异常情况](#异常情况)
50+
* [日志复制](#日志复制)
51+
* [正常流程](#正常流程-1)
52+
* [异常情况](#异常情况-1)
53+
* [3.3 Paxos算法](#33-paxos算法)
54+
* [三、网站高并发&amp;高可用](#三网站高并发高可用)
55+
* [1. 高可用](#1-高可用)
56+
* [1.0 负载均衡](#10-负载均衡)
57+
* [1.1 熔断-](#11-熔断-)
58+
* [1.2 限流-](#12-限流-)
59+
* [固定窗口计数器算法](#固定窗口计数器算法)
60+
* [滑动窗口计数器](#滑动窗口计数器)
61+
* [漏桶算法](#漏桶算法)
62+
* [令牌桶算法](#令牌桶算法)
63+
* [1.3 降级-](#13-降级-)
64+
* [1.4 异步调用](#14-异步调用)
65+
* [1.5 幂等性设计](#15-幂等性设计)
66+
* [1.6 数据高可用](#16-数据高可用)
67+
* [1.7 网站监控](#17-网站监控)
68+
* [2. 高性能](#2-高性能)
69+
* [2.0 硬件优化](#20-硬件优化)
70+
* [2.1 缓存](#21-缓存)
71+
* [2.2 集群+负载均衡](#22-集群负载均衡)
72+
* [2.3 异步操作](#23-异步操作)
73+
* [2.4 代码优化](#24-代码优化)
74+
* [四、单点登录SSO](#四单点登录sso)
75+
* [1. 为什么需要单点登录](#1-为什么需要单点登录)
76+
* [2. 如何实现单点登录](#2-如何实现单点登录)
77+
* [2.1 统一域名](#21-统一域名)
78+
* [2.2 CAS方案](#22-cas方案)
79+
* [登录](#登录)
80+
* [注销](#注销)
81+
* [参考文献](#参考文献)
82+
83+
<!-- Created by https://github.com/ekalinin/github-markdown-toc -->
484

585
# 一、集群
686

0 commit comments

Comments
 (0)