<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_39290259的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_39290259</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_39290259]]></copyright><item><title><![CDATA[Java基础八股文]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117746292</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117746292</guid><author>weixin_39290259</author><pubDate>Wed, 09 Jun 2021 16:13:41 +0800</pubDate><description><![CDATA[序号
内容
链接地址




1
Java基础八股文
https://zhuanlan.zhihu.com/p/379234291


2
Java容器八股文
敬请期待


3
Java异常八股文
https://zhuanlan.zhihu.com/p/377557779 https://blog.youkuaiyun.com/weixin_39290259/article/details/117229021


4
Java并发编程八股文
敬请期待


5
JVM八股文
敬请期待


6
Spring八股文...]]></description><category></category></item><item><title><![CDATA[Java八股文系列六：泛型]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117564347</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117564347</guid><author>weixin_39290259</author><pubDate>Fri, 04 Jun 2021 16:01:33 +0800</pubDate><description><![CDATA[一、泛型的基本概念
泛型的本质是参数化类型，就是说所操作的数据类型被指定为一个参数。泛型提供了编译时类型的安全检查机制，该机制允许程序在编译时检测非法的类型。在不使用泛型的情况下，可以引用Object类型来实现参数的任意化，但是在具体使用时需要进行强制类型转换，如果不知道参数具体的引用类型会引起类型转换错误，而这种错误只有在运行时才出现。使用泛型后就可以在编译期检测类型错误，提高了程序的安全性。下面看一个例子解释泛型的好处。
使用泛型前：
    public static void main(Strin.]]></description><category></category></item><item><title><![CDATA[Java八股文系列五：内部类]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117530299</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117530299</guid><author>weixin_39290259</author><pubDate>Thu, 03 Jun 2021 17:36:31 +0800</pubDate><description><![CDATA[一、什么是内部类
将一个类定义置入另一个类定义中，这个类就叫做内部类。简单来说就是在一个类的内部再定义一个类。
二、为什么要用内部类

内部类与外部类之间可以很方便地访问彼此的私有域。
内部类是另外的一种封装，对外部的其他类隐藏。
内部类可以打破Java单继承的局限。

缺点就是结构复杂。
如何使用内部类呢？

在外部类外部生成非静态内部类实例

Outer.Inner in = new Outer().new Inner();


在外部类外部生成静态内部实例

Outer.Inner in = new.]]></description><category></category></item><item><title><![CDATA[Java八股文系列四：注解]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117482736</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117482736</guid><author>weixin_39290259</author><pubDate>Wed, 02 Jun 2021 20:42:39 +0800</pubDate><description><![CDATA[一：基本语法
1.1 声明注解与元注解
先看看@MyTest注解是如何声明的：
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTest {

}

使用@interface来声明MyTest是个注解，@Target(ElementType.METHOD)来声明这个注解应用于方法上面，@Retention(RetentionPolicy.RUNTIME)声明这个注解的生存期是运行时。反编.]]></description><category></category></item><item><title><![CDATA[Java八股文系列三：反射]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117442307</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117442307</guid><author>weixin_39290259</author><pubDate>Tue, 01 Jun 2021 14:19:58 +0800</pubDate><description><![CDATA[一、反射的概述
Java的反射机制是在运行状态时，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象都能够调用它的任意一个方法和属性。这种动态获取的信息以及动态调用的方法的功能称为Java语言的反射机制。反射就是把类中的各种成分封装成一个对象，根据这些个对象来创建类的实例。
二、反射的使用
2.1 获取类对象
获取Class对象有两种，一种是类.class，一种是Class.forName()。.class适用于在编译时已经知道具体的类。

.class

    Class cl = S.]]></description><category></category></item><item><title><![CDATA[集合之HashSet]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117387034</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117387034</guid><author>weixin_39290259</author><pubDate>Sat, 29 May 2021 16:05:45 +0800</pubDate><description><![CDATA[一、HashSet源码解析
1.1 成员变量
    //基于HashMap实现，底层使用HashMap保存所有元素
    private transient HashMap&lt;E,Object&gt; map;

    //HashSet存储的是HashMap的key，所以这个final的对象用来做HashMap的值
    private static final Object PRESENT = new Object();

1.2 构造方法
    public HashSet() {
 .]]></description><category></category></item><item><title><![CDATA[Map之LinkedHashMap]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117372099</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117372099</guid><author>weixin_39290259</author><pubDate>Fri, 28 May 2021 19:07:46 +0800</pubDate><description><![CDATA[一、LinkedHashMap源码分析（jdk1.8）
1.1 成员变量
public class LinkedHashMap&lt;K,V&gt;
    extends HashMap&lt;K,V&gt;
    implements Map&lt;K,V&gt;
{
    //头指针，指向第一个node
    transient LinkedHashMap.Entry&lt;K,V&gt; head;

    //尾指针，指向最后一个node
    transient LinkedHash.]]></description><category></category></item><item><title><![CDATA[Map之ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117362408</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117362408</guid><author>weixin_39290259</author><pubDate>Fri, 28 May 2021 14:41:24 +0800</pubDate><description><![CDATA[一、ConcurrentHashMap源码解析(jdk1.7)
1.1 主要成员变量
    //默认容量
    static final int DEFAULT_INITIAL_CAPACITY = 16;

    //默认加载因子
    static final float DEFAULT_LOAD_FACTOR = 0.75f;

    //Segment数组
    final Segment&lt;K,V&gt;[] segments;

1.2 Segment段
    static .]]></description><category></category></item><item><title><![CDATA[Map之HashMap]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117333977</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117333977</guid><author>weixin_39290259</author><pubDate>Thu, 27 May 2021 17:41:41 +0800</pubDate><description><![CDATA[一、HashMap源码分析
1.1 成员变量
    //默认初始容量16
    static final int DEFAULT_INITIAL_CAPACITY = 1 &lt;&lt; 4; // aka 16

    //最大容量
    static final int MAXIMUM_CAPACITY = 1 &lt;&lt; 30;

    //负载因子
    static final float DEFAULT_LOAD_FACTOR = 0.75f;

    //链表长度大于8.]]></description><category></category></item><item><title><![CDATA[集合之CopyOnWriteArrayList]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117294913</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117294913</guid><author>weixin_39290259</author><pubDate>Wed, 26 May 2021 16:01:04 +0800</pubDate><description><![CDATA[一、CopyOnWriteArrayList源码
1.1 成员变量
    //可重入锁
    final transient ReentrantLock lock = new ReentrantLock();

    //对象数组，注意用到volatile修饰
    private transient volatile Object[] array;

1.2 构造方法
    public CopyOnWriteArrayList() {
        setArray(new Object[.]]></description><category></category></item><item><title><![CDATA[Java八股文系列二：集合之LinkedList]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117287267</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117287267</guid><author>weixin_39290259</author><pubDate>Wed, 26 May 2021 12:16:36 +0800</pubDate><description><![CDATA[一：LinkedList源码分析
1.1 成员变量
    //长度
    transient int size = 0;

    //第一个节点
    transient Node&lt;E&gt; first;

    //最后一个节点
    transient Node&lt;E&gt; last;

静态内部类
    private static class Node&lt;E&gt; {
        E item;//节点的具体元素
        Node&lt;E&gt; n.]]></description><category></category></item><item><title><![CDATA[Java八股文系列二：集合之ArrayList]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117262921</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117262921</guid><author>weixin_39290259</author><pubDate>Tue, 25 May 2021 19:37:54 +0800</pubDate><description><![CDATA[一、ArrayList源码分析
1.1 成员变量
    //默认初始容量
    private static final int DEFAULT_CAPACITY = 10;
    
    //对象数组，存储具体的元素
    transient Object[] elementData;
    
    //元素的个数
    private int size;
    
    private static final Object[] DEFAULTCAPACITY_EMPTY_ELEME.]]></description><category></category></item><item><title><![CDATA[Java八股文系列一：异常]]></title><link>https://blog.youkuaiyun.com/weixin_39290259/article/details/117229021</link><guid>https://blog.youkuaiyun.com/weixin_39290259/article/details/117229021</guid><author>weixin_39290259</author><pubDate>Mon, 24 May 2021 18:08:06 +0800</pubDate><description><![CDATA[一、异常的继承关系

Throwable是所有错误和异常的父类，分为Error和Exception，Exception又可以分为RutimeException运行时异常和受检查异常。
1.1 Error
Error是指Java程序在启动时或运行时，出现了系统内部错误和资源耗尽错误，如果出现了Error，那么系统只能记录错误并安全退出。常见的有OutOfMemoryError，大多数是由于堆内存不够了；StackOverflowError，大多数是由于栈内存不够了。
1.2 Exception
Excepti]]></description><category></category></item></channel></rss>