- 浏览: 197864 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (153)
- (201109)一、java技术基础 (31)
- (201109)二、java源码学习 (0)
- (201109)三、系统分析与设计 (23)
- (201109)四、系统性能调优 (1)
- (201109)五、软件工程与项目管理 (6)
- java 基础_多线程与同步 (9)
- java 基础_IO流 (2)
- java 基础_Effective Java 读书笔记 (1)
- 1.3、J2ee应用技术 (6)
- 1.4、Java数据结构与算法 (8)
- 2.1、 web 基础 (4)
- 5. 开发环境与开法工具 (18)
- 6. 数据库技术 (4)
- 7、操作系统与应用服务器 (15)
- 4.新技术 (4)
- 9. 临时目录 (8)
- Struts/Spring/Hibernate学习 (8)
- java 异常 (1)
- java 日志 (1)
- 问题与积累 (3)
最新评论
-
season2016:
好人,,,,,,,
《Head First 设计模式》附书源码 -
huanlegu0426:
完善自我 写道对WEB-INF文件夹有了进一步的了解,谢谢博主 ...
Java EE中的Web项目的目录文件结构 -
完善自我:
对WEB-INF文件夹有了进一步的了解,谢谢博主分享。
Java EE中的Web项目的目录文件结构 -
love:
学习。
高手,09年就有这么多技巧了!
Eclipse常用技巧总结:热键,自定义模版及其他 -
j_peng:
ccxw1983 写道运行下就不动了,也不死,运行结果:c2要 ...
Java多线程 生产者-消费者模式
Collection和Map的视图技术,令我豁然开朗!
比如:Map.keySet(),Map.values(),Map.entrySet().可以得到三个视图:键值,值,键/值对。对视图的操作,
将直接影响原始集合!
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; /** * 集合框架视图技术; * */ public class CollectionView01 { public void viewOper() { String[] temp = new String[3]; //返回一个视图对象,你只能使用get(),set()方法访问底层的数组,而任何尝试 //改变数组大小的方法都抛出UnsupportedOperationException。 List<String> tempList = Arrays.asList("aa", "bb", "cc"); System.out.println("01 = " + tempList.get(0)); System.out.println("02 = " + tempList.set(1, "ddd")); System.out.println("03 = " + tempList.get(1)); //返回一个实现了list接口不可修改的对象; List<String> settings = Collections.nCopies(5, "Baby"); String testStr0 = settings.get(0); String testStr1 = settings.get(1); System.out.println(testStr1 == testStr0);//返回true System.out.println(testStr0 + " " + testStr1); System.out.println("settings01 =" + settings); //抛出UnsupportedOperationException //System.out.println("set01 =" + settings.set(1, "bbb")); //抛出UnsupportedOperationException //settings.add("B"); System.out.println("settings02 =" + settings); } /* * 可以为许多集合建立子范围视图!任何操作 * 作用于子范围,他们都能通过在这个集合中反映出来! */ public void viewSub() { List<String> tempList = new ArrayList<String>(); for (int i = 0; i < 10; i++) { tempList.add("" + i); } //返回子范围视图; List subList = tempList.subList(3, 7); System.out.println(subList);//[3, 4, 5, 6] System.out.println("01 = " + subList.get(0)); System.out.println("02 = " + subList.set(0, 33)); System.out.println(subList); subList.clear(); System.out.println(tempList);//[0, 1, 2, 7, 8, 9] } /* *如果你想查看代码的某个部分但不修改某个集合的内容可以考虑以下方法; *注:不可修改视图不是本身不可修改,通过集合的原始引用, *我们仍然能够做集合想做的事情。视图只包装了接口而不是实际的对象。 */ public void viewUnmodif() { // Collections.unmodifiableCollection() // Collections.unmodifiableList() // Collections.unmodifiableMap() // Collections.unmodifiableSet() // Collections.unmodifiableSortedSet() // Collections.unmodifiableSortedMap() List<String> tempList = new LinkedList(); for (int i = 0; i < 10; i++) { tempList.add("" + i); } //返回不可修改视图 List<String> unmodifiableList = Collections.unmodifiableList(tempList); String temp = unmodifiableList.get(1); System.out.println("01 = " + tempList); tempList.add("baby"); System.out.println("02 = " + tempList); unmodifiableList.add("bb"); //抛出UnsupportedOperationException System.out.println("03 = " + tempList); } public void viewSyn() { // 多线程来访问一个集合!我们能够想象会发生什么。 // 一个线程试图将一个元素添加到散列表中,而另一个线程或者正在遍 // 历,或者对元素重新散列!或者...... // Java的设计者没有实现“安全集合类”,而是使用视图机制来保证集合线程的安全! // HashMap<String,String> hashMap=new HashMap<String,String>(); // Map<String,String> map=Collections.synchronizedMap(hashMap); // map引用将会使得一切恢复正常!不必担心同步的问题!但是这个包装器的作用有限: // 推荐使用:java.util.concurrent中定义的集合类! } public void viewCheck() { } public static void main(String[] a) { CollectionView01 view = new CollectionView01(); //轻量级集合包装器Arrays和Collections ; //view.viewOper(); //子范围视图 //view.viewSub(); //不可修改视图 //view.viewUnmodif(); //同步视图 view.viewSyn(); //被检验视图 view.viewCheck(); //可选操作的说明 //view. } }
发表评论
-
好书记录
2011-11-07 23:28 957struts2方面 个人觉得网络资源数浪曦的视频最好了; S ... -
项目组内部推荐书目
2011-06-18 15:45 1119项目组内部推荐书目 项目组内部推荐书目 零 ... -
Java深度历险
2011-05-12 01:19 576Java深度历险: http://www.infoq.com/ ... -
java积累/问题
2009-12-25 21:35 954积累: 1、JVM,JRE, JDK关系: JVM : Ja ... -
String和Date互转
2009-09-18 22:41 7371.Date转String SimpleDateForm ... -
java.lang注解符号类型
2009-08-23 12:54 14374.6. 注解符号类型 java.lang.Deprecate ... -
java 类加载机制
2009-07-15 16:14 797下载:深入Java类装载机制.pdf ; JVM启动时的三 ... -
java 工具篇
2009-06-24 23:47 634工具篇 一、 JDK (Java De ... -
Camparable与Comparator_03
2009-06-02 20:04 962区别很简单 一个类实现了Camparable接 ... -
Camparable与Comparator_02
2009-06-02 20:03 930从名字上可以看出来, Comparator是比较器,也 ... -
Camparable与Comparator_01
2009-06-02 16:28 1023import java.util.Arrays; im ... -
什么时候用assert
2009-06-02 12:33 2254什么时候用assert。 断言是一个包含布尔表达式 ... -
Java内部类(Inner Class)详解
2009-06-01 00:00 1400Java内部类(Inner Class)详解 ... -
浅谈Java内部类的四个应用场景
2009-05-31 23:53 1098幕后英雄的用武之地——浅谈Java内部类的四个应用场景 ... -
Java关键字04
2009-05-31 21:37 761class Test { static int i = 0 ... -
Java关键字03
2009-05-31 21:37 6783.transient 变量修饰符。标记为transient的 ... -
Java关键字02
2009-05-31 21:31 678Java代码 public interfa ... -
Java关键字01
2009-05-31 21:30 953Java关键字(keywords) abstract ... -
Java关键字final
2009-05-31 21:28 431Java的关键字final的含义存在着细微的区别,但通常 ... -
Java 关键字汇总
2009-05-31 21:24 9951、访问控制: private 私有的 protected 受 ...
相关推荐
集合视图版本兼容性当前版本的集合视图已通过认证,可与以下lambda版本兼容: 5.3.0 5.2.0 5.1.0 5.0.0 4.0.0目录 ImmutableVector<A> ImmutableNonEmptyVector<A> Set<A> NonEmptySet<A> ImmutableSet<A> ...
既然您已经具备了一些集的理论,您应该能够更轻松的理解“集合框架”。 “集合框架”由一组用来操作对象的接口组成。不同接口描述不同类型的组。 在很大程度上,一旦您...此外,还有返回 Map 对象的 Set 视图的方法:
java核心面试技术点 线程 单例模式下的线程安全http://blog.sina.com.cn/s/blog_75247c770100yxpb.html map集合 集合数据结构及方法的使用 多线程 线程进程 线程状态 线程状态的改变 sql :临时表、游标、存贮...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...
2.2 DDL操作视图 2.3 本章小结 第3章 SQL语句基础之DML 3.1 SELECT语句基础 3.2 WHERE子句 3.3 ORDER BY子句 3.4 GROUP BY和HAVING子句 3.5 INSERT语句 3.6 UPDATE语句 3.7 DELETE语句 3.8 本章...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝性 1. 2.6...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...
Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...
利用Spring实现Java Web技术可以带来许多好处,包括: 1. 简化开发:Spring提供了一系列的模块和工具,可以帮助开发人员更快速、更高效地开发Web应用程序。例如,Spring MVC框架可以帮助开发人员构建Web应用程序的...
摩卡系列视图 Mocha 的集合视图是从 iOS 的项目移植而来的。
本示例是一个SDI示例应用,它包含了CObList集合类、自定义CStudent继承CObject类以实现序列化功能,即把学生对象放到集合中(Java中非常普遍的作法),然后把这个集合对象序列化。注意,自定义类的序列化必须继承...
第1部分 基础篇 第1堂课 java概述 3 ...第21堂课 图形绘制技术 621 第4部分 实战篇 第22堂课 进销存管理系统 647 第23堂课 企业内部通讯管理系统 729 第24堂课 图书馆管理系统 737 附录a java程序编码规范 749
map集合 集合数据结构及方法的使用 多线程 线程进程 线程状态 线程状态的改变 sql :临时表、游标、存贮过程、触发机制http://www.cnblogs.com/SkySoot/archive/2012/04/09/2439190.html jvm工作原理 JVM中类的...
1.6 Java技术体系 1.7 Java虚拟机 1.7.1 虚拟机数据类型 1.7.2 Java虚拟机的生命周期 1.7.3 Java虚拟机的体系结构 1.8 垃圾收集器 1.9 本章习题 第2章 Java开发环境 2.1 J2SE的下载和安装 2.1.1 J2SE的下载 ...
Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都...