背景:之前在研究多线程的时候,模模糊糊知道AQS这个东西,但是对于其内部是如何实现,以及具体应用不是很理解,还自认为多线程已经学习的很到位了,贻笑大方。 这里的源码还没有能够完整的跟下来,后面还要继续努力完善。 Java并发包基石-AQS详解 Java并发包(JUC)中提供了很多并发工具,这其中,很 ...
分类:
编程语言 时间:
2019-04-28 09:58:40
阅读次数:
173
内部类:顾名思义,定义在内部的类,所以,在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。 为什么要用内部类,普通的创建一个新类,创建一个新对象,也能完成相同的作用,下面举例来说明一 ...
分类:
编程语言 时间:
2019-04-24 23:29:08
阅读次数:
192
一、内部类的概念 定义在类中或接口中的类称之为内部类。 如果某个类只在另一个类中或另一个类的某个方法中使用,而不希望在整个项目中单独定义这个类,则可以通过定义内部类的方式,将这个类定义在需要使用它的类的内部或者该类方法的内部。 二、内部类的分类 内部类分为方法内部类、成员内部类、静态内部类和匿名内部 ...
分类:
其他好文 时间:
2019-04-15 14:25:05
阅读次数:
206
概念 单例模式即一个JVM内存中只存在一个类的对象实例 分类 1、懒汉式 类加载的时候就创建实例 2、饿汉式 使用的时候才创建实例 当然还有其他的生成单例的方式,双重校验锁,枚举和静态内部类,文中会有介绍 实践 懒汉式 1)线程不安全,不可用 2)线程安全,同步方法,效率低,不推荐 3)线程不安全, ...
分类:
其他好文 时间:
2019-04-14 09:13:48
阅读次数:
141
单例模式: 即一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过其get方法获取到他们的实例。 懒汉写法(线程不安全) 懒汉式写法(线程安全) 饿汉式写法 静态内部类 枚举 这种方式是Effective Java作者Josh Bloch 提倡的 ...
分类:
编程语言 时间:
2019-04-02 15:31:31
阅读次数:
183
一、位置 被定义在一个类下,且被static修饰 二、结构 静态内部类下可以定义静态和非静态的属性和方法 三、静态内部类访问外部类 1.不能访问外部类非静态的属性和方法 2.调用属性【方法】方式: 2.1直接写属性名【调用方法名】 本质还是第二种 2.1外部类.属性名【方法名】 源码: 反编译源码: ...
分类:
其他好文 时间:
2019-03-30 13:24:26
阅读次数:
147
内部类 内部类的定义 将一个类定义在另一个给类里面或者方法里面,这样的类就被称为内部类。 内部类可以分为四种: 成员内部类、局部内部类、匿名内部类、静态内部类 ,下面我们逐一介绍这四种内部类。 成员内部类 他定义在另一个类中。一般定义格式如下 因为类C相对与类D在外面,我们且称类C为外部类。 成员内 ...
分类:
编程语言 时间:
2019-03-27 19:33:13
阅读次数:
169
[toc] 七种写法的单列模式 版本1:饿汉式 版本2:多线程可能导致多个实例 版本3:效率有待优化 版本4:Double Check可能出现空指针异常 版本5:Double Check 版本6:通过静态内部类构造 版本7:通过枚举构造 ...
分类:
其他好文 时间:
2019-03-25 14:59:09
阅读次数:
174
一.抽象类 不可以被实例化为对象 必须被继承 不能用final修饰 属于后期(动态)绑定 在设计阶段要确定好是否定义抽象类 例子:哺乳动物类 abstruct class buru(){} 2.抽象方法 是不完整的方法,只有声明,但没有方法主体 仅代表一种类型或功能,而不是具体的实现细节 子类必须重 ...
分类:
其他好文 时间:
2019-03-23 17:30:27
阅读次数:
190
1、HashMap底层实现数据结构? 总的来说,HashMap就是数组+链表的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表“拉链法”的实现。 HashMap的链表元素对应的是一个静态内部类Entry,Entry主要包含key,value,next三个元素 在Jdk1.8中HashM ...
分类:
其他好文 时间:
2019-03-23 10:35:10
阅读次数:
173