ThreadLocal 解决多线程变量共享问题

2017-04-28
阅读 3 分钟
13k
ThreadLocal 不是一个线程,而是一个线程的本地化对象。当某个变量在使用 ThreadLocal 进行维护时,ThreadLocal 为使用该变量的每个线程分配了一个独立的变量副本,每个线程可以自行操作自己对应的变量副本,而不会影响其他线程的变量副本。

Java 双重加锁单例与 java 内存重排序特性

2017-04-28
阅读 3 分钟
5.3k
版权声明:本文由吴仙杰创作整理,转载请注明出处:[链接] 1. 引言 在开始分析双重加锁单例代码之前,我们需要先理解 java 内存模式的重排序和无序写入特性。 2. Java 内存模型——重排序 在计算机中,软件技术和硬件技术有一个共同的目标:在不改变程序执行结果的前提下,尽可能的开发并行度。 同样 Java 为了实现这一目...

Java synchronized 多线程同步问题详解

2017-04-27
阅读 11 分钟
8.7k
下面就对 synchronized 进行详细的示例讲解,其中本文构建 thread 的写法是采用 Java 8 新增的 Lambda 表达式。如果你对 Lambda 表达式还不了解,可以查看我之前的文章《Java 8 Lambda 表达式详解》。

Java 8 Lambda 表达式详解

2017-04-25
阅读 7 分钟
40.3k
版权声明:本文由吴仙杰创作整理,转载请注明出处:[链接] 1. 引言 在 Java 8 以前,若我们想要把某些功能传递给某些方法,总要去写匿名类。以前注册事件监听器的写法与下面的示例代码就很像: {代码...} 这里我们添加了一些自定义代码到 Schedule 监听器中,需要先定义匿名内部类,然后传递一些功能到 onSchedule 方法...

JavaScript 正则表达式的使用

2017-04-24
阅读 5 分钟
3.1k
版权声明:本文由吴仙杰创作整理,转载请注明出处:[链接] 1. 引言 正则表达式本身语法是一致,只是各编程语法对正则表达式的语法表现些区别。 本文主要是关于正则在 JavaScript 中的使用。若你对正则本身还不是很了解的话,强烈推荐先阅读我的上一篇正则文章——《Java 正则表达式详解》。 2. 创建正则表达式 在 JavaScri...

Java 正则表达式详解

2017-04-23
阅读 9 分钟
78.7k
正则对文本的分析或修改过程为:首先正则表达式应用的是文本字符串(text/string),它会以定义的模式从左到右匹配文本,每个源字符只匹配一次。

Java 面向对象编程的三大特性(封装、继承、多态)以及重写和重载

2017-04-21
阅读 5 分钟
23.2k
版权声明:本文由吴仙杰创作整理,转载请注明出处:[链接] 1. 面向对象编程的三大特性 Java 面向对象编程有三大特性:封装、继承、多态。 1.1 封装(Encapsulation) 封装: 隐藏对象的属性和实现细节,仅对外公开访问方法,控制在程序中属性的读和写的访问级别。 1.1.1 封装的目的 增强安全性和简化编程,使用者不必了解...

Quartz 2 定时任务(三):异常与中断处理

2017-04-21
阅读 2 分钟
22.2k
org.quartz.JobExecutionException 会在 Scheduler(调度器)运行错误时,由 job(作业)实现类抛出。

Quartz 2 定时任务(二):多线程并发执行与数据共享

2017-04-20
阅读 7 分钟
33.7k
Quartz 定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行,如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。

Quartz 2 定时任务(一):基本使用指南

2017-04-20
阅读 13 分钟
21.8k
Quartz 设计有三个核心类,分别是 Scheduler(调度器)Job(任务)和 Trigger (触发器),它们是我们使用 Quartz 的关键。