自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (9)
  • 收藏
  • 关注

原创 Mongo集群Java连接时MongoException$Network、UnknownHostException错误

今天在 Java 连接 Mongo 集群时报了一个超时的错误,但是在本地客户端连接单节点的时候却能连上,具体报的错误如下:Caused by: com.mongodb.MongoTimeoutException: Timed out after 60000 ms while waiting for a server that matches {serverSelectors=[ReadP...

2018-03-29 22:59:05 1783

原创 修改Linux系统时间EDT改为CST

今天发现一台服务器时间比北京时间慢 12 个小时,使用 date 命令后发现是:root@ubuntu# dateThu Mar 22 5:12:08 EDT 2018EDT 时间即美国东部时间。这里要改为北京时间即可: 命令如下:root@ubuntu# mv /etc/localtime /etc/localtime.bak root@ubuntu# ln -s /usr/share/z

2018-03-22 17:53:23 12972 1

原创 Java并发Concurrent包——ThreadPoolExecutor线程池源码分析

ThreadPoolExecutor 就是常用的线程池,下面通过其中重要的源码来分析:线程池的状态由下边的源码,可以得知,线程池由一个32位的 int 型来表示状态。其中高位的 3 位代表 5 种状态,低位的 29 位代表工作线程的数量。 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); pr

2018-03-11 18:21:32 289

原创 Java并发Concurrent包——Callable/Future/FutureTask解析

Runnable 接口,由于是 void 方法,是没有返回结果的,在并发包中,有 Callable 类,能够得到执行的结果。Callable返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。pub

2018-03-10 15:21:19 1075

原创 Java并发Concurrent包——ArrayBlockingQueue源码分析

ArrayBlockingQueue 是一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。 BlockingQueue 接口实现的都是阻塞队列。而 ConcurrentLinkedQueue 是基于 CAS 和链表实现的无阻塞高性能队列。 ConcurrentLinkedQueue 的源码分析见 Java并发Concurrent包——ConcurrentLinked

2018-03-09 17:02:32 387

原创 Java并发Concurrent包——ConcurrentLinkedQueue源码分析

ConcurrentLinkedQueue 是并发中的高性能队列,而 BlockingQueue 接口下的是并发的阻塞队列。 ConcurrentLinkedQueue 是一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。当多个线程

2018-03-09 16:00:04 272

原创 Java并发Concurrent包——CopyOnWriteArrayList源码分析

CopyOnWriteArrayList 和 ArrayList 比较相似,只不过 CopyOnWriteArrayList 是线程安全的。 当进行写操作时,将原来的数组复制一份新的数组,写操作在这个新数组上进行;此时不影响旧数组上的读操作。写操作完成后,数组的引用改为新的数组即可,旧数组不再使用。属性 // 锁对象 final transient ReentrantLock loc

2018-03-09 11:03:10 215

原创 Java并发Concurrent包的锁(七)——Semaphore源码分析及使用

Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。Sync类 abstract static class Sync extends AbstractQueuedSynchronizer {

2018-03-08 16:38:37 192

原创 Java并发Concurrent包的锁(六)——CountDownLatch源码分析及使用

CountDownLatch 和 CyclicBarrier 比较相似,都属于并发的实用工具类。 CyclicBarrier 的源码分析和使用可以参考:Java并发Concurrent包的锁(五)——CyclicBarrier源码分析及使用JDK 文档中的定义: 用给定的计数初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法

2018-03-08 13:27:51 217

原创 Java并发Concurrent包的锁(五)——CyclicBarrier源码分析及使用

CyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。 CyclicBarrier 支持一个可选的 Runnable 命令,

2018-03-07 17:52:00 280

原创 Java并发Concurrent包——ConcurrentHashMap原理分析

ConcurrentHashMap 和 HashMap 的底层实现都是 数组+链表或红黑树 构成的。 HashMap 的源码分析见:Java集合框架——HashMap源码分析ConcurrentHashMap 相比 HashMap 支持多线程下的操作。 而与 HashTable 相比,虽然 HashTable 也是线程安全的,但是其大量使用的是 synchronized 关键字,锁的粒度比较大,

2018-03-07 15:15:40 312

原创 Java并发Concurrent包的锁(四)——读写锁源码分析

本文对读写锁源码进行了比较详细的分析。 另外可以参考可重入锁 ReentrantLock 的分析:Java并发Concurrent包的锁(三)——ReentrantLock源码分析 ReadWriteLock接口ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。public

2018-03-06 15:22:02 417

原创 Java并发Concurrent包的锁(三)——ReentrantLock源码分析

ReentrantLock 提供了两个构造函数,默认是非公平锁的构造函数,还有一个公平锁的构造函数。 可以参考: Java并发Concurrent包的锁(二)——自旋/阻塞/可重入ReentrantLock 类中的公平和非公平,是通过对同步器 AbstractQueuedSynchronizer 的扩展加以实现的,也就是在tryAcquire的实现上做了语义的控制。 // 默认的非公平可重入

2018-03-05 16:31:08 506

原创 Java并发Concurrent包的锁(二)——自旋/阻塞/可重入

Java 并发包 Concurrent 的包结构共可分为五个部分: - 原子变量类 - 锁 - collection并发集合框架 - excutor线程池 - 同步工具本文介绍锁的一些原理和特征,比如自旋,阻塞,可重入,公平锁和非公平锁。自旋比如可以用 synchronized 关键字自己来实现一个简单的锁类 Lock,让它有一个标志 isLocked 来标记锁对象是否正在使用,

2018-03-05 14:42:47 717

原创 Java并发Concurrent包的锁(一)——Lock接口

Java 并发包 Concurrent 的包结构共可分为五个部分: - 原子类 - 锁 - collection并发集合框架 - excutor线程池 - 同步工具本文介绍 Lock 接口和其与 synchronized 关键字的对比。 Lock接口尽管 synchronized 在语法上已经足够简单了,在 JDK5 之前只能借助此实现,但是由于是独占锁,性能却不高,因此 JDK

2018-03-04 18:30:26 1321

原创 Java并发Concurrent包的原子类

concurrent 的包结构共可分为五个部分: - 原子变量类 - 锁 - collection并发集合框架 - excutor线程池 - 同步工具本文介绍原子变量类。原子变量类原子变量类位于 java.util.concurrent.atomic 包下。 以 AtomicInteger 为例,其它原子类的原理都一样: AtomicBoolean 可以用原子方式更新的 ...

2018-03-02 11:02:50 912

原创 Java中8种基本类型的封装类型——自动装箱和拆箱

8种基本类型:char、byte、short、int、long、float、double、boolean。 对应各自的封装类型。以 Integer 类为例,其他类型原理类似。 先看比较对象的 equals 方法的重写: public boolean equals(Object obj) { // 首先判断两个对象是不是同一类的对象 if (obj insta

2018-03-01 15:31:57 2381 1

原创 Java中的StringBuilder和StringBuffer

StringBuilder 和 StringBuffer 都是可变的字符序列。它们都继承于AbstractStringBuilder,实现了CharSequence接口。 但是,StringBuilder 是非线程安全的,而 StringBuffer 是线程安全的。 从源码上看,二者的方法几乎一样,而 StringBuffer 在每个方法前都加上了 synchronized 关键字,来保证同步

2018-03-01 13:21:56 136

Spring定时任务@Scheduled例子

Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析,做了一些测试说明了各个参数的作用

2018-07-01

xwork-core-2.2.1-sources.jar

xwork-core-2.2.1-sources.jar 源码,学习struts2源码时能用到

2014-03-29

struts2-core-2.2.1-sources.jar

struts2-core-2.2.1-sources.jar 源码,学strut2源码时能用到的

2014-03-29

使用POI读取excel03/07文件内容

http://blog.csdn.net/yx0628/article/details/16983219 这里是对应的博文

2013-11-27

xmlbeans-2.3.0.jar

XML-Java绑定工具,利用它可以很方便地解析XML文档。

2013-11-23

android带百分比进度条的文件上传,使用AsyncTask异步上传

http://blog.csdn.net/yx0628/article/details/10054851 这个是AsyncTask异步上传文件我的博文。 很简单的小demo,在android端程序中把文件路径和服务器IP改成自己的就行。

2013-08-19

java base64的jar包

http://blog.csdn.net/yx0628/article/details/9633947 这个是gps转百度地图坐标的相关介绍。

2013-07-30

Android 下使用JSON的小例子

一个android端和servlet使用JSON交换信息的简单小例子

2013-07-22

JSON相关JAR包

JSON相关的jar包,应该比较齐全了。

2013-07-22

空空如也

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

TA关注的人

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