java编程
xuyuanshu123
这个作者很懒,什么都没留下…
展开
-
java多线程文件下载
1、DownloadManager类[code="java"]import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Outpu...原创 2012-03-08 20:03:06 · 156 阅读 · 0 评论 -
快排和插入排序
public class CombineQuickSortInsertionSort { private long[] data; private int len; public CombineQuickSortInsertionSort(int max) { data = new long[max]; len = 0; } publ...原创 2011-10-20 17:08:13 · 240 阅读 · 0 评论 -
httpclient 介绍
1.HttpClient简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。HTTP 协议可能是现在 Internet 上使用得最多、最重要的...原创 2011-07-28 09:33:30 · 84 阅读 · 0 评论 -
thread中start和run方法的区别
认识Thread的start和run1) start:用 start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Ru...原创 2011-03-17 19:36:48 · 188 阅读 · 0 评论 -
java NIO
一、NIO的出现 NIO是JDK1.4里面才出现的东东,他给大家带来的最大好处是异步socket。其它file,pipe暂时就不多谈了。 在JDK1.4出现之前,如果你需要编写一个Java服务器,为了实现异步操作,你必须为每个连接请求生成一个Java线程,当连接请求很多时,线程的调度,上下文切换,所付出的代价是非常昂贵,而且由于Java是跨平台的,各个平台对线程...原创 2011-10-09 19:22:55 · 113 阅读 · 0 评论 -
java 远程通信协议
Java 远程通讯可选技术及原理在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制...原创 2011-10-09 16:55:14 · 193 阅读 · 0 评论 -
java解析xml的四种方法
1. DOM(Document Object Model) 此方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点 。 因此非常消耗系统性能 ,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML 规范。每个结点都可以扩展的基于 Node 的接口,就多态性的观点来讲,它是优秀的,但是在 Java 语言中的应用不方...原创 2011-07-13 22:52:19 · 123 阅读 · 0 评论 -
xml字符串转化为规则格式的xml字符串
:D :D :D :D :D :D :D [code="java"]import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.StringWriter;import org.dom4j.Document;import org.dom4j.DocumentExc...原创 2011-07-13 18:53:24 · 184 阅读 · 0 评论 -
java中的参数传递
面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。----------...原创 2011-07-13 10:48:27 · 112 阅读 · 0 评论 -
Static静态库看java类装载
//当程序启动时,这段代码(静态块中的)会自动执行,向userDB中存入数据[code="java"]static{for(int i=0;i原创 2011-03-24 11:27:01 · 133 阅读 · 0 评论 -
ThreadLocal 知识
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是 Thread的局部变量...原创 2011-08-05 13:58:33 · 84 阅读 · 0 评论 -
内部类inner class和嵌套类nested class
Java是一种完全的面向对象的语言,作为对象的灵魂,类的种类是多种多样的。类大致可以分外部类和内部类两种,外部类就是我们通常使用的类,而内部类的使用要比外部类少的多,最常见的是GUI事件侦听器。内部类的应用虽然不多,但是如果能够有效的使用内部类,能达到事半功倍的效果。 内部类(Inner Classes)和嵌套类(Nested Classes)是指在一个类里面定义的另一个类。其次...原创 2011-03-30 18:54:07 · 173 阅读 · 0 评论 -
java异常处理
[code="java"]public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { test1(); Syst...原创 2011-11-30 15:27:53 · 125 阅读 · 0 评论 -
jmx介绍
[color=red]"JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理"[/color]举一个应用实例:在一个系统中常常会有一些配置信息,比如服务的IP地址,端口号什么的,那么如何来写这些代码呢? 1. 程序初哥一般是写死在程序里,到要...原创 2012-05-18 15:21:09 · 225 阅读 · 0 评论 -
RMI介绍
Java RMI (Remote Method Invocation)Java RMI是一种机制, 是能够让一个 java虚拟机 调用 另一个java 虚拟机上对象的方法, 从而实现远程访问.但是通过客户端实现该远程访问 必须绑定一个远程接口对象.RMI可以称作不同jvm间的访问协议。定义远程接口首先 我们写个远程接口 HelloInterface 该接口继承了远程对象...原创 2012-05-18 09:55:51 · 220 阅读 · 0 评论 -
java丢手帕 约瑟夫问题
一、问题描述: n个人围成一个圈,编号为1~n,从第一号开始报数,报到3的倍数的人离开,一直数下去,直到最后只有一个人,求此人编号。二、问题提示: :D 使用一维数组,数组元素初始为1,从1开始把数字放进数组空间,若数组元素为3的倍数,则把其置0,循环下去直到计数器(counter)减为1,则跳出循环并输出其数组下标[code="java"]impor...原创 2011-04-01 19:07:44 · 155 阅读 · 0 评论 -
junit使用
测试分类:白箱测试、黑箱测试、单元测试、集成测试、功能测试...。白箱测试是指在知道被测试的软件如何(How)完成功能和完成什么样(What)的功能的条件下所作的测试,一般是由开发人员完成,单元测试是一种白箱测试,因为开发人员最了解自己编写的软件。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架,回归测试就是你不断地对所编写的代码进行测试(如单元测试):编写...原创 2011-08-05 16:41:13 · 86 阅读 · 0 评论 -
HTTP和socket区别
:D 1、TCP连接要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器...原创 2011-03-31 19:04:22 · 87 阅读 · 0 评论 -
http通信
HTTP(HyperText Transfer Protocol)是超文本转移协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或...原创 2011-03-31 13:21:44 · 84 阅读 · 0 评论 -
cfg文件
CFG文件格式:大多数情况下,很多程序都要保存用户的设置,办法有很多:注册表,日志文件...... 而很多程序都使用了一个专用的文件。为了方便起见,常常命名为*.cfg,有时甚至直接命名为Config.cfg。这只是一个为开发及使用方便而"发明"的一个后缀名。所以,这种文件没有固定的格式,其实也并不能算作是一种文件类型。用途也仅仅是保存用户的设置,平常没有必要打开。可以使用java...原创 2011-03-30 20:52:57 · 1687 阅读 · 0 评论 -
StringUtils的实用方法
tringUtils 方法的操作对象是 java.lang.String 类型的对象,是对 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器...原创 2011-07-13 10:16:32 · 100 阅读 · 0 评论 -
system.exit
System.exit()用来结束当前运行的java虚拟机,参数n表示退出的状态码。这个状态码没有特别规定,但是按照约定俗成,非0表示异常退出,0表示正常退出,因此一般用0、-1多...原创 2011-09-29 17:00:21 · 135 阅读 · 0 评论 -
java 文件读取方法
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 [code="java"]public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(Str...原创 2011-09-27 14:50:57 · 119 阅读 · 0 评论 -
java中的ArrayList和LinkList
ArrayList(数组对象)与LinkedList(链表对象)是java中的两个专门用来处理数据元素列表的类。这两个类在性能特性方面存在较大差别,差别源于它们不同的存储结构。ArrayList是通过内部数据结构Object[]实现的;而LinkedList是通过将一系列的内部记录连接在一起实现的。它们性能的差异使它们拥有各自不同的适用场合。当需要在某个位置添加一个新元素时,应...原创 2011-05-17 10:04:02 · 217 阅读 · 1 评论 -
java的system.arraycopy()方法
java.lang.System的静态方法arraycopy()可以实现数组的复制,讲课的老师说这个方法效率比较高,如果数组有成千上万个元素,那么用这个方法,比用for语句循环快不少。于是我试了试,发现以下问题。如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。但是如果复制一个二维数组,那么改变其中任何一个数组,那么另一个的值也发生了变化。开始不是很明白,后来上网查了查资料,理解...原创 2011-05-17 09:37:30 · 722 阅读 · 0 评论 -
java中的equal
如果:string s1=new String("Hello");string s2=new String("Hello");则(s1==s2)=false而:string s1="Hello";string s2="Hello";则(s1==s2)=true;因为他们指向的同一个对象。通过上例,可以看出,字符串在初始化时:String s1="...原创 2011-05-16 15:55:19 · 269 阅读 · 0 评论 -
Java程序中有关内存管理的经验
根据上面讲解的JVM内存管理系统的工作原理,我们可以通过一些技巧和方式,让JVM做GC处理时更加有效率,更加符合应用程序的要求。以下就是程序设计的一些经验。(1)最基本的建议就是尽早释放无用对象的引用。大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为null。我们在使用这种方式时,必须特别注意一些复杂的对象图,例如数组、队列、树、图等,这些对象之间的...原创 2011-05-15 19:25:19 · 86 阅读 · 0 评论 -
java 瞬间值及JVM内存参数优化
瞬间值相信你在做远程方法调用(RMI)类的应用开发时,应该遇到过使用瞬间值(transient)变量与实现java.lang.Serializable接口的问题,之所以要使对象实现java.lang.Serializable接口,是因为这样就可以从远程环境以对象流的方式,将对象传递到相应的调用环境中,但是有时这些被传递的对象的一些属性数据并不需要被传递,因为这些数据成员对于应用需求而言是无...原创 2011-05-15 19:14:45 · 182 阅读 · 0 评论 -
java 对象重用和垃圾回收GC
:D :D 对象重用与GC有时候我们为了提高系统的性能,避免重复耗时的操作,希望能够重用某些创建完成的对象。既然是重用(reuse)现有对象,就会涉及对象保存的问题,通常我们把用来缓存对象的容器对象称为对象池(ObjectPool)。通过对象池技术,我们可以大大地提高应用的性能,减少内存需求,例如,我们经常用到的JDBC连接池与EJB实例池等技术,都属于对象池技术的范畴。通过使...原创 2011-05-15 10:49:48 · 387 阅读 · 0 评论 -
java static静态变量
共享静态变量存储空间我们知道类中的静态变量(Static Variable)在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,因此在某些时候为了节省系统内存开销、共享资源,将类中的一些变量声明为静态变量,通过下面的例子,你可以发现合理应用静态变量带来的好处:[code="java"]public class WeekB{ static class Data ...原创 2011-05-15 10:35:51 · 94 阅读 · 0 评论 -
java数组
数组的创建 数组空间的申请分为显式申请与隐式申请两种。显式申请是指在程序中直接给出数组的类型与长度,例如:[code="java"]... ...int [] intArray = new int[1024];... ...[/code]面的这行代码就是显式地向系统一次性申请了大小为1KB的整数类型的内存空间,这样的声明方式一般出现在对文件或网络的资源读取的处理代码中...原创 2011-05-15 10:26:57 · 89 阅读 · 0 评论 -
JAVA中String与StringBuffer的区别
在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进...原创 2011-05-17 10:18:56 · 85 阅读 · 0 评论 -
java tochararray方法的优化
1. 良好的风格:String s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; char[] ch = s.toCharArray(); int len = ch.length; for(int i = 0; i < len; i++) { if (ch[i] == '*') { // ..... }...原创 2011-05-17 11:24:39 · 261 阅读 · 0 评论 -
java JNI的使用
JAVA本地接口(JNI),是JAVA比较特殊的课题,因为JAVA本地接口(JNI)设计不只是JAVA语言设计,它还是JAVA与C或C++程序设计语言结合的课题. 通常来说一般会在如下情况使用JNI技术: 1,应用需要调用JAVA语言不支持的依赖于系统平台的特性. 2,为了整合一些遗留下来的非JAVA语言开发的系统. 3,为了...原创 2011-05-17 14:48:25 · 162 阅读 · 0 评论 -
java dom解析xml
一、前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。...原创 2011-07-08 16:56:25 · 119 阅读 · 0 评论 -
java生成xml
[code="java"]# /** # * desciption:java create xml file # * author:maomao # * datetime:2007/04/04 23:42 # */ # # package com.xh.xml; # # import java.io.FileOutputStre...原创 2011-07-08 16:22:12 · 81 阅读 · 0 评论 -
java 同步阻塞io和异步非阻塞io
NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。反应器(Reactor):用于事件多路分离和分派的体系结构模式通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞 与非阻塞 。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待 状态, 直到有东西可读或者可写为止。而对于非阻塞状态...原创 2011-07-01 10:56:54 · 225 阅读 · 0 评论 -
Java对象的equals()和hashCode()
:D :D :D :D :D :D 解析Java对象的equals()和hashCode()的使用前言在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况 下,这两个函数是不用考虑的,直接使用它们的默认设计就可以了。但是在一些情况下,这两个函数最好是自己设计,才能确保整个程序的正常运行。...原创 2011-07-01 10:10:15 · 73 阅读 · 0 评论 -
timestamp时间戳
timestamp是一种时间类型 精度很高,比datetime要精确的多,通常用来防止数据出现脏读现象主要用在数据库上,你可以再java.sql这个包内找到这个类,一般数据库里如果用Date这个类的话,那你取出来的时候只能到某一天,也就是日,但是Timestamp的话,就是到小时一直到纳秒,很精确的。但是你把时间存进去的时候也要用这个类。比如:mysql的话,你可以用setTimtstam...原创 2011-09-05 09:51:56 · 315 阅读 · 0 评论 -
java 动态代理类的实现,原理及应用
在目前的Java开发包中包含了对动态代理的支持,但是其实现只支持对接口的的实现。其实现主要通过是java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约束调用者实现,如下,HelloWorld接口定义的业务方法,HelloWorld...原创 2011-09-03 11:02:00 · 163 阅读 · 0 评论