<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[L04593的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/L04593</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; L04593]]></copyright><item><title><![CDATA[java——异常]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/120004311</link><guid>https://blog.youkuaiyun.com/L04593/article/details/120004311</guid><author>L04593</author><pubDate>Mon, 30 Aug 2021 19:56:31 +0800</pubDate><description><![CDATA[java——异常
1.异常概念

异常是程序在运行期发生的不正常的事件，它会打断指令的正常执行流程。
设计良好的程序应该在异常发生时提供处理这些不正常事件的方法，使程序不会因为异常的发生而阻断或产生不可预见的结果。
Java语言使用异常处理机制为程序提供了异常处理的能力

2.异常分类

Java程序运行过程中所发生的异常事件从严重性可分为两类：
1、 错误(Error)：JVM系统内部错误或资源耗尽等严重情况属于JVM需要负担的责任,这一类异常事件无法恢复或不可能捕获，将导致应用程序中断。
2、 异常(E]]></description><category></category></item><item><title><![CDATA[java多线程——线程池]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/120004302</link><guid>https://blog.youkuaiyun.com/L04593/article/details/120004302</guid><author>L04593</author><pubDate>Mon, 30 Aug 2021 19:55:22 +0800</pubDate><description><![CDATA[线程池
引入

一个线程完成一项任务所需时间为：

创建线程时间 - Time1
线程中执行任务的时间 - Time2
销毁线程时间 - Time3


为什么需要线程池


线程池技术正是关注如何缩短或调整Time1和Time3的时间，从而提高程序的性能。项目中可以把Time1，Time3分别安排在项目的启动和结束的时间段或者一些空闲的时间段
线程池不仅调整Time1，Time3产生的时间段，而且它还显著减少了创建线程的数目，提高线程的复用率
系统启动一个新线程的成本是比较高的，因为涉及与操作系统的交互，]]></description><category></category></item><item><title><![CDATA[java多线程——生产者与消费者模型]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/120004285</link><guid>https://blog.youkuaiyun.com/L04593/article/details/120004285</guid><author>L04593</author><pubDate>Mon, 30 Aug 2021 19:54:21 +0800</pubDate><description><![CDATA[生产者与消费者
生产者与消费者模型
1.一个生产者一个消费者
步骤：

1.让生产者线程和消费者线程 共同操作同一个手机对象(资源)
2.让两个产品来回切换（目的是放大第一个步骤的问题）加锁，防止脏数据的出现
3.生产一个消费一个

代码实现：
package com.dream.producer_consumer01_type01;

public class Test01 {
	
	public static void main(String[] args) {

		Phone phone = new]]></description><category></category></item><item><title><![CDATA[java——多线程2]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119737871</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119737871</guid><author>L04593</author><pubDate>Mon, 16 Aug 2021 17:20:24 +0800</pubDate><description><![CDATA[java——多线程2
1.线程局部变量的共享
1.1共享一个变量的情况

使用Map集合（键值对），key放线程对象，value放共享的数据

代码实现：
package com.dream.thread01;

import java.util.concurrent.ConcurrentHashMap;

public class Test01 {
	
	public static ConcurrentHashMap&lt;Thread, Integer&gt; map = new ConcurrentH]]></description><category></category></item><item><title><![CDATA[java集合——Map]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119596761</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119596761</guid><author>L04593</author><pubDate>Wed, 11 Aug 2021 10:18:26 +0800</pubDate><description><![CDATA[集合——Map
Map家族

实现类：

HashMap
LinkedHashMap
Hashtable
ConcurrentHashMap
TreeMap
Properties


1.HashMap
1.1 使用方法
代码实现：
package com.study.hashmap;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;

publi]]></description><category></category></item><item><title><![CDATA[java集合——Set]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119545994</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119545994</guid><author>L04593</author><pubDate>Mon, 09 Aug 2021 20:15:05 +0800</pubDate><description><![CDATA[集合——Set
Set接口

特点：无序且不可重复
实现类：

HashSet
LinkedHashSet
TreeSet


1.LikedHashSet
1.1 常用方法：
package com.study.linkedhashset;

import java.util.LinkedHashSet;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;

public class Test0]]></description><category></category></item><item><title><![CDATA[java集合——List]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119545904</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119545904</guid><author>L04593</author><pubDate>Mon, 09 Aug 2021 20:12:45 +0800</pubDate><description><![CDATA[集合——List
List接口

特点：有序且可重复（因为List接口中添加了许多针对下标操作的方法）
实现类：

ArrayList
LinkedList
Vector
Stack


1.ArrayList
1.1使用ArrayList方法+泛型

泛型：数据安全的作法，规定集合应该存储什么样的数据类型

1.1.1 代码实现：
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
impor]]></description><category></category></item><item><title><![CDATA[java枚举]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119462199</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119462199</guid><author>L04593</author><pubDate>Fri, 06 Aug 2021 19:30:18 +0800</pubDate><description><![CDATA[二.枚举
枚举引入：

编写季节类（Season），该类只有四个对象（spring，summer，autumn，winter）Season必须私有化构造器

package com.dream.enum01;

public class Test01 {
	
	public static void main(String[] args) {
	
		System.out.println(Season.spring);
		System.out.println(Season.summer);
		System]]></description><category></category></item><item><title><![CDATA[大数值运算类BigInteger&BigDecimal]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119461804</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119461804</guid><author>L04593</author><pubDate>Fri, 06 Aug 2021 18:59:18 +0800</pubDate><description><![CDATA[一.大数值运算类
1.整数类型的大数值运算类 - BigInteger
代码实现：
package com.dream.big;

import java.math.BigInteger;

public class Test01 {
	
	public static void main(String[] args) {

		BigInteger big1 = new BigInteger("123456789123456789123456789");	
		BigInteger big2 = new B]]></description><category></category></item><item><title><![CDATA[java中的一些常用类]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119422756</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119422756</guid><author>L04593</author><pubDate>Thu, 05 Aug 2021 17:16:03 +0800</pubDate><description><![CDATA[一.正则表达式
含义：

用来匹配或描述一系列符合某个语句规则的字符串
Pattern：代表了正则表达式的匹配模式
Matcher：提供了对正则表达式的分组支持，以及对正则表达式的多次匹配的支持

案例：
package com.dream.regex_class;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test01 {
	
	public static void main(String[]]></description><category></category></item><item><title><![CDATA[java包装类和String类（StringBuffer和StringBuilder）]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119389878</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119389878</guid><author>L04593</author><pubDate>Wed, 04 Aug 2021 17:55:47 +0800</pubDate><description><![CDATA[包装类
含义：

基本数据类型对应的类

出现原因：

Java为纯面向对象语言(万物皆对象)，而8种基本数据类型不能创建对象，破坏了Java为纯面向对象
语言的特征，所以Java又给这8种基本数据类型分别匹配了对应的类，这种叫做包装里/封装类

继承关系：

基本数据类型		引用数据类型
byte			 	Byte 	extends Number extends Object
short		   Short 	extends Number extends Object
int				Integer ext]]></description><category></category></item><item><title><![CDATA[java面向对象多态和内部类的深入学习]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119355553</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119355553</guid><author>L04593</author><pubDate>Tue, 03 Aug 2021 17:43:13 +0800</pubDate><description><![CDATA[一.多态
1.类的多态
需求：

需求：老师骑着自行车上班
分析：老师类、自行车类
需求升级/迭代：自行车-&gt;小汽车
步骤：
1.创建Car类，编写start、stop
2.在原有Teacher类的基础上编写open、close
注意：违反了OCP原则
OCP - 开闭原则：
​		O - open ：在需求升级时，对于创建类是欢迎的
​        C - close：在需求升级时，改变原有代码是拒绝的
注意：需求升级时，尽量不要改变以前的类，否则容易出bug
需求升级/迭代：自行车-&gt;小汽]]></description><category></category></item><item><title><![CDATA[java常用类和接口初步学习]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119329015</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119329015</guid><author>L04593</author><pubDate>Mon, 02 Aug 2021 16:52:19 +0800</pubDate><description><![CDATA[常用类
一.Object
含义：

所有类的基类/超类，一个类没有明确继承的类，默认继承Object

1.equals

比较两个对象内存地址是否相同

源码实现：
public boolean equals(Object obj){
    return this == obj;
}

代码实现：
public static void main(String[] args) {
    
    Object obj1 = new Object();//0x001
    Object obj2 = n]]></description><category></category></item><item><title><![CDATA[斐波那切数列、兔子问题、青蛙跳台问题（非常规的递归解法）]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119270509</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119270509</guid><author>L04593</author><pubDate>Sat, 31 Jul 2021 09:49:21 +0800</pubDate><description><![CDATA[/**
 * 斐波那切数列
 * 兔子问题
 * 青蛙跳台问题
 * @author 26058
 *
 */
public class Test01 {
	public static void main(String[] args) {
		
		System.out.println(numWays(10));
		System.out.println(numWays2(10));
	}
    //循环解法
	public static int numWays(int n) {
        
...]]></description><category></category></item><item><title><![CDATA[java面向对象]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119270432</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119270432</guid><author>L04593</author><pubDate>Sat, 31 Jul 2021 09:44:06 +0800</pubDate><description><![CDATA[概念


现实生活：

类：抽象的概念，把具有相同特征和操作的事物归为一类

先有实体，再有类的概念

代码世界：

类：抽象的概念，把具有相同属性和方法的对象归为一列

编写顺序：先有类，再创建对象

类的作用：类相当于一个模板，刻画出具有相同属性和方法的对象


类



	类中只有属性和方法
	
	
	属性也叫做全局变量，属性分为成员变量和静态变量
	
	
	方法分为成员方法和静态方法
	



public class 类名{
  //属性也叫做全局变量，分为成员变量和静态变量
  
 ...]]></description><category></category></item><item><title><![CDATA[java 数组]]></title><link>https://blog.youkuaiyun.com/L04593/article/details/119270257</link><guid>https://blog.youkuaiyun.com/L04593/article/details/119270257</guid><author>L04593</author><pubDate>Sat, 31 Jul 2021 09:40:44 +0800</pubDate><description><![CDATA[一.数组排序

冒泡排序：

口诀：


N个数字来排序 两两相比小靠前 外层循环N-1 内层循环N-1-i

自学各种排序：https://www.cnblogs.com/c1024/p/11012049.html


代码实现：


public static void main(String[] args){
​
  int[] is = {39,77,27,20,45,62};
​
  for(int i = 0;i&lt;is.length-1;i++){
    for(in...]]></description><category></category></item></channel></rss>