# JavaStudy
**Repository Path**: wuruixuan/JavaStudy
## Basic Information
- **Project Name**: JavaStudy
- **Description**: Java 基础学习 Demo
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-04-22
- **Last Updated**: 2023-04-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JavaStudy Index
## 基本
单例模式 - SingleDemo
简单工厂模式 - FactoryDemo
静态代理模式 - DelegateDemo
适配器模式 - AdapterDemo
内部类 - InnerClassDemo
异常处理 - ExceptionDemo1
自定义异常 - ExceptionDemo2
StringBuffer类 - StringBufferDemo
国际化 - local/LocaleDemo
Math、Random、Arrays工具类 - MathRandomArraysDemo
二分查找算法 - BinarySearchDemo
日期时间类 - DateDemo
对象比较器 - ComparableDemo
对象的克隆 - CloneDemo
二叉树数据结构 - BinaryTreeDemo
装饰者模式 - decorator/DecoratorDemo
常见字符编码 - CodeDemo
List类 - ListDemo
Set类 - SetDemo
Collection迭代 - CollectionDemo
堆栈队列 - StackQueueDemo
Map类 - MapDemo
反射 - reflection/ReflectionDemo
动态代理模式 - reflection/DynamicDelegateDemo
内省 - reflection/IntrospectorDemo
泛型 - GenericDemo
正则表达式 - RegexDemo
枚举 - EnumDemo
注解 - AnnotationDemo
## 文件io
文件操作 - io/FileDemo
字节流 - io/ByteStreamDemo
字符流 - io/CharStreamDemo
文件复制 - io/CopyFileDemo
转换流 - io/ChangeStreamDemo
缓冲流 - io/BufferedStreamDemo
打印流 - io/PrintStreamDemo
对象流 - io/ObjectStreamDemo
字节数组流 - io/ByteArrayStreamDemo
数据流 - io/DataStreamDemo
字符串流 - io/StringStreamDemo
随机访问文件 - io/RandomAccessFileDemo
NIO - io/NIODemo
## 多线程
多线程 - thread/ThreadDemo
线程同步 - thread/SynchronizedDemo
死锁 - thread/DeadThreadDemo
中断线程 - thread/InterruptThreadDemo
多线程生产者与消费者案例 - thread/ThreadExampleDemo
线程池 - thread/ExecutorDemo
## TCP
Socket客户端 - tcp/EchoClientDemo
Socket服务器端 - tcp/EchoServerDemo
Socket多客户端的服务器端 - tcp/MutipleServerDemo
Socket客户端之间通信 - tcp/CommunicateClientDemo
Socket服务器端转发通信消息给指定客户端 - tcp/CommunicateServerDemo
## UDP
UDP接收端 - udp/UDPClientDemo
UDP发送端 - udp/UDPServerDemo
## XML
DOM解析 - xml/DomDemo
JDOM解析 - xml/JDomDemo
SAX解析 - xml/SaxDemo
DOM4J解析 - xml/Dom4jDemo
序列化与反序列化 - xml/XMLCoderDemo
XStream序列化/反序列化工具 - xml/XStreamDemo
## JDBC
JDBC - jdbc/JDBCDemo
封装JDBC工具类 - jdbc/MyDbUtils
DAO设计模式 - jdbc/DaoDemo
调用存储过程 - jdbc/ProcedureDemo
开源工具DbUtils - jdbc/DbUtilsDemo
## 四种引用
软引用 - reference/SoftReferenceDemo
弱引用 - reference/WeakReferenceDemo
虚引用 - reference/PhantomReferenceDemo
终结器引用 - reference/FinalReferenceDemo
## 高级
惰性初始化 - LazyHolderDemo
双重检查锁 - DoubleCheckedLockingDemo
happens-before - HappensBeforeDemo
CAS乐观锁 - CASDemo
synchronized悲观锁 - SynchronizedDemo
原子对象 - AtomicDemo
## 工具
执行DOS命令 - DosDemo
读写Excel - ExcelDemo
读取网络配置 - IPConfigDemo
# 项目运行说明
1. 用eclipse(for Java Developers)打开项目目录
2. 设置eclipse打开文件的编码:Window -> Preferences -> General -> Workspace -> Text file encoding -> Other -> UTF-8
3. 设置eclipse字体脚本:Window -> Preferences -> General -> Appearance -> Colors and Fonts -> Basic -> Text Font -> Edit -> 脚本 -> 中欧字符
4. 运行:选择任意Demo -> 鼠标右键 -> Run As -> Java Application
# 安装JDK
1. 下载地址:https://www.oracle.com/cn/java/technologies/javase-jdk8-downloads.html
2. 选择文件:jdk-8u181-windows-i586.exe
3. 配置系统环境变量,运行dos命令javac检查是否配置正确
# 安装eclipse(for Java Developers)
1. 下载地址:https://www.eclipse.org/downloads/packages/release/2018-09/r
2. 选择文件:Eclipse IDE for Java Developers
# 安装MySQL
1. 下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html
2. 选择文件:Windows (x86, 32-bit), MSI Installer