JDK
文章平均质量分 85
读程序的手艺人
专研于大数据处理
展开
-
单机上多JVM同步控制的一种方法
在一个JVM进程中的同步控制,无非就是线程之间的同步问题,但要想在多JVM进程之间实现访问本地系统资源的同步,却并非JVM所擅长的了。当然,若依赖第三方Master主控进程,这个问题还是可以解决的。多于简单的系统而言,这样做无疑会增加系统的复杂性,从而导致整个系统的不稳定性和潜在的不安全。所以,下面就如何在单机上实现多JVM进程之间的同步控制,给出了一个简单的方法。 JD原创 2011-06-04 10:04:00 · 2213 阅读 · 0 评论 -
Java NIO类库Selector机制解析
本文转载自:http://blog.csdn.net/haoel/article/details/2224069一、 前言 自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时,也引入了多路复用的异步模式。NIO的包中主要包含了这样几种抽象数据类型: Buffer:包含数据且用于读写的线形表结构。其中还提供了转载 2011-07-06 11:19:59 · 2621 阅读 · 1 评论 -
浅谈ReentrantLock
Condition只是一个接口,怎么可以直接调用它的方法呢?于是查源码(发现这个东西才是最彻底的),从ReentrantLock开始,ReentrantLock.newCondition()->Sync.newCondition() Sync是一个静态抽象的内部类->ConditionObject 看来这个类最终实现了Condition接口->AbstractQueuedSynch转载 2011-12-16 15:24:12 · 1764 阅读 · 0 评论 -
JAVA String.format 方法使用介绍
1.对整数进行格式化:%[index$][标识][最小宽度]转换方式 我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧原创 2011-10-10 20:56:57 · 721 阅读 · 0 评论 -
JavaSE7新特性 异步非阻塞I/O 网络通信 AIO
Asynchronous I/O,异步I/O操作,以Proactor模式为原型设计.在nio中,当有事件发生时,我们会得到通知,然后再去相应的读和写,在aio中,当我们需要的事件完成时才会得到通知,之后可以直接进行业务处理.Server端Java代码原创 2011-10-08 10:24:42 · 1917 阅读 · 0 评论 -
Java调用系统命令学习(2)
经过上一篇的学习,应该对Java中的Runtime类的exec方法了大致的了解,也知道应该如何去使用了吧。首先学习下:Process类。简单地测试一下:调用Javac命令,并查看执行命令的返回值,并输出到控制台上去。Java代码转载 2011-09-26 22:23:49 · 5684 阅读 · 0 评论 -
Java调用系统命令学习(3)
学习了两篇的Runtime类,现在对它有了更深一层的了解,那么我们来看看下面的代码:Java代码 import java.io.IOException; import java.io.InputStream; import java.io.Input转载 2011-09-26 22:26:23 · 2158 阅读 · 0 评论 -
Java调用系统命令学习(1)
import java.io.*; class Exec{ public static void main(String []args)throws IOException{ //Linux系统命令:ls -l转载 2011-09-26 22:15:48 · 1735 阅读 · 0 评论 -
java的File.renameTo(File)方法
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一转载 2011-09-22 16:29:37 · 2850 阅读 · 0 评论 -
Socket参数用法(1)
Socket有以下几个选项: n TCP_NODELAY:表示立即发送数据。 n SO_RESUSEADDR:表示是否允许重用Socket所绑定的本地地址。 n SO_TIMEOUT:表示接收数据时的等待超时时间。 n SO_LINGER:表示当执行Socket的原创 2011-08-03 10:23:59 · 3672 阅读 · 0 评论 -
Java I/O性能提升
<br />在应用程序中,通常会涉及到两种类型的计算:CPU计算和I/O计算。对于大多数应用来说,花费在等待I/O上的时间是占较大比重的。通常需要等待速度较慢的磁盘或是网络连接完成I/O请求,才能继续后面的CPU计算任务。因此提高I/O操作的效率对应用的性能有较大的帮助。本文将介绍Java语言中与I/O操作相关的内容,包括基本的Java I/O和Java NIO,着重于基本概念和最佳实践。流<br />Java语言提供了多个层次不同的概念来对I/O操作进行抽象。Java I/O中最早的概念是流,包括转载 2011-05-05 17:07:00 · 1374 阅读 · 0 评论 -
Java泛型
<br />Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。对于泛型概念的引入,开发社区的观点是褒贬不一。从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明显的错误。而从不好的地方来说,为了保证与旧有版本的兼容性,Java泛型的实现上存转载 2011-04-23 13:54:00 · 609 阅读 · 0 评论 -
Java类的加载、链接和初始化
<br />Java类的加载是由类加载器来完成的。一般来说,类加载器分成两类:启动类加载器(bootstrap)和用户自定义的类加载器(user-defined)。两者的区别在于启动类加载器是由JVM的原生代码实现的,而用户自定义的类加载器都继承自Java中的java.lang.ClassLoader类。在用户自定义类加载器的部分,一般JVM都会提供一些基本实现。应用程序的开发人员也可以根据需要编写自己的类加载器。JVM中最常使用的是系统类加载器(system),它用来启动Java应用程序的加载。通过j转载 2011-04-21 13:36:00 · 2744 阅读 · 0 评论 -
Java垃圾回收机制与引用类型
Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存。C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存。这对开发人员提出了比较高的要求,容易造成内存访问错误和内存泄露等问题。一个常见的问题是会产生“悬挂引用(dangling references)”,即一个对象引用所指向的内存区块已经被错误的回收并重新分配给新的对象了,程序如果继续使用这个引用的话会造成不可预期的结果。开发人员有可能忘转载 2011-04-22 14:28:00 · 849 阅读 · 0 评论 -
Java字节代码的操纵
在一般的Java应用开发过程中,开发人员使用Java的方式比较简单。打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte code),以类文件的形式保存在磁盘上(.class)。Java虚拟机(JVM)会负责把Java字节代码加载并执行。Java通过这种方式来实现其“编写一次,到处运转载 2011-04-19 12:39:00 · 1040 阅读 · 0 评论 -
Java反射与动态代理
<br /> 与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构。反射API中提供的动态代理也是非常强大的功能,可以原生实现AOP中 的方法拦截功能。正如英文单词reflection的含义一样,使用反射API的时候就好像在看一个Java类在水中的倒影一样。知道了Java类的内部 结构之后,就可以与它进行交互,包括创建新的对象和调用对象中的方法等。这种交互方式与直接在源代码中使用的效果是相同的,但是又额外提供了运行时刻的灵活性。使用转载 2011-04-18 14:47:00 · 6718 阅读 · 0 评论 -
Java实例对象占用内存
最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验。 简要说一下,相信会对大家写出优质的程序有所帮助。 下面的论述针对32位系统,对64位系统不适用,后叙经常你写了一个程序,一测试,功能没问题,一看内存占用也不多,就不去考虑其它的东西了。但可能程序使用了一个什么数据结构,会当数据规模变大时,内存占用激增。 基本&&关键的问题是,Java里各种东东占多少内存?转载 2011-06-07 15:20:00 · 6276 阅读 · 2 评论 -
非阻塞通信
本篇文章观点和例子来自 《Java网络编程精解》, 作者为孙卫琴, 出版社为电子工业出版社。 对于用ServerSocket 及 Socket 编写的服务器程序和客户程序, 他们在运行过程中常常会阻塞. 例如, 当一个线程执行 ServerSocket 的accep转载 2011-07-26 19:40:17 · 6680 阅读 · 1 评论