j2se
文章平均质量分 64
iteye_1169
这个作者很懒,什么都没留下…
展开
-
hashmap线程不安全在哪里?
大家都知道HashMap不是线程安全的,但是大家的理解可能都不是十分准确。很显然读写同一个key会导致不一致大家都能理解,但是如果读写一个不变的对象会有问题么?看看下面的代码就明白了。 1 import java.util.HashMap; 2 import java.util.Map; 3 import java.util.Random; 4 import java.util...原创 2011-10-13 11:33:58 · 283 阅读 · 0 评论 -
Iterator和Enumeration的主要区别
(1)java中的集合类都提供了返回Iterator的方法,就是迭代器,它和Enumeration(枚举)的主要区别其实 就是Iterator可以删除元素,但是Enumration却不能。 (2)还有一点要注意的就是,使用Iterator来遍历集合时,应使用Iterator的remove()方法来删除集合中的元 素,使用集合的remove()方法将抛出Concu...原创 2011-11-25 14:38:15 · 146 阅读 · 0 评论 -
Java调用外部程序技巧
前些天使用Java调用外部程序的时候,发现线程会堵塞在waitfor()方法。调用方法如下:Process process = Runtime.getRuntime().exec(cmd);process.waitfor();如果直接在Shell中调用这个程序,程序会很快结束,不会僵死。为什么会堵塞呢,原因是当调用exec(cmd)后,JVM会启动一...原创 2011-11-08 09:17:18 · 108 阅读 · 0 评论 -
浅析 Java Thread.join()
一、在研究join的用法之前,先明确两件事情。1.join方法定义在Thread类中,则调用者必须是一个线程,例如:Thread t = new CustomThread();//这里一般是自定义的线程类t.start();//线程起动t.join();//此处会抛出InterruptedException异常 2.上面的两行代码也是在一个线程里面执行的。 以上...原创 2011-10-29 09:25:42 · 80 阅读 · 0 评论 -
理解Java对象序列化
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。...原创 2012-02-15 09:38:48 · 305 阅读 · 0 评论 -
认识Arrays(一)打印
Arrays提供了一组操作array的静态方法。一、基本类型数组打印 public static void printBaseArray(){ int[] ar = new int[10]; for (int i=0; i < ar.length; i++) { ar[i] = (1000 - (300 + i)); } ...原创 2012-02-03 16:52:11 · 130 阅读 · 0 评论 -
apache.commons.io 笔记1
看看,常见的东西都有了,如查询盘的剩余空间,文件夹大小,文件名处理,文件排序,读写文件……我用的1.4版本。public static void main(String[] args) throws IOException {// org.apache.commons.io.comparator.PathFileComparator// org.apache....原创 2012-01-19 17:13:20 · 93 阅读 · 0 评论 -
commons-io 自动加载配置文件
org.apache.commons.io.monitor.FileAlterationMonitor 可以自动加载文件org.apache.commons.io.monitor.FileAlterationObserver原创 2012-01-19 16:55:59 · 133 阅读 · 0 评论 -
Java 理论与实践: 应用 fork-join 框架,第 2 部分
在 上一期 Java 理论与实践 中,我们研究了 fork-join 库,这个库将添加到 Java 7 的 java.util.concurrent 包中。fork-join 技术提供了一种表示 divide-and-conquer 并行算法的简单方式,这种方式能够在大量硬件上有效执行,无需修改代码。随着处理器数量的增加,为了有效利用可用的硬件,我们需要识别并利用程序中更细粒度的并行性。最...原创 2011-10-21 10:40:55 · 90 阅读 · 0 评论 -
Java 理论与实践: 应用 fork-join 框架1
硬件趋势驱动编程语言语言、库和框架形成了我们编写程序的方式。Alonzo Church 早在 1934 年就曾表明,所有已知的计算性框架对于它们所能表示的程序集都是等价的,程序员实际编写的程序集是由特定语言形成的,而编程模型(由语言、库和框架驱动)可以简化这些语言的表达。另一方面,一个时代的主流硬件平台形成了我们创建语言、库和框架的方法。Java 语言从一开始就能够支持线程和并发性;该...原创 2011-10-21 10:40:06 · 102 阅读 · 0 评论 -
模式匹配算法详解:KMP算法 .
基本的模式匹配算法假设现在有主串S=s1,...,sn,,模式串P=p1,...,pm,基本的模式匹配算法是将P中的字符p1与S中的字符s1比较,如果相等,则依次递增比较pi+1和sj+1。如果不相等,则将p1与S中的字符s2比较,依次类推。如果存i=m,则存在匹配模式,否则匹配失败。 KMP算法KMP算法是由由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,...原创 2011-10-15 17:22:04 · 137 阅读 · 0 评论 -
关于hashcode 里面 使用31 系数的问题
首先我们来了解一下hashcode,什么是hashcode?有什么作用? hashcode其实就是散列码,使用hashcode使用高效率的哈希算法来定位查找对象! 我们在使用容器来存储数据的时候会计算一串散列码,然后将数据放入容器。 如:String s =“java”,那么计算机会先计算散列码,然后放入相应的数组中,数组的索引就是从散列吗计算来的,然后再装入数...原创 2012-03-27 09:16:36 · 140 阅读 · 0 评论