Skip to content

CrazyFeirouz/CodeLife_Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

CodeLife_Java

Java 学习记录 —— 记录相关学习内容

个人学习思维导图
Java基础

访问密码(feirouz)→ 点击跳转思维导图

数据结构与算法 - Java版

访问密码(feirouz)→ 点击跳转思维导图


一、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)

About

Java学习记录

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published