1 为什么有ConcurrentHashMap hashmap是非线程安全的,hashtable是线程安全的,但是所有的写和读方法都有synchronized,所以同一时间只有一个线程可以持有对象,多线程情况下锁竞争会比较激烈,严重影响性能。基于这种情况,Doug Lee大师写了一个Concurre ...
分类:
其他好文 时间:
2016-08-20 19:18:03
阅读次数:
214
1.泛型和类型安全的容器 2.基本概念 3.添加一组元素:Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),并将其转换为一个LIst对象。Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分割的列表,将元 ...
分类:
编程语言 时间:
2016-08-13 19:37:41
阅读次数:
166
以下会通过几个例子来表现java泛型的特性:
1、可重用性:相对Holder1,Holder类的重用性更高:Holder相当于容器类(持有对象),泛型的目的之一就是制定容器持有什么类型的对象,而且由编译器保证类型的正确性
public class Automobile {
public void f(){
System.out.println("Automobile...");
}
}...
分类:
编程语言 时间:
2016-07-13 17:22:00
阅读次数:
290
具体思路如下: - 创建一个基类(对应demo中的FsmState),具备Enter,Excute,Exit三个主要函数以及状态持有对象, 作用于每一种状态的进入,执行以及退出; - 创建一个状态机(对应demo中的FsmStateMachine),声明基类的三种状态以及状态持有对象,定义构造函数初 ...
分类:
系统相关 时间:
2016-06-17 00:35:36
阅读次数:
239
第十一章 持有对象 11.1 泛型和类型安全的容器》eg: List<String> 容器中可以插入该泛型类子类都可以放置进去11.2 基本概念 (1)Collection. 一个独立元素的序列,这些元素都服从一条或多条规则.List 必须按照插入的顺序保存元素,而Set不能有重复元素 Queue按 ...
分类:
编程语言 时间:
2016-06-13 21:49:55
阅读次数:
137
Java容器可以说是增强程序员编程能力的基本工具,本系列将带您深入理解容器类。 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构。 我们可以通过创建引用来持有对象,如 也可以通过数组来持有多个对象,如 然而,一般情况下,我们并不知道要创建多少对象,或者以何种方式创建 ...
分类:
编程语言 时间:
2016-06-03 11:19:42
阅读次数:
211
集合框架概述以Java来说,我们日常所做的编写代码的工作,其实基本上往往就是在和对象打交道。
但显然有一个情况是,一个应用程序里往往不会仅仅只包含数量固定且生命周期都是已知的对象。
所以,就需要通过一些方式来对对象进行持有,那么通常是通过怎么样的方式来持有对象呢?
通过数组是最简单的一种方式,但其缺陷在于:数组的尺寸是固定的,即数组在初始化时就必须被定义长度,且无法改变。
也就说,通过数组来...
分类:
编程语言 时间:
2016-05-27 11:56:43
阅读次数:
264
所有权修饰符之__strong__strong 修饰符是id类型和对象类型默认的所有权修饰符. // 自己生成并持有对象
id obj = [[NSObject alloc] init]; id __strong obj1 = [[NSObject alloc] init]; __strong id obj2 = [[NSObject alloc] init];解释:
1...
分类:
其他好文 时间:
2016-05-13 14:44:33
阅读次数:
136
这一章节我们来讨论游戏,synchronized持有对象锁与类锁的不同点-两种锁是并行的东西,没有交集。1.同步持有对象锁或者类锁package com.ray.deepintothread.ch02.topic_3;
public class SynchInstance5 {
public static void main(String[] args) throws InterruptedE...
分类:
编程语言 时间:
2016-04-29 18:59:13
阅读次数:
249
这一章节我们来讨论一下synchronized持有对象锁。1.当所有方法都不使用同步的时候代码清单package com.ray.deepintothread.ch02.topic_2;
public class SynchInstance1 {
public static void main(String[] args) throws InterruptedException {
MyT...
分类:
编程语言 时间:
2016-04-29 18:59:02
阅读次数:
232