自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 mvn常用命令

maven //clean compile test package install mvn archetype:create 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编译测试源代码 mvn test 运行应用程序...

2017-07-20 18:38:56

阅读数 311

评论数 0

原创 git常用命令

第一次使用gitlib之类仓库,需要将公钥在gitlib上注册 Git global setup: git config --global user.name "xiaoming" git config --global user.email "xiaoming...

2017-07-16 19:11:27

阅读数 202

评论数 0

原创 enum枚举应用讲解

枚举的应用主要是,对enum类型,添加自定义的属性,增加构造方法,增加自定义方法(抽象方法),对自定义的属性维护方便 详见:参考代码示例3 1、自定义枚举,剖析枚举原理 2、使用枚举enum,查看常用方法 3、枚举应用举例 4、枚举可以作为快速实现单例的一种方式 1、 ...

2017-07-16 17:29:20

阅读数 244

评论数 0

原创 NIO-缓存-通道-选择器

NIO 1、通道 2、缓冲区 (间接内存-非直接缓冲区,直接内存--直接缓冲区) 3、阻塞通道示例 4、非阻塞通道示例 ----选择器(多路复用IO模型) ---主要是将 通道 和 selector·选择器 进行绑定,基于IO的多路复用模型,使用一个或多进行轮询注册通道,根据状态返回值进行操作 ...

2017-07-03 18:57:07

阅读数 375

评论数 0

原创 手写实现HashMap代码

