第一章 集成开发工具

    1. 什么是集成开发工具

    eclipse安装使用

    1. 基本概念

    1. - [1.1 eclipse:](https://www.yuque.com/wuxinxiaohuacai/ycw15x/geyib6#D3jaL)

    2.eclipse的安装

    3. eclipse工具的使用

    1. - [3.1 基本使用](https://www.yuque.com/wuxinxiaohuacai/ycw15x/geyib6#gjMJJ)
    2. - [3.2 出现了兼容问题:](https://www.yuque.com/wuxinxiaohuacai/ycw15x/geyib6#ivBlv)
    3. - [3.3 eclipse设置字体](https://www.yuque.com/wuxinxiaohuacai/ycw15x/geyib6#tR47U)
    4. - [3.4 快速生成代码](https://www.yuque.com/wuxinxiaohuacai/ycw15x/geyib6#unCmP)

    idea安装使用
    1. IDEA工具安装
    2. IDEA工具的使用
    3. IDEA工具的快捷键以及一些简单的设置

    第一章 final关键字

    1. final关键字基本语法

    第二章 抽象类

    1. 抽象类概念

    1. - [1.1 什么是抽象类](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#yDCSf)
    2. - [1.2 抽象类怎么定义](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#VnifT)

    2. 抽象类基础语法

    第三章 接口

    1. 接口的基本语法

    1. - [1.1 接口基本知识](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#4J9jU)
    2. - [1.2 接口基本语法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#bctL1)
    3. - [1.3 继承和实现都存在的话,代码应该怎么写](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#2XONO)

    2. 接口在开发中的作用

    3. 类型和类型之间的关系

    4. 抽象类和接口的区别

    第四章 包

    1. package概述及使用

    1. - [1.1 package概述](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#7L5Tz)
    2. - [1.2 package怎么用](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#mvncn)
    3. - [1.3 包名的命名规范](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#CAO30)
    4. - [1.4 对于带有packagejava程序编译、运行](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#hnMRM)

    2. import

    1. - [2.1 import使用](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#JbWqR)
    2. - [2.2 import什么时候不需要](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#xRchf)

    第五章 访问控制权限

    1. 访问控制权限基本概念

    1. - [1.1 访问控制权限都有哪些](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#9FapK)
    2. - [1.2 控制的范围](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#49eQ8)
    3. - [1.3 访问控制权限修饰符可以修饰什么](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#A5SMv)

    第六章 object类中的一些方法

    1. toString()方法

    1. - [1.1 如何学习这些方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#aBHUT)
    2. - [1.2 tostring方法学习](https://www.yuque.com/wuxinxiaohuacai/ycw15x/wg2vwb#qDODH)

    2. equals方法

    3. finalize()方法

    4. hashCode方法

    第七章 匿名内部类

    1. 什么是内部类
    2. 内部类分类
    3. 匿名内部类

    第八章 数组

    1. 一维数组

    1. - [1.1 数组的优点和缺点](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#1Tk00)
    2. - [1.2 main方法上面的“String[] args”](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#ivPMW)
    3. - [1.3 java中的数组是怎么进行拷贝](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#ooenz)

    2. 二维数组

    第八章 Arrays工具类

    1. 常见排序算法

    1. - [1.1 冒泡排序](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#6rHkA)
    2. - [1.2 选择排序](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#VYcxN)

    2. 数组的元素查找

    1. - [2.1 二分法查找](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#XXOy2)

    3. Arrays工具类使用

    第九章 String类

    1. String类存储原理

    1. - [1.1 String s1 ="abcdef"String s3 = new String("xy")的区别](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#PqvrT)
    2. - [1.2 String在堆内存的存储](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#n4b0B)

    2. String类中的构造方法

    3. String类当中常用方法

    4. StringBuffer

    1. - [4.1 如果需要进行字符串的频繁拼接:](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#1BHUb)
    2. - [4.2 如何优化StringBuffer的性能](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#mjD6H)
    3. - [4.3 String为什么是不可变的](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#1yDPE)
    4. - [4.4 StringBuilder/StringBuffer为什么是可变的](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#vcRyR)
    5. - [4.5 StringBufferStringBuilder的区别](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#iocGT)

    第十章 包装类

    1. 包装类

    1. - [1.1 包装类存在的意义](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#MDU1b)
    2. - [1.2 基本数据类型的包装类](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#pkuFj)
    3. - [1.3 Integer类的构造方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#rqGBB)
    4. - [1.4 自动装箱和自动拆箱](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#e57Nc)
    5. - [1.5 Integer非常重要的面试题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#hnxPf)
    6. - [1.6 NumberFormatException](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#xJ12V)
    7. - [1.7 Integer类当中有哪些常用的方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#gzPz3)
    8. - [1.8 String int Integer之间互相转换](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mlymar#XCs3Q)

    第十一章 日期类

    第十二章 数字类

    第十三章 random类

    第十四章 枚举

    1. 枚举基本概念

    1. - [1.1 语法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#XLNO9)
    2. - [1.2 什么时候使用](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#8fH4V)
    3. - [1.3 switch语句中使用枚举](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#7Elhi)

    第十五章 异常

    1. 异常的概念及作用

    2. 异常是什么时候创建的

    3. 异常的继承机制

    1. - [3.1 编译时异常和运行时异常的区别](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#CUqau)

    4. 异常的处理

    1. - [4.1 深入try..catch](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#ubcQp)
    2. - [4.2 异常对象有两个非常重要的方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#BJ8b2)
    3. - [4.3 关于try..catch中的finally子句](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#6NQuu)
    4. - [4.4 final finally finalize有什么区别](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#hM2tk)
    5. - [4.5 方法覆盖的遗留问题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/pl6xio#BLCCL)

    5. Java中怎么自定义异常

    第十六章 集合

    1. 集合继承结构图

    1. - [1.1 集合的基本概念](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#d0z9d)

    2. Map集合继承结构图

    3. collection接口常用方法

    1. - [3.1 Collection中能存放什么元素](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#bwWMs)
    2. - [3.2 Collection中的常用方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#qt4N0)
    3. - [3.3 集合遍历/迭代](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#CPTZ6)
    4. - [3.4 深入Collection集合的contains方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#GEWqh)
    5. - [3.5 关于集合元素的remove](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#UXqhu)

    4. List接口中常用方法

    1. - [4.1 ArrayList集合](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#JFJtz)
    2. - [4.2 LinkList源码分析](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#jRytx)

    5. vector

    6. HashSet

    7.Map接口

    1. - [7.1 Map集合遍历](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#URpT9)

    8. hashMap

    1. - [8.1 哈希表数据结构](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#KyK3c)
    2. - [8.2 哈希表](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#RTAws)
    3. - [8.3 hashMap](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#yQ8oS)

    9. TreeSet

    1. - [9.1 自平衡二叉树](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#1o9gM)

    10. 属性类Properties

    11. Collections工具类

    第十七章 泛型

    1. 泛型基本概念

    1. - [1.1 自动类型推断机制(又称为钻石表达式)](https://www.yuque.com/wuxinxiaohuacai/ycw15x/yygatp#yd4E9)

    2. foreach

    第十八章 IO流

    1.IO流基本概念

    1. - [1.1 什么是IO](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#bGnoJ)
    2. - []()[1.2 IO流的分类](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#wNJFy)
    3. - [1.2.1 java IO流的四大家族](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#NfVzu)
    4. - [1.2.2 java.io包下需要掌握的16个流](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#lmRjT)

    2.FileInputStream

    1. - [2.1 基本格式](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#vICGG)
    2. - [2.2 FileinputStream其他方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#IuG4O)

    3. FileOutputStream

    1. - []()[3.1 文件复制](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#Qvz4D)
    2. - [3.1.1 文件复制过程](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#sROhn)
    3. - [3.1.2 代码分析](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#G2pKp)

    4. FileReader

    5. FileWriter

    1. - [5.1 复制普通文本文件](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#EcTFM)

    6. BufferedReader

    7. InputStreamReader

    8. BufferedWriter

    9. DataInputStream

    10. DataOutputStream

    11. PrintStream

    1. - [11.1 日志工具](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#hzkWS)

    12. File

    1. - [12.1 File类概述](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#F4NhQ)
    2. - [12.2 File类其它常用方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#sg57S)

    13. 序列化和反序列化

    1. - []()[13.1 序列化](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#Y7EiH)
    2. - [13.1.1 transient关键字](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#3v5Qp)
    3. - [13.1.2 序列化版本号](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#Dmjre)
    4. - [13.2 反序列化](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#keCT2)

    14. IO+Properties的联合应用

    1. - [14.1 properties文件书写](https://www.yuque.com/wuxinxiaohuacai/ycw15x/giop7g#Dzrz4)

    第十九章 多线程

    1. 多线程基本概述

    1. - [1.1 什么是进程?什么是线程?](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#wETjH)
    2. - [1.2 线程、进程在内存中的表现](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#urnzF)

    2. 实现线程的方式

    1. - []()[2.1 第一种方式](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#DkUJj)
    2. - [2.1.1 线程的start方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#KrN9u)
    3. - []()[2.2 第二种方式](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#RIsyN)
    4. - [2.2.1 匿名内部类方式](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#GLyrG)

    3. 线程对象的生命周期

    4. 获取当前线程对象

    5. 关于线程的sleep方法

    1. - [5.1 Thread.sleep()方法的一个面试题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#Ndoc2)

    6. 终止线程的睡眠

    1. - [6.1 强行终止一个线程的执行](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#RTPAP)
    2. - [6.2 合理的终止一个线程的执行](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#oufrq)

    7. 线程的调度

    1. - [7.1 常见的线程调度模型](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#2smXd)
    2. - [7.2 java中提供了哪些方法是和线程调度有关系的](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#FC0VD)

    8. 线程的优先级

    1. - [8.1 yield方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#p3S95)
    2. - [8.2 线程合并](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#H71Og)

    9. 关于多线程并发环境下,数据的安全问题

    1. - []()[9.1 什么时候数据在多线程并发的环境下会存在安全问题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#QrEkt)
    2. - [9.1.1 三个条件](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#lCs64)
    3. - [9.1.2 怎么解决线程安全问题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#UYCrP)
    4. - [9.1.3 那些变量存在线程安全问题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#wrz2i)
    5. - [9.1.4 扩大同步范围](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#sCccv)

    10. synchronized

    1. - [10.1 synchronized的三种写法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#S9nmX)
    2. - []()[10.2 面试题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#d0lg6)
    3. - [10.2.1](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#mCIPS)
    4. - [10.2.2](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#KBM4h)
    5. - [10.2.3](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#ZIK9a)
    6. - [10.2.4](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#0H4JP)
    7. - []()[10.3 死锁问题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#pCZgy)
    8. - [10.3.1 死锁代码实现](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#Q5OeC)

    11. 总结:开发中应该怎么解决线程安全问题

    12. 守护线程

    13. 定时器

    14. 实现线程的第三种方式

    15. Object类中的wait和notify方法

    1. - [15.1 生产者和消费者模式](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#fF5WW)
    2. - [15.2 生产者和消费者模式代码实现](https://www.yuque.com/wuxinxiaohuacai/ycw15x/mmlm14#7spZX)

    第二十章 反射

    1. 反射机制概述

    1. - [1.1 反射机制有什么用?](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#bsnva)
    2. - [1.2 反射机制的相关类在哪个包下?](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#KooU3)
    3. - [1.3 反射机制相关的重要的类有哪些?](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#j2w5s)

    2. 获取class的三种方式

    3. 通过反射实例化对象

    4. 通过配置文件实例化对象

    1. - [4.1 只让静态代码块执行](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#TgFKm)

    5. 获取一个文件的绝对路径

    1. - [5.1 以流的形式直接返回](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#F5CM4)

    6. 资源绑定器

    7. JDK中自带的类加载器

    1. - [7.1 什么是类加载器?](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#qdtbS)
    2. - [7.2 JDK中自带了3个类加载器](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#S33fp)
    3. - [7.3 类加载分析:](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#RifmD)
    4. - [7.4 双亲委派机制](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#LvxQ3)

    8. 回顾反射机制

    9. 获取Field

    1. - [9.1 反编译filed](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#fwhAb)
    2. - [9.2 通过反射机制访问一个java对象的属性](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#spgrP)

    10. 反射method

    1. - [10.1 反编译一个类的方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#3DZoO)
    2. - [10.2 通过反射调用一个对象的方法](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#DYo4J)

    11. 反射constructor

    1. - [11.1 通过反射调用构造方法实例化对象](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#AeVGn)

    12. 获取一个类的父类、接口

    第二十一章 注解

    1. 注解基本概述

    1. - [1.1 关于JDK lang包下的Override注解](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#qWnrJ)
    2. - [1.2 Deprecated](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#AY3Md)
    3. - [1.3 注解的属性](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#ZnBQg)
    4. - [1.4 属性为value的省略问题](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#BVkBY)
    5. - [1.5 注解当中的属性可以是哪一种类型](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#30ODP)
    6. - [1.7 属性为数组](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#mnqD7)

    2. 元注解

    1. - [2.1 关于Target注解:](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#snvSN)
    2. - []()[2.2 关于Retention注解](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#P4hYG)
    3. - [2.2.1 Retention的源代码](https://www.yuque.com/wuxinxiaohuacai/ycw15x/bc0e2c#6J5Us)

    3. 反射注解
    4. 注解在开发中有什么用