<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jasper的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Hunny_java</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hunny_java]]></copyright><item><title><![CDATA[MySQL数据增删改操作详解(DML)]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122740096</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122740096</guid><author>Hunny_java</author><pubDate>Sat, 29 Jan 2022 10:34:12 +0800</pubDate><description><![CDATA[外键

如果公共关键字在一个关系中是主关键字，那么这个公共关键字被称为另一个关系的外键
由此可见，外键表示了两个关系之间的相关联系

以另一个关系的外键作主关键字的表被称为主表
具有此外键的表被称为主表的从表



外键创建的方式

删除具有主外键关系的表时，要先删子表，后删主表

创建子表同时创建外键
-- 年级表
create TABLE `grade` (
	`gradeid` INT(10) not NULL auto_increment COMMENT '年级id',
	`gradename` v]]></description><category></category></item><item><title><![CDATA[学会定义和管理MySQL数据对象(DDL)]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122714992</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122714992</guid><author>Hunny_java</author><pubDate>Thu, 27 Jan 2022 11:47:00 +0800</pubDate><description><![CDATA[本章开始MySQL，学习数据定义DDL

目录数据库什么是数据库数据库的作用数据库管理系统( DataBase Management System )数据库总览MySQL 简介操作数据库结构化查询语句分类命令行操作数据库数据字段类型其他属性数据表的类型其他零碎的点
数据库
什么是数据库

长期存放在计算机内,有组织,可共享的大量数据的集合，是一个数据 “仓库”

数据库的作用

实现数据共享
减少数据的冗余度
数据的独立性
数据实现集中控制
数据一致性和可维护性
以确保数据的安全性和可靠性
故障恢复

数.]]></description><category></category></item><item><title><![CDATA[Java注解和反射机制深层剖析]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122642892</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122642892</guid><author>Hunny_java</author><pubDate>Sat, 22 Jan 2022 20:21:41 +0800</pubDate><description><![CDATA[本章主要仔细讲讲注解和反射机制

目录注解内置注解@Override@Deprecated@SuppressWarnings元注解@Target@Retention@Document@Inherited自定义注解引入反射概念之前静态语言 vs 动态语言动态语言静态语言Java文件如何运行类加载类加载器反射得到Class几种方式获得类的信息通过反射，动态创建对象性能检测反射操作范型反射操作注解
注解
内置注解
@Override

定义在 java.lang.Override 中，只适用于修辞方法
表示一个.]]></description><category></category></item><item><title><![CDATA[Java多线程多案例全方位讲解]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122555048</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122555048</guid><author>Hunny_java</author><pubDate>Tue, 18 Jan 2022 10:49:05 +0800</pubDate><description><![CDATA[本章主要是把多线程这块理清楚

目录进程和线程线程创建三种方式继承Thread类(不建议使用，避免OOP单继承局限性)案例：下载图片实现Runnable接口(建议使用，方便同个对象被多个线程使用)案例：下载图片实现Callable接口(了解即可)案例：龟兔赛跑静态代理Lambda表达式函数式接口Lambda表达式的演变创建对象调方法静态内部类局部内部类匿名内部类改为Lamda表达式线程状态线程停止 stop线程休眠 sleep线程礼让 yield线程强制执行 join观测线程状态线程优先级守护线程线程同步.]]></description><category></category></item><item><title><![CDATA[Java中IO流详细整合(含案例)]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122432333</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122432333</guid><author>Hunny_java</author><pubDate>Tue, 11 Jan 2022 14:46:01 +0800</pubDate><description><![CDATA[本章主要详细讲解IO流

目录文件/目录的基本操作IO流基本知识输入输出流原理输入输出流分类节点流类型处理流类型FileInputStreamFileInputStream的基本方法FileInputStream的案例FileOutputStreamFileOutputStream的基本方法FileOutputStream的基本方法的案例文件拷贝FileReader的案例FileWriter的案例处理流讲解缓冲流BufferedInputStream/BufferedOutputStream的案例Buff.]]></description><category></category></item><item><title><![CDATA[Java集合框架|步步解析HashMap底层源码]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122129627</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122129627</guid><author>Hunny_java</author><pubDate>Fri, 24 Dec 2021 15:48:05 +0800</pubDate><description><![CDATA[本章主要详细分析HashMap底层源码

HashMap数据结构(JDK1.8)

数组+链表+红黑树


HashMap的层次关系与继承结构

继承了一个AbstractMap，也就是用来减轻实现Map接口的编写负担。


HashMap的实现接口
public class HashMap&lt;K,V&gt; extends AbstractMap&lt;K,V&gt;
    implements Map&lt;K,V&gt;, Cloneable, Serializable {
  ...
}

.]]></description><category></category></item><item><title><![CDATA[Java集合框架|Map体系和Collections工具类讲解]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122074489</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122074489</guid><author>Hunny_java</author><pubDate>Tue, 21 Dec 2021 22:53:15 +0800</pubDate><description><![CDATA[本章主要是将Map体系和Collections工具类一并梳理，之后会重点攻破HashMap底层源码

目录Map接口Map的异常形式Map的方法Map的案例实现Map接口的实现类HashMap案例实现TreeMap案例实现Collections工具类排序操作查找替换操作设置不可变集合
Map接口
Map的异常形式

给定一个键和一个值，你可以将该值存储在一个 Map 对象之后，你可以通过键来访问对应的值。
当访问的值不存在的时候，方法就会抛出一个 NoSuchElementException 异常。
当对.]]></description><category></category></item><item><title><![CDATA[Java集合框架|Collection体系的Set分支详解]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/122047271</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/122047271</guid><author>Hunny_java</author><pubDate>Mon, 20 Dec 2021 18:29:28 +0800</pubDate><description><![CDATA[title: Java集合框架｜Collection体系的Set分支详解
tags:

Java
categories:
JavaSE
cover: ‘https://cdn.jsdelivr.net/gh/jasper807/picgo/cover/javagather1.png’
abbrlink: 8979a916
date: 2021-12-20 15:52:22


Set接口
Set的特点

无序、无下标和元素不能重复。

Set的方法实现
class Character&lt;T,K&gt;.]]></description><category></category></item><item><title><![CDATA[Java集合框架|泛型知识点全面详解]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121941452</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121941452</guid><author>Hunny_java</author><pubDate>Tue, 14 Dec 2021 22:25:41 +0800</pubDate><description><![CDATA[注：本篇属于Colletion体系插曲，主要目的是全方位梳理泛型的知识点

目录泛型的概念泛型的特性泛型的使用泛型类泛型类的基本格式泛型类的注意事项泛型接口泛型接口的基本格式泛型接口的注意事项泛型通配符协变、逆变和不变数组的协变泛型的不变通配符的协变和逆变协变 &lt;? extends T&gt;逆变 &lt;? super T&gt;通配符?的其他使用泛型方法泛型方法的基本格式泛型类中的泛型方法泛型和静态方法不能实例化一个参数化类型的数组
泛型的概念

泛型，即"参数化类型"，也就是说所操作的数据类型.]]></description><category></category></item><item><title><![CDATA[Java集合框架|Collection体系和核心源码详解(二)]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121885199</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121885199</guid><author>Hunny_java</author><pubDate>Sun, 12 Dec 2021 11:59:16 +0800</pubDate><description><![CDATA[注：详解核心源码 = 逐句解释源码 + 分情况举例说明 + 必要辅助图解

目录Vector实现类Vector方法及案例实现Vector的源码分析(JDk1.8)继承结构和层次关系类中的属性构造方法无参构造 Vector()有参构造 Vector(int initialCapacity)有参构造 Vector(int initialCapacity, int capacityIncrement)有参构造 Vector(Collection&lt;? extends E&gt; c)add方法的源码分析ad.]]></description><category></category></item><item><title><![CDATA[Java集合框架|Collection体系和核心源码详解(一)]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121846333</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121846333</guid><author>Hunny_java</author><pubDate>Thu, 09 Dec 2021 23:17:02 +0800</pubDate><description><![CDATA[目录Collection体系Collection体系 注意事项Collection父接口Collection方法Collection案例实现值得注意：Collection的equals方法并没有重写List接口List方法List案例实现ArrayList实现类ArrayList方法及案例实现ArrayList的数据结构ArrayList的源码分析(JDK1.8)继承结构和层次关系为什么要先继承AbstractList，而让AbstractList.]]></description><category></category></item><item><title><![CDATA[Java知识梳理04|String内存分析(JDK1.8)]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121770838</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121770838</guid><author>Hunny_java</author><pubDate>Tue, 07 Dec 2021 15:40:17 +0800</pubDate><description><![CDATA[目录String的基础知识String的内存分析String str = "Hello"String str = new String ("Hello")String str = "Hello" + "World"String str = new String ("Hello") + new String("World")String 的 intern() 方法
String的基础知识

String是final类，不能被继承，并且其方法都被fin.]]></description><category></category></item><item><title><![CDATA[Java常用类及其常用方法的使用]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121750347</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121750347</guid><author>Hunny_java</author><pubDate>Mon, 06 Dec 2021 17:12:37 +0800</pubDate><description><![CDATA[Object类
Object类的结构

clone()方法
Java语言中创建对象的方式

使用new操作符创建一个对象

new操作符的本意是分配内存。程序执行到new操作符时， 首 先去看new操作符后面的类型，因为知道了类型，才能知道要分配多大的内存空间。分配完内存之后， 再调用构造函数，填充对象的各个域，这一步叫做对象的初始化，构造方法返回后，一个对象创建完 毕，可以把他的引用(地址)发布到外部，在外部就可以使用这个引用操纵这个对象。
.]]></description><category></category></item><item><title><![CDATA[Java知识梳理03|内部类详解]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121132522</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121132522</guid><author>Hunny_java</author><pubDate>Wed, 03 Nov 2021 22:42:28 +0800</pubDate><description><![CDATA[目录一.内部类的定义二.内部类的种类1.成员内部类2.局部内部类3.匿名内部类4.静态内部类
一.内部类的定义

可以将一个类的定义放在另一个类的定义内部，这就是内部类。

二.内部类的种类

在 Java 中内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类。

1.成员内部类

成员内部类定义格式。

class A{
    class B{

    }
}


成员内部类无条件访问外部类的属性和方法。

public class Outer {
    private String na]]></description><category></category></item><item><title><![CDATA[Java知识梳理02|关键字及部分重点作用详解]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/121043696</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/121043696</guid><author>Hunny_java</author><pubDate>Fri, 29 Oct 2021 22:07:25 +0800</pubDate><description><![CDATA[目录一.Java关键字的概念二.部分关键字重点作用详解1.访问控制①包结构2.static①static 静态变量静态变量值的问题②static 静态方法③其他注意事项④匿名代码块和静态代码块⑤静态导入3.this①区分局部变量和成员变量②return this③this把当前对象传递给其他方法④this可以用于传递多个参数⑤在构造器中调用构造器需要使用this⑥其他注意事项4.super①静态方法中不能用this和super关键字②子类重写父类的变量③子类重写父类的方法④super用来调用父类的构造器⑤s]]></description><category></category></item><item><title><![CDATA[Java异常|异常体系结构和处理机制]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/120982262</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/120982262</guid><author>Hunny_java</author><pubDate>Tue, 26 Oct 2021 22:00:15 +0800</pubDate><description><![CDATA[目录一.异常的概念1.异常发生的原因2.异常的三种类型二.异常体系结构三.异常之间的区别和联系1.Error2.Exception三.检查异常和不受检查异常1.检查异常2.不受检查异常3.区别四.Java异常处理机制1.抛出异常2.捕获异常五.异常处理5个关键字1.try-catch语法形式使用多重的catch语句嵌套try语句2.throw语法形式3.throws语法形式4.finallytry, catch,finally ,return 执行顺序六.自定义异常1.自定义异常类的步骤
一.异常的概念

]]></description><category></category></item><item><title><![CDATA[Java面向对象|封装、继承和多态]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/120854191</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/120854191</guid><author>Hunny_java</author><pubDate>Tue, 19 Oct 2021 20:41:40 +0800</pubDate><description><![CDATA[目录一.什么是面向对象二.抽象(Abstract)三.封装(Encapsulation)1.封装的步骤2.作用和意义3.方法的重载四.继承1.继承的概述2.继承的格式3.extends关键字4.implements关键字5.super 与 this 关键字5.final关键字6.重写五.多态1.多态的概述2.多态存在的三个条件3.重写、重载和多态的关系4.无法表现多态特性的三种情况5.方法绑定6.instance of和类型转换六.接口和抽象类1.abstract修饰符2.接口和抽象类的区别3.接口的特征4]]></description><category></category></item><item><title><![CDATA[Java数组|数组的声明创建和使用]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/120733516</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/120733516</guid><author>Hunny_java</author><pubDate>Tue, 12 Oct 2021 22:15:28 +0800</pubDate><description><![CDATA[目录一.数组的定义二.数组的基本特点三.数组的声明创建1.声明数组变量2.创建数组3.内存分析四.数组初始化1.静态初始化2.动态初始化3.默认初始化五.多维数组六.Arrays类七.常见排序算法1.冒泡排序2.选择排序
一.数组的定义

数组是相同类型数据的有序集合。
数组描述的是相同类型的若干个数据，按照一定的先后次序排列组合而成。
其中，每一个数据称作一个数组元素，每个数组元素可以通过一个下标来访问它们。

二.数组的基本特点

数组的长度是确定的。数组一旦被创建，它的大小就是不可以改变的。
数组元素]]></description><category></category></item><item><title><![CDATA[Java方法|方法的定义、调用和重载]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/120421814</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/120421814</guid><author>Hunny_java</author><pubDate>Wed, 22 Sep 2021 20:02:40 +0800</pubDate><description><![CDATA[目录一.方法的定义1.什么是方法2.设计方法的原则3.方法的优点4.方法的定义二.方法的调用三.方法的重载四.可变参数五.递归
一.方法的定义
1.什么是方法


在我们的日常生活中，方法可以理解为要做某件事情，而采取的解决办法。而Java方法是语句的集合，它们在一起执行一个功能。


Java中方法是解决一类问题的步骤的有序组合，包含于类或对象中，在程序中被创建，在其他地方被引用。


我们经常使用到 System.out.println()中，println() 是一个方法。System 是系统类。 o]]></description><category></category></item><item><title><![CDATA[Java流程控制|顺序、选择和循环结构]]></title><link>https://blog.youkuaiyun.com/Hunny_java/article/details/120417903</link><guid>https://blog.youkuaiyun.com/Hunny_java/article/details/120417903</guid><author>Hunny_java</author><pubDate>Wed, 22 Sep 2021 16:45:00 +0800</pubDate><description><![CDATA[目录一.顺序结构二.选择结构1.if单选择结构2.if双选择结构3.if多选择结构4.嵌套的if结构5.switch多选择结构三.循坏结构1.while循环2.do…while 循环3.for循环4.增强for循环
一.顺序结构

Java的基本结构就是顺序结构，除非特别指明，否则就按照顺序一句一句执行。顺序结构是最简单的算法结构

public static void main(String[] args) {
    System.out.println("one");
    System.out.p]]></description><category></category></item></channel></rss>