自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

itmyhome的专栏

越努力,越幸运

原创 HashSet实现原理及源码分析

HashSet简介 HashSet是Set接口实现,它按照Hash算法来存储集合中的元素 不保证元素顺序 HashSet是非同步的,如果多个线程同时访问一个HashSet,要通过代码来保证其同步 集合元素可以是null 对于HashSet而言,它是基于HashMap实现的。HashSet...

2017-07-27 23:06:56 1736 0

原创 ArrayList和LinkedList的区别

List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表。ArrayList底层采用数组来保存每个集合元素,LinkedList则是一种链式存储的线性表。其本质上就是一个双向链表,但它不仅实现了List接口,还实现了Deque接口。也就是说LinkedList既可以当成双向链表...

2017-07-26 22:45:34 1498 0

原创 ArrayList和Vector的区别

Vector和ArrayList这两个集合类的本质并没有太大的不同,它们都实现了List接口,而且底层都是基于Java数组来存储集合元素。 在ArrayList集合类的源代码中可以看到如下一行。 //采用elementData数组来保存集合元素 private transient Obje...

2017-07-24 23:05:30 2993 0

原创 HashMap实现原理及源码分析

当我们执行如下操作时:HashMap<String, Float> map = new HashMap<String, Float>(); map.put("语文", 86.5f); map.put("数学", 93.0f); map...

2017-07-22 22:42:05 1268 4

原创 Java并发编程之读写锁

读写锁维护了一对相关的锁,一个用于只读操作,一个用于写入操作。只要没有writer,读取锁可以由多个reader线程同时保持。写入锁是独占的。 可重入读写锁 ReentrantReadWriteLock ReentrantReadWriteLock对象提供了readLock()和write...

2017-07-21 23:19:16 956 2

原创 Java并发编程之重入锁

重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁阻塞,该特性的实现需要解决以下两个问题。 1、线程再次获取锁。锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取。 2、锁的最终释放。...

2017-07-20 22:40:07 986 4

原创 Java并发编程之Lock

Lock是一个接口提供了无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显式的。 我们知道,synchronized是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但synchronized粒度有些大,在处理实际问题时存在诸多局限性,...

2017-07-19 23:25:19 697 0

原创 Java并发编程之synchronized

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一个时间,只有一个线程可以进行操作。多线程的同步机制对资源进行加锁,同步用以解决多个线程同时访问时可能出现的问题。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是...

2017-07-19 09:38:29 2271 4

原创 Java并发编程之CyclicBarrier

一、场景描述 有四个游戏玩家玩游戏,游戏有三个关卡,每个关卡必须要所有玩家都到达后才能允许通过。其实这个场景里的玩家中如果有玩家A先到了关卡1,他必须等到其他所有玩家都到达关卡1时才能通过,也就是说线程之间需要相互等待。这和CountDownLatch的应用场景有区别,CountDownLatc...

2017-07-13 23:01:33 2506 1

原创 Java并发编程之CountDownLatch

一、场景描述 在多线程程序设计中,经常会遇到一个线程等待一个或多个线程的场景 例如:百米赛跑,十名运动员同时起跑,由于速度的快慢,肯定有先到达和后到达的,而终点有个统计成绩的仪器,当所有选手到达终点时,它会统计所有人的成绩并进行排序,然后把结果发送到汇报成绩的系统。 再例如:当我们需要解析一...

2017-07-12 22:53:35 1324 0

原创 PLSQL查询数据显示为乱码解决方法

在使用plsql查询数据的时候,中文显示乱码 解决方法是配置本机语言环境变量 重启PLSQL再次查询 即可显示中文 作者:itmyhome

2017-07-11 22:08:19 1563 0

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