<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Llyon的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Llyon</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Llyon]]></copyright><item><title><![CDATA[Ajax中POST和GET的区别]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/108613383</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/108613383</guid><author>Llyon</author><pubDate>Wed, 16 Sep 2020 00:30:05 +0800</pubDate><description><![CDATA[Ajax中POST和GET的区别
Get和Post都是向服务器发送的一种请求，只是发送机制不同。


GET请求会将参数跟在URL后进行传递，而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然在Ajax请求中，这种区别对用户是不可见的。


首先是"GET方式提交的数据最多只能是1024字节"，因为GET是通过URL提交数据，那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上，URL不存在参数上限的问题，HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对]]></description><category></category></item><item><title><![CDATA[AJAX]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/108601807</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/108601807</guid><author>Llyon</author><pubDate>Tue, 15 Sep 2020 16:13:02 +0800</pubDate><description><![CDATA[AJAX
支持异步请求, 支持页面的局部刷新
核心对象 XMLHttpRequest 对象
同步和异步

同步现象：客户端发送请求到服务器端，当服务器返回响应之前，客户端都处于等待卡死状态
异步现象：客户端发送请求到服务器端，无论服务器是否返回响应，客户端都可以随意做其他事情，不会被卡死。get和post都是异步。
JQuery发送ajax请求
$.get() – 只能发送异步请求, 默认字符集:utf-8
		$("#btn1").click(function () {
                /]]></description><category></category></item><item><title><![CDATA[JQuery基础]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/108594888</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/108594888</guid><author>Llyon</author><pubDate>Tue, 15 Sep 2020 10:34:59 +0800</pubDate><description><![CDATA[JQuery基础
使用
jQuery -&gt; 函数 $ -&gt; jQuery
&lt;script src="js/jquery-1.11.0.min.js"&gt;&lt;/script&gt;
&lt;script&gt;
    $(function () {
        $("#div1").text("新的内容");
    })
&lt;/script&gt;
&lt;body&gt;
    &lt;div id="div1"&gt;div1&lt;/div&gt;
    &lt]]></description><category></category></item><item><title><![CDATA[父子类代码执行顺序]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/108470107</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/108470107</guid><author>Llyon</author><pubDate>Tue, 08 Sep 2020 15:41:10 +0800</pubDate><description><![CDATA[父子类执行顺序：父类静态代码块，子类静态代码块，父类构造代码块，父类构造方法，子类构造代码块，子类构造方法，普通方法
单类执行顺序：静态代码块，构造代码块，构造方法，普通方法

...]]></description><category></category></item><item><title><![CDATA[Throw和Throws的区别]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/108466600</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/108466600</guid><author>Llyon</author><pubDate>Tue, 08 Sep 2020 13:17:49 +0800</pubDate><description><![CDATA[Throw：
作用在方法内，表示抛出具体异常，由方法体内的语句处理。
具体向外抛出的动作，所以它抛出的是一个异常实体类。若执行了Throw一定是抛出了某种异常。
Throws：
作用在方法的声明上，表示如果抛出异常，则由该方法的调用者来进行异常处理。主要的声明这个方法会抛出某种类型的异常，让它的使用者知道捕获异常的类型。
1、try…catch(捕获处理机制)；
2、throws(冒泡处理机制).
注意细节：使用try…catch块捕获时可以没有catch块,但当没用catch块的时候必须得有finally]]></description><category></category></item><item><title><![CDATA[线程中start方法和run方法的区别]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/108466564</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/108466564</guid><author>Llyon</author><pubDate>Tue, 08 Sep 2020 13:11:04 +0800</pubDate><description><![CDATA[1.start方法
用 start方法来启动线程，是真正实现了多线程， 通过调用Thread类的start()方法来启动一个线程，这时此线程处于就绪（可运行）状态，并没有运行，一旦得到cpu时间片，就开始执行run()方法。但要注意的是，此时无需等待run()方法执行完毕，即可继续执行下面的代码。所以run()方法并没有实现多线程。
2.run方法
run()方法只是类的一个普通方法而已，如果直接调用Run方法，程序中依然只有主线程这一个线程，其程序执行路径还是只有一条，还是要顺序执行，还是要等待run方法]]></description><category></category></item><item><title><![CDATA[方法引用、RandomAccessFile（了解）]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107897034</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107897034</guid><author>Llyon</author><pubDate>Sun, 09 Aug 2020 17:54:42 +0800</pubDate><description><![CDATA[方法引用
方法引用: Lambda 的简化
1.方法引用是对Lambda的优化, 换句话说是在Lambda内部调用了方法
2.Lambda内部调用的方法使用的参数, 就是Lambda传递进来的参数
3.方法引用也遵循了之前学习的面向对象的理论知识
普通方法需要对象来调用
静态方法需要类来调用
public static void print(String s, Printable p) {
        p.print(s);
    }

    public static void main(Stri]]></description><category></category></item><item><title><![CDATA[属性集 常用函数式接口 stream流]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107895734</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107895734</guid><author>Llyon</author><pubDate>Sun, 09 Aug 2020 17:11:43 +0800</pubDate><description><![CDATA[属性集
Properties, 仅支持String类型的属性映射
extends Hashtable implements Map
key - value
API
加载属性集
void load(Reader)
void load(InputStream)
   // 1.创建属性集对象
        Properties pro = new Properties();
        // "root" "root"
        // 2.通过流加载属性集
方法一   String path = D]]></description><category></category></item><item><title><![CDATA[字节流 字符流 对象流]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107891037</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107891037</guid><author>Llyon</author><pubDate>Sun, 09 Aug 2020 11:23:32 +0800</pubDate><description><![CDATA[字节流
用来做文件复制
以单位来分: 字节流 字符流
以层级来分: 底层流 包装流
字节流: InputStream/OutputStream
子类: FileInputStream/FileOutputStream
构造方法
@Test
    public void test01InputStream() throws FileNotFoundException {
        InputStream is = new FileInputStream(new File("a.txt"));
    ]]></description><category></category></item><item><title><![CDATA[File -- 文件类]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107880422</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107880422</guid><author>Llyon</author><pubDate>Sat, 08 Aug 2020 16:05:50 +0800</pubDate><description><![CDATA[File – 文件类
注意:File – 文件类,但不仅仅只表示文件,也可以是目录/文件夹
构造方法
1.new File(String 文件路径)
注意: new 出来的File对象, 只是在JVM内存中有一个对象而已，和本地磁盘有没有这个文件, 无关 !a.txt不一定存在
@Test
    public void test01(){
        // 传入文件路径, 构造File对象
        // 注意: new 出来的File对象, 只是在JVM内存中有一个对象而已
        /]]></description><category></category></item><item><title><![CDATA[JUnit - 单元测试(可取代主方法进行运行)]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107878237</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107878237</guid><author>Llyon</author><pubDate>Sat, 08 Aug 2020 13:00:08 +0800</pubDate><description><![CDATA[JUnit单元测试
1.引:
一个类中只能有一个主方法,当需要测试很多东西时就显得很不方便,这是就引入了JUnit单元测试,一个小的单元模块,一个类里可以有很多个JUnit单元,可以取代主方法运行.
2.单元测试 -&gt; 以方法为单位, 可以取代主方法
3.常见的测试方法有:
System.out.println(); -&gt; 打桩测试
Debug -&gt; 断点测试
JUnit -&gt; 单元测试
原理
别人写好的代码, 我们想要使用
1.将别人写好的代码工程, 打包 jar 文件
是将编译后]]></description><category></category></item><item><title><![CDATA[可变长参数 -- 可取代数组]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107878219</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107878219</guid><author>Llyon</author><pubDate>Sat, 08 Aug 2020 12:51:41 +0800</pubDate><description><![CDATA[可变长参数
参数类型… 参数名 -&gt; 取代数组
int[] arr -&gt; int… arr
JDK1.5后, 修改为可变长参数
1.方法中, 除了可变长参数, 还有别的参数, 可变长参数必须放在参数列表最后
2.而且一个方法中, 只能有一个可变长参数
传入n个整数值, 将传入的整数相加求和, 并返回
public static void main(String[] args) {
        sum(2, 4);
        sum(1,2,3,4,5);
        sum(1);]]></description><category></category></item><item><title><![CDATA[Lambda表达式 --- 代码的简化]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107877521</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107877521</guid><author>Llyon</author><pubDate>Sat, 08 Aug 2020 12:09:40 +0800</pubDate><description><![CDATA[Lambda表达式 — 代码的简化
语法 使用前提
引入
面向对象思想 – 什么对象,做了什么,结果是什么
函数式思想 – 强调做什么,而不是以什么形式做
语法
(参数列表)-&gt;{一些代码}
1.参数列表 — 表示要重写的抽象方法的参数列表
2.一些代码 — 要重写的方法的方法体
3."-&gt;" — 固定语法
使用前提
1.实现一个接口;
2.接口中只有一个抽象方法(如Runnable(I),Comparator(I) );但接口中默认/静态/私有方法是可以有的,是随意的.
3.接口对象是作为方法]]></description><category></category></item><item><title><![CDATA[线程Thread 线程池]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107875106</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107875106</guid><author>Llyon</author><pubDate>Sat, 08 Aug 2020 11:41:51 +0800</pubDate><description><![CDATA[线程Thread
相关概念
1.程序:安装的软件,例如QQ,微信,IDEA等.
2.进程:在运行的程序.
3.线程:进程中多个同时在执行的任务,如360杀毒软件同时执行病毒查杀,垃圾清理,加速等任务.
&lt;1&gt;并行:通过一时间同时发生.
&lt;2&gt;并发:微观上的交替运行–同一时间段内发生,很短的时间段,看起来是同时发生的
4.多线程的特点–并发.
线程的构造方法
1.new 自定义线程类 ();–自定义类的构造方法,随意
2.new Thread();
3.new Thread(Strin]]></description><category></category></item><item><title><![CDATA[错误Error类和异常Exception类,以及异常的处理]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107871234</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107871234</guid><author>Llyon</author><pubDate>Sat, 08 Aug 2020 09:38:43 +0800</pubDate><description><![CDATA[异常Exception
异常通常分为未检查/运行时异常,和已检查/编译时异常
未检查/运行时异常RuntimeException()
1.未检查/运行时异常RuntimeException()的常见的三个子类:
ArrayIndoxOutOfBoundsException();–数组下标越界异常
ClassCastException();–类型转换异常
NullPointerException();–空指针异常
2.未检查/运行时异常RuntimeException()的特点:
不用检查,可处理可不处理,通]]></description><category></category></item><item><title><![CDATA[输入某人生日，格式为“yyyy-MM-dd“，输出到现在为止经过了多少周。]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107700352</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107700352</guid><author>Llyon</author><pubDate>Thu, 30 Jul 2020 20:42:11 +0800</pubDate><description><![CDATA[输入某人生日，格式为"yyyy-MM-dd"，输出到现在为止经过了多少周。
public class Test03 {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Scanner sc = new Scanner(System.in);
        System.ou]]></description><category></category></item><item><title><![CDATA[输入一个数学计算表达式，如:1+2  * 然后输出计算后的结果:1+2=3  * 这里计算表达式只计算一次即可，可以使用加减乘除任意一个,可以进行小数运算。]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107697574</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107697574</guid><author>Llyon</author><pubDate>Thu, 30 Jul 2020 19:10:57 +0800</pubDate><description><![CDATA[正则表达式的应用:
输入一个数学计算表达式，如:1+2
然后输出计算后的结果:1+2=3
这里计算表达式只计算一次即可，可以使用加减乘除任意一个,可以进行小数运算。
public class Test07 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个数学计算表达式，如:1+2");
        Stri]]></description><category></category></item><item><title><![CDATA[HashMap TreeMap Hashtable LinkedHashMap的区别]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107629946</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107629946</guid><author>Llyon</author><pubDate>Tue, 28 Jul 2020 10:12:33 +0800</pubDate><description><![CDATA[首先简单说一下他们之间的区别：
HashMap: 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值，具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。
TreeMap: 能够把它保存的记录根据键(key)排序,默认是按升序排序，也可以指定排序的比较器，当用Iterator 遍历TreeMap时，得到的记录是排过序的。TreeMap不允许key的值为null。非同步的。
Hashtable: 与 HashM]]></description><category></category></item><item><title><![CDATA[Map集合的三种遍历方式1.entrySet()； 2.keySet()； 3.values()；]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107619843</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107619843</guid><author>Llyon</author><pubDate>Mon, 27 Jul 2020 19:55:02 +0800</pubDate><description><![CDATA[Map集合没有迭代器,遍历集合中的元素可以用以下三种方法:
1.entrySet();
2.keySet();
3.values();
具体用法示例:
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class NUmMaps {
    public static void main(S]]></description><category></category></item><item><title><![CDATA[Map集合的常用API]]></title><link>https://blog.youkuaiyun.com/Llyon/article/details/107619681</link><guid>https://blog.youkuaiyun.com/Llyon/article/details/107619681</guid><author>Llyon</author><pubDate>Mon, 27 Jul 2020 19:51:18 +0800</pubDate><description><![CDATA[Map常用的API有4个:
1.put(key,value);–添加元素
2.remove(key);–移除元素(得到返回值value);
3.put(key,修改内容为);–修改
4.get(key)–访问(得到返回值value);
应用实例:
import java.util.HashMap;
import java.util.Map;

public class NumMap {
    public static void main(String[] args) {
        Map&lt;I]]></description><category></category></item></channel></rss>