了解HashMap底层=数组+链表    HashMap通过链表法来解决hash冲突 public interface DIYMap { //Map双列集合 基本功能是 快速取 public V put(K k,V v); //快速取 public V get(K k); //定...

2017-05-08 20:44:54

阅读数 5224

评论数 3

原创 集合迭代时候操作解决方案-ArrayList-Iterator-CopyOnWriteArrayList

1、集合在使用iterator迭代器,迭代集合的时候,不可以对集合类进行操作,否则会通过jdk java代码fail-fast(快速报错机制)抛出异常。 fail-fast(快速报错机制)解释(fail-fast机制它是Java集合的一种错误检测机制): 集合的内部都维护了一个modCount(...

2017-05-08 20:30:30

阅读数 615

评论数 1

原创 哈希表中数组的容量为什么是质数

哈希表中数组的容量为什么是质数   1、HASH函数需要把原始数据均匀地分布到HASH数组里,比如大部分是偶数,这时候如果HASH数组容量是偶数,容易使原始数据HASH后不会均匀分布:   2 4 6 8 10 12这6个数,如果对 6 取余 得到 2 4 0 2 4 0 只会得到...

2017-05-01 23:53:48

阅读数 1426

评论数 0

原创 多线程同步问题-练习题3-笔记整理

练习题3: 程序同时启用了4个线程去调用TestDo.doSome()方法,由于TestDo.doSome方法内部的代码是先暂停1秒,   然后在输出以秒为单位的当前时间值,所以,会打印出4个相同的时间值,如下所示:   4:4:1258199615   1:1:1258199615  ...

2017-04-30 16:37:45

阅读数 402

评论数 0

原创 多线程同步问题-练习题2-笔记整理

练习题2: 主线程中代码不断产生数据,然后交给TestDo.doSome()方法去处理,将程序改成有10个线程来消费生产者产生的数据。   这些消费者都调用Test.doSome()来处理,,每个消费者都需要1秒才能处理完,程序应保证这些消费者线程依次有序的消费数据,   只有上一个消费者消...

2017-04-30 16:37:05

阅读数 251

评论数 0

原创 多线程同步问题-练习题1-笔记整理

练习题1 现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志, 请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象, 程序只需要运行4秒即可打印完这些日志对象。     解决方案:将主线程中产生的数据存入到阻塞队列中,启动的四个消费...

2017-04-30 16:34:28

阅读数 337

评论数 0

原创 同步集合类 -笔记整理13

同步集合 1.传统集合类在并发访问时的问题说明。 2.传统方式下用Collections工具类提供的synchronzedCollection方法来获得同步集合,分析该方法的实现源码。  得到的同步集合,是在操作集合的增删改方法加了锁,不可以同时操作。 3.Java5种提供了如下一些同步集合类: ...

2017-04-30 16:25:38

阅读数 304

评论数 0

原创 可阻塞的队列-笔记整理12

可阻塞的队列 一.概述: 1.队列包含固定长度的队列和不固定长度的队列。 2.什么是可阻塞队列,阻塞队列的作用与实际应用,阻塞队列的实现原理。 3.ArrayBlockingQueue:    (1)看BlockingQueue类的帮助文档,其中有各个方法的区别对比的表格。    (2...

2017-04-26 21:39:58

阅读数 216

评论数 0

原创 线程工具类-通过信号量、计时器等机制控制多线程之间的运行阻塞-笔记整理11

线程工具类 1.Semaphore实现信号灯,可以控制访问线程的个数。信号量初始化10,最多只有10个线程并发访问 2.CyclicBarrier:提供一种阻塞机制,等待所有线程到达某一点集合之后,再继续向下运行 3.CountDownLatch:通过计数器技术,实现一同多,或多通知一 4...

2017-04-26 21:22:58

阅读数 445

评论数 0

原创 java5条件阻塞Condition的应用-多路等待通知Lock-Condition使用-笔记整理10

java5条件阻塞Condition的应用 Condition的功能类似在传统线程技术中的Object.wait和Object.notify的功能。在等待Condition时,允许发生”虚假唤醒”,这通常作为对基础平台语义的让步。对于大多数应用程序,这带来的实际影响很小,因为Condition应该...

2017-04-23 15:31:29

阅读数 1310

评论数 0

原创 对读写锁的深入理解-读写锁技术的妙用---实现缓存

对读写锁的深入理解  参考:http://www.educity.cn/wenda/380140.html  其中有些小理解错误,大体可以接受         参考:http://www.wang1314.com/doc/topic-898895-1.html  主要通过其理解降级...

2017-04-16 23:34:47

阅读数 798

评论数 0

原创 java5的线程锁技术-笔记整理9

java5的线程锁技术 1.Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。锁是上在代表要操作的资源的类的内部方法中,而不是线程代码中! 2、读写锁:分...

2017-04-16 22:43:51

阅读数 242

评论数 0

原创 Callable和Future的应用-笔记整理8

Callable和Future的应用 1.Future取得的结果类型和Callable返回的结果类型必须一致,这是通过泛型来实现的。 2.Callable要采用ExecutorSevice的submit方法提交,返回的future对象可以取消任务。 3.CompletionService用于提...

2017-04-16 21:44:43

阅读数 263

评论数 0

原创 常见线程池和启动定时器线程池-笔记整理7

常见线程池和启动定时器线程池 1.线程池的概念:线程池是一种多线程处理形式,处理过程中将任务添加到队列,如果线程池中有空闲的线程,则由该线程去完成这些任务。 2.Excecutors类的应用   (1)创建固定大小的线程池:Executors.newFixedThreadPool(3);  ...

2017-04-16 21:29:47

阅读数 1503

评论数 0

原创 Java5的线程并发库-笔记整理6

java5原子性操作类的应用  Java5的线程并发库 1.看java.util.concurrent包及子包的API帮助文档       看concurrent包的帮助文档页面,对并发库中涉及的内容有一个总体上的介绍。 2.了解java.util.concurrent.atomic包:   ...

2017-04-16 20:01:49

阅读数 168

评论数 0

原创 多个线程访问共享对象和数据的方式-笔记整理5

多个线程之间共享数据的方式探讨 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,卖票系统就可以这么做。 2.如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对...

2017-04-16 19:45:48

阅读数 273

评论数 0

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