<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JinxLin的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JinxLin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JinxLin]]></copyright><item><title><![CDATA[Mysql你应该知道这些]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108437989</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108437989</guid><author>JinxLin</author><pubDate>Sun, 06 Sep 2020 22:32:56 +0800</pubDate><description><![CDATA[数据库概念：
存储数据用文件就可以了，为什么还要弄个数据库?
文件保存数据有以下几个缺点：

文件的安全性问题
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便

数据库存储介质：

磁盘
内存

为了解决上述问题，出现了更利于管理数据的软件，数据库，它能更有效的管理数据。数据库可以提供远程服务，即通过远程连接来使用数据库，因此也称为数据库服务器。
数据库分类
数据库大体可以分为 关系型数据库 和 非关系型数据库
关系型数据库（RDBMS）：是指采用了关系模型来组织数据的数据库。 简]]></description><category></category></item><item><title><![CDATA[计算机网络：软件结构、通信协议、TCP通信程序]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108391522</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108391522</guid><author>JinxLin</author><pubDate>Thu, 03 Sep 2020 20:49:59 +0800</pubDate><description><![CDATA[计算机网络
软件结构
C/S结构：是指客户端和服务端结构，常见的程序有QQ、安全软件管家等。
B/S结构：是指浏览器和服务器结构，常见浏览器有谷歌、火狐等。
网络通信协议
通过计算机网络可以使多台计算机实现连接，位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。它对数据的传输格式、传输速率、传输步骤做了统一的规定，通信双方必须同时遵守才能完成数据交换
TCP/IP协议
传输控制协议/因特网互联协议。定义了计算机如何连入因特网，以及数据如何在他们之间传输的标准。
TCP是面向连接的通信协议，即在传]]></description><category></category></item><item><title><![CDATA[Java基础：转换流以及流的序列化、反序列化，打印流]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108331625</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108331625</guid><author>JinxLin</author><pubDate>Mon, 31 Aug 2020 23:21:52 +0800</pubDate><description><![CDATA[转换流
转换流分为两个：

OutputStreamWriter：是字符流通向字节流的桥梁：可使用指定的charset将要写入流中的字符编码成字节。
InputStreamReader:是字节流通向字符流的桥梁，它使用指定的charset读取字节并将其解码为字符

OutputStreamWriter
java.io.OutputStreamWriter extends Writer
    OutputStreamWriter：是字符流通向字节流的桥梁：可使用指定的charset将要写入流中的字符编码成字]]></description><category></category></item><item><title><![CDATA[Java基础：BufferedStream缓冲流]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108311696</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108311696</guid><author>JinxLin</author><pubDate>Sun, 30 Aug 2020 21:57:15 +0800</pubDate><description><![CDATA[BufferedStream缓冲流
BufferedStream缓冲流是对基础流的增强
BufferedOutputStream:字节缓冲输出流
java.io.BufferedOutputStream extends OutputStream
    BufferedOutputStream:字节缓冲输出流
    继承自父类的共性成员方法:
        public void close() 关闭此输出流并释放与此流相关的任何系统资源
        public void flush() 刷新此输]]></description><category></category></item><item><title><![CDATA[Java基础：字符输入流Reader与字符输出流Writer，续写换行，jdk7、9的新特性]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108288248</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108288248</guid><author>JinxLin</author><pubDate>Fri, 28 Aug 2020 23:07:43 +0800</pubDate><description><![CDATA[字符输入流Reader
java.io.Reader 字符输入流：是字符输入流的最顶层的父类，定义了一些共性的成员方法，是一个抽象类
共性的成员方法：

int read()读取单个字符并返回
int read(char[] chars)一次读取多个字符，将字符读入数组
void close()关闭该流并释放与之关联的所有资源

java.io.FileReader extends InputStreamReader extends Reader
FileReader:文件字符输入流
作用：把硬盘文件中的数]]></description><category></category></item><item><title><![CDATA[Java基础：字节输入流 InputStream与文件复制练习：一读一写]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108262188</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108262188</guid><author>JinxLin</author><pubDate>Thu, 27 Aug 2020 15:47:57 +0800</pubDate><description><![CDATA[InputStream
java.io.InputStream:字节输入流
此抽象类是表示字节输入流的所有类的超类
定义了所有子类共性的方法：

int read()从输入流中读取数据的下一个字节
int read(byte[] b)从输入流中读取一定数量的字节，并将其存储在缓冲区数组b中

java.io.FileInputStream extends InputStream
FileInputStream:文件字节输入流
作用：把硬盘文件中的数据，读取到内存中使用
构造方法：
FileInputStre]]></description><category></category></item><item><title><![CDATA[Java基础：I/O流基本概念与OutputStream类]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108243721</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108243721</guid><author>JinxLin</author><pubDate>Wed, 26 Aug 2020 17:24:32 +0800</pubDate><description><![CDATA[I/O流
内存：临时存储
硬盘：永久存储
I/O：input/output：输入(读取)/输出(写入)；输入就是把硬盘中的数据，读取到内存中使用，输出就是把内存中的数据，写入到硬盘中保存。
流：1个字符=2个字节，1个字节=8个二进制位，输入流/输出流，数据类型分为：字节流和字符流




流
输入流
输出流




字节
InputStream
OutputStream


字符
reader
writer


OutputStream类
java.io.OutputStream :此抽象类是表示输出字节]]></description><category></category></item><item><title><![CDATA[递归的简单了解]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108223914</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108223914</guid><author>JinxLin</author><pubDate>Tue, 25 Aug 2020 16:27:49 +0800</pubDate><description><![CDATA[递归
递归：指在当前方法内调用自己的这种现象
分类：
直接递归：方法自身直接调用自己
间接递归：a方法调用b方法，b方法调用a方法。
注意事项：
递归一定要有条件限定，保证递归能够停止下来，否则会发生栈内存溢出
在递归中虽然有限定条件，但是递归次数不能太多，否则会发生栈内存溢出
构造方法禁止递归
递归的使用前提：
当调用方法时，方法主体不变，每次调用方法的参数不同，可以使用递归
public class Demo01Recursion {
    public static void main(String]]></description><category></category></item><item><title><![CDATA[Java基础：File类概述及方法]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108185337</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108185337</guid><author>JinxLin</author><pubDate>Mon, 24 Aug 2020 12:05:43 +0800</pubDate><description><![CDATA[##File类
File类简介
java.io.File类
文件和目录路径名的抽象表示形式
java把电脑中的文件和文件夹(目录)封装为了一个File类，我们可以使用File类对文件和文件夹进行操作
我们可以使用File类的方法
创建一个文件/文件夹
删除文件/文件夹
获取文件/文件夹
判断文件/文件夹是否存在
对文件夹进行遍历
获取文件大小
File类是一个与系统无关的类，任何操作系统都可以使用这个类中的方法
重点：
file文件
directory文件夹/目录
path路径
File类的静态方法

st]]></description><category></category></item><item><title><![CDATA[Java基础：函数编程思想，Lambda表达式]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108185085</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108185085</guid><author>JinxLin</author><pubDate>Sun, 23 Aug 2020 16:57:24 +0800</pubDate><description><![CDATA[函数式编程思想：
只要能获取到结果，谁去做，怎么做都不重要，重视的是结果，不重视过程

面向对象思想：
做一件事，找一个能解决这件事的对象，调用对象的方法，完成事情。
public class Demo01 {
    public static void main(String[] args) {
        //使用匿名内部类的方式，实现多线程
        new Thread(new Runnable() {
            @Override
            public v]]></description><category></category></item><item><title><![CDATA[Java基础：华为云java基础函数题（二）]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108174900</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108174900</guid><author>JinxLin</author><pubDate>Sat, 22 Aug 2020 21:27:10 +0800</pubDate><description><![CDATA[数字转汉字大写
描述
在代码段中，使用Java编程语言，将输入五位以下的数字金额，转换成汉字大写形式。
如：12345
壹万贰仟叁百肆拾伍元
0.1234
零元点壹贰叁肆
12
壹拾贰元
import java.io.*;
import java.util.*;

public class CnUpper {
    // 整数部分
    private String integerPart;
    // 小数部分
    private String floatPart;
    // 将数字转化为汉]]></description><category></category></item><item><title><![CDATA[Java基础：华为云java基础函数题（一）]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108174751</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108174751</guid><author>JinxLin</author><pubDate>Sat, 22 Aug 2020 21:21:18 +0800</pubDate><description><![CDATA[判断素数
判断素数的方法：用一个数分别去除2到sqrt(这个数)，如果能被整除，则表明此数不是素数，反之是素数。
通过键盘输入m n的值，判断m~n之间的素数，打印输出这些素数的值。
import java.util.Scanner;

class Test {

	public static void main(String[] args) {

		int m;
		int n;		
		Scanner scanner = new Scanner(System.in);
		Scanner scan =]]></description><category></category></item><item><title><![CDATA[java基础：等待唤醒机制概念及案例、线程池应用]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108156686</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108156686</guid><author>JinxLin</author><pubDate>Fri, 21 Aug 2020 20:53:21 +0800</pubDate><description><![CDATA[等待唤醒机制
线程之间的通信：
**概念：**多个线程在处理同一个资源，但是处理的动作(线程的任务)不相同。
要想保证线程间通信有效利用资源，就要使用一些手段–等待唤醒机制
等待唤醒机制：是多个线程之间的一种协作机制。就是在一个线程进行规定操作后，就进入等待状态waiting，等待其他线程执行完
他们的指定代码过后再将其唤醒notify，在有多个线程进行等待时，如果需要，可以使用notifyAll()来唤醒所有的等待线程。
调用wait和notify方法要注意的细节

1.wait方法和notify方法需要]]></description><category></category></item><item><title><![CDATA[Java基础：多线程安全问题及其解决方法、线程的六种状态]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108096027</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108096027</guid><author>JinxLin</author><pubDate>Wed, 19 Aug 2020 21:09:44 +0800</pubDate><description><![CDATA[多线程安全问题
线程安全问题的产生
线程安全问题：

单线程程序是不会出现线程安全问题
多线程程序没有访问共享数据不会产生问题
多线程访问了共享的数据，就会产出线程安全问题

模拟卖票：

创建三个线程，同时开启，对共享的票进行出售
会发现当我们多个线访问同一个资源时，且多个线程中对资源有写的操作，就容易出现线程安全问题。(重复票与不存在票)
要解决线程并发访问同一资源的安全性问题，也就是解决重复票与不存在票问题，Java提供了同步机制来解决

注意：

线程安全问题是不能产生的，我们可以让一个线程在访问共]]></description><category></category></item><item><title><![CDATA[Java基础：Thread类常用方法，Thread与Runnable的区别，匿名内部类实现线程的创建]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108074557</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108074557</guid><author>JinxLin</author><pubDate>Tue, 18 Aug 2020 12:41:05 +0800</pubDate><description><![CDATA[Thread类常用方法
一、获取线程的名称：
1.使用Thread类中的方法getName()


  String getName()返回该线程的名称



2.可以先获取到当前正在执行的线程，使用线程中的方法getName()获取线程的名称


  static Thread currentThread()返回对当前正在执行的线程对象的引用



/*线程的名称：
*       主线程：main
*       新线程：Thread-0,Thread-1,...*/
public class Demo]]></description><category></category></item><item><title><![CDATA[Java基础：初识线程，进程，了解主线程与创建多线程的两种方式]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108065428</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108065428</guid><author>JinxLin</author><pubDate>Mon, 17 Aug 2020 22:05:07 +0800</pubDate><description><![CDATA[线程相关概念
并行与并发
概念阶段：

并行：指两个或多个事件在同一时刻发生。同时执行
并发：指两个或多个事件在同一时间段内发生。交替执行


进程与线程
进程：是指一个内存中运行的应用程序，每个进程都有一个独立的内存空间，一个应用程序可以同时运行多个进程；
进程是程序的一次执行过程，是系统运行程序的基本单位；系统运行一个程序即是一个进程从创建、运行到消亡的过程。
线程：线程是指进程中的一个执行单元，负责当前进程中程序的执行，一个进程中至少有一个线程，一个进程中是可以有多个线程的，这个应用程序可以称之为多线]]></description><category></category></item><item><title><![CDATA[Java基础：异常的注意事项与自定义异常的概念、使用。]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108051960</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108051960</guid><author>JinxLin</author><pubDate>Mon, 17 Aug 2020 11:17:48 +0800</pubDate><description><![CDATA[异常的注意事项
1.多个异常使用捕获应该怎样处理？

1.多个异常分别处理
2.多个异常一次捕获，多次处理
3.多个异常一次捕获一次处理

package demo02;
import java.util.List;
public class Demo01 {
    public static void main(String[] args) {
        //1.多个异常分别处理
        try{
            int[] arr = {1,2,3};
            S]]></description><category></category></item><item><title><![CDATA[Java基础：异常关键字的解析与应用、Object类中与异常相关的静态方法]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108042998</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108042998</guid><author>JinxLin</author><pubDate>Sun, 16 Aug 2020 21:02:10 +0800</pubDate><description><![CDATA[异常处理的关键字
java异常处理的五个关键字：try、catch、finally、throw、throws
throw关键字
throw关键字
作用：

可以使用throw关键字在指定的方法中抛出指定的异常

使用格式：

throw new xxxException(“异常产生的原因”);

注意：

1.throw关键字必须写在方法的内部
2.throw关键字后面new的对象必须是Exception或者Exception的子类对象
3.throw关键字抛出指定的异常对象，我们就必须处理这个异常对象

]]></description><category></category></item><item><title><![CDATA[Java中异常的概念、异常的分类与异常产生过程的解析]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108028182</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108028182</guid><author>JinxLin</author><pubDate>Sat, 15 Aug 2020 21:09:38 +0800</pubDate><description><![CDATA[异常概念
异常：指的是程序在执行过程中，出现的非正常的情况，最终会导致JVM的非正常停止
在Java等面向对象的编程语言中，异常本身是一个类，产生异常就是创建异常对象并抛出一个异常对象。
Java处理异常的方式是中断处理。
异常指的并不是语法错误，语法错了，编译不通过，不会产生字节码文件，根本不能运行
异常的体系
异常中有一个超类，就是Throwable，他又有两个子类，Error和Exception。
Throwable体系：
Error：严重错误error，无法通过处理的错误，只能事先避免，好比绝症
E]]></description><category></category></item><item><title><![CDATA[Java基础：Map集合案例“斗地主”，实现从大到小看牌]]></title><link>https://blog.youkuaiyun.com/JinxLin/article/details/108025955</link><guid>https://blog.youkuaiyun.com/JinxLin/article/details/108025955</guid><author>JinxLin</author><pubDate>Sat, 15 Aug 2020 17:48:48 +0800</pubDate><description><![CDATA[之前使用集合，模拟了斗地主的进程。

集合案例“斗地主”

今天新学习了Map集合，增加排序功能

package Gamedoudizhu;

import javax.swing.plaf.synth.SynthOptionPaneUI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;

/*斗地主案例：有序版本
* 1.准备牌
* 2.洗]]></description><category></category></item></channel></rss>