Java 学习记录 —— 记录相关学习内容
一、Java基础(basic)
1. Java运算符(operator)
- 常见运算符(general)
- Test : += 和 =+ 的区别
- 逻辑运算符(logic)
- BitwiseXOR : 三种替换方式 重点讲 ^(异或运算)来实现替换方式
- BHDConverter : 模拟进制转换 使用 & 和 位移运算 来实现
2. Java结构(选择、循环)(structure)
- 嵌套循环(nestedloop)
- PrimeNumber : 查找质数(1-100000) 使用不同的方式来查找质数
3. Java数组(arrays)
- 数组赋值(assignment)
- PascalTriangle : 杨辉三角 使用二维数组 打印10行 杨辉三角
- 求数组平均值、最大最小值、和等(value)
- 数组的复制、反转、查找(线性查找、二分法查找)(crl)
- ArrayReverse : 数组反转
- ArrayLookup : 数组查找 主要写线性查找、二分法查找
- 数组排序(sort)
- BubbleSort : 冒泡排序
4. Java 面向对象(oop)
- 接口(interface)
- Ball : 接口题目1 - 判断对错
- C : 接口题目2 - 判断对错
- StudyTest1 : JDK8接口改进 - 注意事项
- 多态(polymorphism)
- FieldMethodTest : 多态的简单使用
- InstanceTest : 测试 instanceof 所满足的情况
- InterviewTest1 : 多态中特别的注意事项
- PersonTest : 多态为何存在?
- 混合(mixture)
- BankTest : 对象的属性 赋值的顺序
- LeafTest : 题目1 - 判断如下代码执行顺序
- SonTest : 题目2 - 判断如下代码执行顺序?
5. Java API(api)
- Object(object)
- equal : == 和 equals() 的区别
- ToStringTest : Object类中toString()的使用
- String(strings)
- SimpleTest : String 与 char[] 之间的转换题目
- StringTest : String的实例化方式
- 包装类(wrapper)
- WrapperTest : 类型转换
- InterviewTest1 : 题目1 - 关于包装类的面试题
- InterviewTest2S : 题目2 - 关于包装类的面试题
- ScoreTest : 题目3 - 根据题意实现代码
6. Java 关键字(keywords)
- StaticTest : static 的应用场景
7. Java 异常(throwable)
- ReturnExceptionDemo : finally的执行顺序测试
- Test1 : 常见的运行时异常 有什么?
8. Java 多线程(thread)
- ThreadTest : 多线程的创建 方式一:继承于Thread类
- ThreadTest2 : 多线程的创建 方式一:继承于Thread类 使用匿名子类的方式
- ThreadTest3 : 多线程的创建 方式二:实现Runnable接口
- ProAndCost : 线程通信的应用:经典例题:生产者/消费者
- demo01 : 狂神_线程创建方式
- state : 狂神_线程状态
- syn : 狂神_线程同步
- lock : 狂神_死锁相关
- senior : 狂神_高级相关
9. Java 集合类(collection)
- 暂无内容记录
10. Java I/O(io)
- practice1 : 获取文本上每个字符出现的次数
11. Java 网络编程(net)
- 网络通信(socket)
- TCPTest1 : 实现TCP的网络编程练习1
- TCPTest2 : 实现TCP的网络编程练习2
- TCPTest3 : 实现TCP的网络编程练习3
- UDPTest1 : 实现UDP协议的网络编程练习1
- URL编程(url)
- URLTest1 : URL网络编程练习1
- URLTest2 : URL网络编程练习2
12. Java 注解(annotation)
- Annotation :自定义注解
13. Java 反射(reflection)
- test1 :了解什么是反射
- test2 :获得Class类的几种方式
- Test3 :哪些类可以有Class对象
- test4 :练习反射操作注解-ORM
13. Java Lambda(lambda)
- demo03 :狂神_Lambda讲解
二、设计思想(design)
1. 设计模式(pattern)
- 创建型模式(creational)
- 单例模式(Singleton): 饿汉式、懒汉式
- 结构型模式(structural)
- 代理模式(Proxy):四个例子(静态代理 /动态代理)
- demo02 : 狂神_线程的底层模式
- 行为型模式(behavioral)
- 模板方法模式(TemplateMethod) / 模板模式(Template):两个例子
三、数据结构(dataStructures)
1. 稀疏数组(sparsearray)
- SparseArray : 稀疏数组应用实例
- demo : 新增读取/存储(硬盘中)稀疏数组数据
2. 队列(queue)
- ArrayQueueDemo : 使用数组模拟队列
- CircleQueueDemo : 使用数组模拟环形队列
3. 链表(linkedlist)
- singleLinkedListDemo : 带头结点的单链表应用实例
- doubleLinkedListDemo : 双链表应用实例
- josephuDemo : 环形单链表应用实例
4. 栈(stack)
- ArrayStackDemo : 栈的模拟
- LinkedStackDemo : 使用链表模拟栈
- Calulator1 : 使用栈模拟计算器(存在问题)
- ReversePolandNotation : 逆波兰表达式计算器的实现
5. 递归(recursion)
- Puzzle : 迷宫问题
- Queue8 : 8皇后问题
6. 排序(sort)
- BubbleSort : 冒泡排序
- SelectSort : 选择排序
- InsertSort : 插入排序
- ShellSort1 : 希尔排序 - 交换法
- ShellSort2 : 希尔排序 - 移动法
- QuickSort : 快速排序 - 尚硅谷版本
- QuickSort2 : 快速排序 - LeetCode版本
- MergeSort : 归并排序
- RadixSort : 基数排序
7. 查找(search)
- SeqSearch : 线性查找
- BinarySearch : 二分查找
- BinarySearch2 : 二分查找 - 解决查找多位数版
- InterpolationSearch : 插值查找
- FibonacciSearch : 斐波那契查找
8. 哈希表(hashtable)
- HashTableDemo : 哈希表(散列)应用
9. 树(tree)
- BinaryTree : 二叉树
- ThreadBinaryTree : 线索化二叉树
- HuffmanTree : 赫夫曼树
- binarySortTree : 二叉排序树
10. 哈夫曼编码(huffmancode)
- HuffmanCode : 赫夫曼编码
- Node : 赫夫曼编码的节点
- FileZip : 使用哈夫曼编码的方式压缩/解压文件
四、Java虚拟机(jvm)
1. 第一章(chapter01)
- 关于栈的架构测试(StackStuTest)
2. 第二章(chapter02)
- 类的加载过程一(HelloLoader)
- 类的加载过程三:初始化的顺序(ClassInitTest)
- 类的加载过程三:类的构造器-对应(ClinitTest)
- 类的加载过程三:初始化时在子父类中的顺序(ClinitTest1)
- 类的加载过程三:初始化时次数(DeadTheadTest)