|
2 | 2 |
|
3 | 3 | <!-- GFM-TOC --> |
4 | 4 |
|
| 5 | +* [Java基础知识相关笔记](#java基础知识相关笔记) |
| 6 | +* [0、面向对象](#0面向对象) |
| 7 | + * [面向对象和面向过程](#面向对象和面向过程) |
| 8 | + * [面向对象的三大特性](#面向对象的三大特性) |
5 | 9 | * [一、数据类型](#一数据类型) |
6 | | - * [基本类型](#基本类型) |
7 | | - * [包装类型](#包装类型) |
8 | | - * [缓存池](#缓存池) |
| 10 | + * [基本类型](#基本类型) |
| 11 | + * [浮点数的存储机制](#浮点数的存储机制) |
| 12 | + * [包装类型](#包装类型) |
| 13 | + * [缓存池](#缓存池) |
9 | 14 | * [二、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) |
15 | 20 | * [三、运算](#三运算) |
16 | | - * [参数传递](#参数传递) |
17 | | - * [float 与 double](#float-与-double) |
18 | | - * [隐式类型转换](#隐式类型转换) |
19 | | - * [switch](#switch) |
| 21 | + * [参数传递](#参数传递) |
| 22 | + * [float 与 double](#float-与-double) |
| 23 | + * [隐式类型转换](#隐式类型转换) |
| 24 | + * [switch](#switch) |
20 | 25 | * [四、关键字](#四关键字) |
21 | | - * [final](#final) |
22 | | - * [static](#static) |
| 26 | + * [final](#final) |
| 27 | + * [static](#static) |
23 | 28 | * [五、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-如何实现深拷贝) |
29 | 38 | * [六、继承](#六继承) |
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如何确定调用的是子类方法) |
34 | 52 | * [七、反射](#七反射) |
| 53 | + * [反射的优点](#反射的优点) |
| 54 | + * [反射的缺点](#反射的缺点) |
| 55 | + * [反射的应用](#反射的应用) |
| 56 | + * [动态代理](#动态代理) |
35 | 57 | * [八、异常](#八异常) |
| 58 | + * [异常分类](#异常分类) |
| 59 | + * [异常相关的关键字](#异常相关的关键字) |
| 60 | + * [参考](#参考) |
36 | 61 | * [九、泛型](#九泛型) |
| 62 | + * [9.1 泛型类 & 泛型方法 & 泛型接口](#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-参考资料) |
37 | 72 | * [十、注解](#十注解) |
38 | 73 | * [十一、特性](#十一特性) |
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) |
42 | 129 | * [参考资料](#参考资料) |
43 | | - <!-- GFM-TOC --> |
| 130 | + |
| 131 | +<!-- Created by https://github.com/ekalinin/github-markdown-toc --> |
44 | 132 |
|
45 | 133 | # 0、面向对象 |
46 | 134 |
|
|
0 commit comments