数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个...
分类:
编程语言 时间:
2015-08-02 13:20:01
阅读次数:
144
测试用例:import java.util.Stack;/* * 简单的栈类测试; * Stack继承自Vector向量类; * 所以Stack的使用和Vector的使用类型的 * 而且是线程安全的; */public class test_Stack { public static void...
分类:
编程语言 时间:
2015-08-02 13:19:04
阅读次数:
190
处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。...
分类:
编程语言 时间:
2015-08-02 13:18:57
阅读次数:
164
整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/ 本文介绍设计模式中的单例模式: 1. 应用背景 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这...
分类:
编程语言 时间:
2015-08-02 13:18:11
阅读次数:
125
题目:输入两个正整数number1和number2,求其最大公约数和最小公倍数。 算法:较大数和较小数取余,较小数除余数,一直到余数为0时,为最大公约数(辗转相除法);最大公倍数numbe1*number2/(最大公约数),下面直接上代码:import java.util.Scanner;pu...
分类:
编程语言 时间:
2015-08-02 13:17:47
阅读次数:
134
原作者滴着:http://www.cnblogs.com/eflylab/archive/2007/01/20/625237.htmlJava提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collect...
分类:
编程语言 时间:
2015-08-02 13:16:00
阅读次数:
203
今天学习了模式匹配下的for循环内容。让我们从代码实战角度出发。 for(i"spark","java"->"hadoop")) println(language)//给一个参数初始化进行匹配 for((k,v:Int) B) { var these = this while (!these.is....
分类:
其他好文 时间:
2015-08-02 13:15:49
阅读次数:
91
谈谈嵌套for循环的理解说for的嵌套,先说一下一个for循环的是怎么用的。 这次的目的是为了用for循环输出一个乘法口诀表,一下就是我的一步步理解。 一. 语法: for(表达式1;表达式2;表达式3){ java语句; } 表达式1是初始化表达式,最先执行,只执行一次。 ...
分类:
其他好文 时间:
2015-08-02 13:14:10
阅读次数:
148
下面是我从网上找来的一些大牛对spring ioc和DI的理解,希望也能让你对Spring ioc和DI的设计思想有更进一步的认识。一、分享Iteye的开涛对Ioc的精彩讲解 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,I...
分类:
编程语言 时间:
2015-08-02 13:13:20
阅读次数:
189
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class Volatil...
分类:
编程语言 时间:
2015-08-02 13:11:52
阅读次数:
132