自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 java并发编程之正确地终止一个线程interrupt/interrupted

以下demo是错误的终止线程的demo(使用thread.stop()方法实现终止线程): public class ErrorStopThreadDemo { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Overrid...

2020-01-22 19:17:05 479

原创 java并发编程之Thread.sleep方法详解

Thread.sleep方法的作用: 使当前线程暂停执行一段时间,交出cpu的执行时间片,并且在暂停期间不会参与cpu时间片的获取。直到等待时间结束恢复到就绪状态,是否执行还要看OS的调度,或者在这段时间内被中断。 Thread.sleep方法的工作流程: 挂起线程并修改其运行状态。 用sleep提供的参数设置一个定时器。 当时间结束后,定时器会触发,内核收到信号后会修改线程运行状态,例如线程会...

2020-01-22 11:18:07 3505 1

原创 java并发编程之thread.join()方法详解

thread.join()方法的作用:保证线程的执行结果的可见性。原理是通过阻塞主线程实现的。 代码Demo如下: public class ThreadJoinDemo { public static volatile boolean flag = false; public static void main(String[] args) throws Interrupted...

2020-01-22 10:50:53 540

原创 java并发编程之线程的生命周期详解

java线程从创建到销毁,一共会有6个状态,不一定都经历,有可能只经历部分: NEW:初始状态,线程被创建,但是还没有调用start方法。 RUNNABLED:运行状态,java线程把操作系统中的就绪和运行两种状态统一称为“运行中”。就绪状态说明该线程有被执行的资格,等待OS调度,运行状态说明该线程获得了CPU时间片,在执行中。 BLOCKED:阻塞状态,表示线程进入等待状态,也就是线程因为某种...

2020-01-21 17:44:17 227

原创 java并发编程之线程的基本介绍

线程的基本介绍: 定义:线程是操作系统能够能够进行运算调度的最小单位,它被包含在进程当中,是进程的实际运作单位。 并发和并行的介绍: 并发:在一个时间段内能运行多个线程,通过系统的调度交替执行。 并行:在某个时刻多个线程同时运行,多核cpu或者多cpu是并行的基本保证。 并发如下图:多个线程通过获得cpu的时间片来执行,但同一时刻只有一个线程在运行,多个线程在一段时间内交替执行,由于切换快,所以从...

2020-01-21 16:35:48 121

原创 java高级之泛型详解

定义:在java1.5之后推出的。 泛型又叫参数化类型或者类型参数化,在不创建新的类型的情况下,通过泛型指定不同类型来控制形参具体限制的类型,姑且把声明在类上的泛型也叫形参。 泛型应用的意义: 在编译期间确认类型,保证编译阶段时的类型不会出错。 避免强制转换逻辑。 可以提高代码的可重用性和增加程序的灵活性。 注意事项: 泛型的类型擦除:java的泛型只在编译阶段有效,泛型可以在逻辑上分成多种不...

2020-01-21 12:07:13 498

原创 java高级之注解详解

注解的本质和使用: java中的注解都是继承了Annotation的一个接口。 java语言规范规定了注解的定义要用@interface。 注解的作用: a) 注解配合放射可以很好起到了配置文件的作用。虽然耦合度高,但是好管理。 反射请看:https://blog.csdn.net/qq_40837310/article/details/104043024 b) 起标记作用。 c) … //定...

2020-01-20 16:34:14 241

原创 详解java反射机制

定义: 在java反射过程中给定一个类对象(Class对象),通过反射可以获取该对象的所有成员结构和类结构。 给定一个对象,通过反射可以动态调用他的方法以及任意属性值得获取和赋值。静态成员变量和方法不需要给定对象。 这种动态获取类的内容、创建对象以及动态调用对象的方法及操作属性的机制称为反射。 优势: 增加程序的灵活性,避免将程序逻辑写死在代码里面。 代码简洁,可读性,提高代码复用率。 劣...

2020-01-20 15:18:33 2319

原创 java集合源码分析之HashMap

UML类图: 基本简介: 底层的数据结构是数组,数组的元素类型是链表或者红黑树。 元素的添加可能会触发数组的扩容,会使元素重新哈希放入桶中,效率比较低。 元素在不扩容的情况下添加效率高,查找、删除、修改效果都较高。 jdk1.8之后当一个桶的元素个数达到阈值之后,会红黑树话,当降低到某个阈值之后又回链表话。 代码如下:介绍部分重要的: public class HashMap<K,V&...

2020-01-19 14:59:48 96

原创 Java集合源码解析之ArrayList

uml类图: 基本简介: ArrayList的底层数据结构是数组,所以内存需要为arrayList保证有足够的连续的内存空间。 添加操作会导致数组扩容,数组扩容比较消耗性能。 非尾部的添加和删除元素操作会涉及数组元素的移动,也比较消耗性能。 由于是数组结构,所以可以通过下标进行随机访问,时间复杂度为O(1),性能好。 这里只讲部分重要的方法: modCount成员在AbstractList中...

2020-01-15 18:08:21 161

原创 java集合之failfast机制

failfast机制:快速失败机制。 是java类在应对并发访问在对集合进行迭代过程中,内部对象结构发生变化的一种保护措施,这种错误检测机制为这种有可能发生错误,通过抛出ConcurrentModificationException,防止迭代过程中读到脏数据。 以ArrayList为例: public class Demo { public static void main(String[...

2020-01-15 18:05:39 208

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除