
java学习
文章平均质量分 67
xrt95050
喜欢NBA,最喜欢的球星是科比。
喜欢音乐,喜欢上网。
展开
-
java类加载过程
java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下: 1、首先加载要创建对象的类及其直接与间接父类。 2、在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行。 3、需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行。 4、转载 2012-03-13 17:57:47 · 1427 阅读 · 0 评论 -
ThreadPoolTaskExecutor 创建线程池管理
spring给我们提供了非常简便的线程池管理的包装类ThreadPoolTaskExecutor,本地启动一个为异步任务创建线程池的方法: 1bean id="threadPoolTaskExecutor"2 class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">3转载 2011-12-12 16:25:36 · 5651 阅读 · 3 评论 -
推荐引擎文章介绍
查看如下网址:http://www.20ju.com/content/V168947.htm转载 2011-09-26 16:21:11 · 610 阅读 · 0 评论 -
List对象排序通用方法
在数据库中查出来的列表list中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能。只要把第一次查出来的结果存放在session中,就可以对list重新排序了。一般对l转载 2011-09-08 11:30:03 · 1185 阅读 · 0 评论 -
Java正则表达式——分组与捕获
今天处理语料的时候,遇到了问题,问题如下:一些标注好的标有艺术家、歌曲名、专辑名等的音乐评论的帖子,例如:Smile组合继第一张专辑《Smile》之后又推出的一张舞曲大碟。我想在这样含有两个不同标注实体(艺术家、专辑名)的的句子当中统计动词的频率。 好了,现在问题清转载 2011-08-05 18:25:20 · 3195 阅读 · 1 评论 -
Commons-IO 的 IOUtils 的几个简单例子
[代码] java代码01//使用JDK的方法02InputStream in = new URL( "http://www.oschina.net" ).openStream();转载 2011-08-01 16:47:54 · 1760 阅读 · 0 评论 -
正则表达式:string.replaceAll()中的特殊字符($ \)与matcher.appendReplacement
string.replaceAll中的特殊字符string.replaceAll(String regex, String replacement)中的replacement参数即替换内容中含有特殊字符 $ \ 时,需转义。 Java代码转载 2011-08-01 17:36:26 · 26025 阅读 · 4 评论 -
jdk中常用类的使用
1.System类使用:数组copy:从一个数组复制到另外一个数组 public static void arraycopy(Object src, int srcPos, Object dest, int destPos,int length)从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。从 src 引用的源数组到 dest 引用的目标数组,数组组件的一个子序列被复制下来。被复制的组件的编号等于 length 参数。源数组中位置在 srcPos 到 srcPos+leng原创 2011-02-16 15:19:00 · 1585 阅读 · 0 评论 -
java的cp命令
<br />-cp 参数后面是类路径,是指定给解释器到哪里找到你的.class文件, <br />写法: <br />java -cp .;myClass.jar packname.mainclassname <br />classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径。<br />要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符 <br />java -cp .;c:/classes/myClass.jar;d:原创 2011-02-15 11:05:00 · 9689 阅读 · 0 评论 -
Java线程:线程的调度-优先级
与线程休眠类似,线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。 线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。 在一个线程中开启另外一个新线程,则新开线程称为该线程的子线程,子线程初始优先级与父线程相同。 /** <br />* Java线程:线程的调度-优先级 <br />* <br />* @author leizhimin 2009-11-4 9:02:40 <br />*/<br />publiccla转载 2011-02-10 11:27:00 · 452 阅读 · 0 评论 -
线程的调度-休眠
Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率。 这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制。 线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行。 线程休眠的方法是Thread.sleep(long millis) 和Thread.sleep(long millis, int nanos) ,均转载 2011-02-10 11:25:00 · 488 阅读 · 0 评论 -
Java线程:新特征-线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。 有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目前有关这方面的资料和书籍都少之又少,大所属介绍线程方面书籍还停留在java5之前的知识层面上。 当然新特征对做多线程程序没转载 2011-02-10 11:21:00 · 613 阅读 · 0 评论 -
Java线程:并发协作-生产者消费者模型
对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。 实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。对于此模型,应该明确一下几点:1、生产者仅仅在仓储未满时候生产,仓满则停止生产。2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。3、当消费者发现仓储没产品可消费时候会通知生产者生产。4、生产者在生产出可消费产品时候,应该通知等待的消费者去消费。 此模型将要结合java转载 2011-02-10 11:18:00 · 752 阅读 · 0 评论 -
java正则表达式替换
★ replaceAll ()/appendReplacement()/appendTail(): Matcher 类同时提供了四个将匹配子串替换成指定字符串的方法:replaceAll()replaceFirst()appendReplacement()appendTail()public class Test { /** * @param转载 2011-12-30 18:19:49 · 22445 阅读 · 3 评论 -
详解JVM工作原理和特点
JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类。 在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.JVM是Java程序运行转载 2012-03-03 18:01:08 · 434 阅读 · 0 评论 -
深入Java虚拟机:JVM中的Stack和Heap
在JVM中,静态属性保存在Stack指令内存区,动态属性保存在Heap数据内存区。本文将从JVM的角度来讲解Java虚拟机的这一机制。AD: 在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题。一般,JVM的内存分为两部转载 2012-03-03 14:21:34 · 562 阅读 · 0 评论 -
java集合总结
下面是我自己画的,关系画得没上面好,但我自己看着清楚些还有一张下载来的: 有序否允许元素重复否Collection否是List是是SetAbstractSet否否HashS转载 2012-03-07 12:26:49 · 750 阅读 · 0 评论 -
java异常处理
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦! Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这转载 2012-03-07 12:30:46 · 538 阅读 · 0 评论 -
jvm垃圾回收参数配置
一、相关概念基本回收算法引用计数(Reference Counting)比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep)此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记转载 2012-03-06 19:48:35 · 4347 阅读 · 0 评论 -
jvm垃圾回收
在jvm中堆空间划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation)。年轻代和年老代是存储动态产生的对象。永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本不参与垃圾回收。我们这里讨论的垃圾回收主要是针对年轻代和年老代。具体如下图。年轻代又分成3个部分,转载 2012-03-06 19:33:56 · 795 阅读 · 0 评论 -
java注解
在开发Java程序,尤其是Java EE应用的时候,总是免不了与各种配置文件打交道。以Java EE中典型的S(pring)S(truts)H(ibernate)架构来说,Spring、Struts和Hibernate这三个框架都有自己的XML格式的配置文件。这些配置文件需要与Java源代码保存同步,否则的话就可能出现错误。而且这些错误有可能到了运行时刻才被发现。把同一份信息保存在两个地方,总是个转载 2012-03-05 19:28:31 · 1410 阅读 · 0 评论 -
优化 Java 垃圾收集器改进系统性能
在系统的性能测试过程中,当系统的处理能力有某种变化趋势时, 除了关于等待队列、执行线程,EJB 池以及数据库连接池和 Statement Cache 方面的调优外,还要考虑到 Java 垃圾收集器(Garbage Collection,本文简称 GC)对系统性能的影响。本文介绍了如何分析系统的处理能力和 GC 之间的关系,以及如何通过改进 JVM 的配置来优化 GC,以提高系统的性能。 1个大转载 2012-03-03 18:16:50 · 741 阅读 · 0 评论 -
JVM GC调整优化过程全揭秘
JVM GC调整优化是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的JVM GC种类也会不同。接下来,我简单介绍一下如何进行JVM GC调整优化。首先说一下如何监视JVM GC,你可以使用我以前文章中提到的JDK中的jstat工具,转载 2012-03-03 18:11:04 · 628 阅读 · 0 评论 -
JVM基础概念总结:数据类型、堆与栈
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte, short, int, long, char, float, double, Boolean, returnAddress引用类转载 2012-03-03 18:06:51 · 568 阅读 · 0 评论 -
浅谈Sun JVM中的内存管理及调优
1. Sun JVM的GC概述 GC即垃圾收集机制是指Sun JVM用于释放那些不再使用的对象所占用的内存。java语言并不要求Sun JVM有GC,也没有规定GC如何工作。不过常用的Sun JVM都有GC,而且大多数GC都使用类似的算法管理内存和执行收集操作。在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避转载 2012-03-03 18:03:56 · 678 阅读 · 0 评论 -
Java虚拟机类装载:原理、实现与应用
Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行。 一、引言Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。JVM的类动态装载技术能够在运行时刻动态地加载转载 2012-03-03 17:58:10 · 494 阅读 · 0 评论 -
Java虚拟机(JVM)中的内存设置详解
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。GC(Garbage Collecti转载 2012-03-03 17:29:46 · 472 阅读 · 0 评论 -
JVM参数调优实例解析
要想做好JVM参数的调优,需要对年轻代、年老代、救助空间和永久代有一定了解,还要了解JVM内存管理逻辑,最终还要根据自己的应用来做调整,各个方面都要把握好。AD: 关于JVM参数调优,对于很多程序员来说都是很头痛的问题,如果设置的不好,JVM不断执行Full GC,将导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都转载 2012-03-03 14:27:43 · 479 阅读 · 0 评论 -
Java线程:线程的交互
线程交互是比较复杂的问题,SCJP要求不很基础:给定一个场景,编写代码来恰当使用等待、通知和通知所有线程。 一、线程交互的基础知识 SCJP所要求的线程交互知识点需要从java.lang.Object的类的三个方法来学习: void notify() <br /> 唤醒在此对象监视器上等待的单个线程。 <br /> void notifyAll() <br /> 唤醒在此对象监视器上等待的所有线程。 <br /> void wait() <br />转载 2011-02-10 11:16:00 · 764 阅读 · 0 评论 -
Java线程:线程状态的转换
一、线程状态 线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下: 1、新状态:线程对象已经创建,还没有在其上调用start()方法。 2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。 3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状转载 2011-02-10 11:12:00 · 530 阅读 · 0 评论 -
java 多线程
java 多线程转载 2010-07-06 12:21:00 · 514 阅读 · 0 评论 -
JAVA语言运算符
java的运算符原创 2010-06-28 12:07:00 · 2025 阅读 · 0 评论 -
java的运算符
移位运算原创 2010-06-28 12:05:00 · 726 阅读 · 0 评论 -
java.lang.OutOfMemoryError: PermGen space及其解决方法
1、PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的He转载 2010-05-04 12:59:00 · 574 阅读 · 0 评论 -
Java中的ASCII、Unicode和UTF-8字符编码集
java 的几种编码格式转载 2010-06-28 15:55:00 · 8659 阅读 · 0 评论 -
JMS
jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持定义JMSJMS(Java Messaging Service)姐妹们是Java平台上有关面向消转载 2010-04-09 17:26:00 · 564 阅读 · 0 评论 -
JVM启动时的三个类加载器
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloader bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类。在Sun的JVM中,在执行java原创 2009-08-05 21:43:00 · 6953 阅读 · 2 评论 -
XML的解析方式(DOM,SAX,StAX)
简说XML的解析方式(DOM,SAX,StAX) 一般来说,解析XML文件存在着两种方式,一种是event-based API,比如说象SAX,XNI. 第二种是tree-based API,比如说DOM,JDOM,DOM4j等等. 一般来说,读取配置文件时,我们一般比较喜欢应用tree-based API这种方式,就是把xml文件读入,变成DOM形式的一棵树,然后进行查找,获取自己说想原创 2009-08-01 16:20:00 · 1022 阅读 · 0 评论 -
JNDI的学习和认识
JNDIJava术语英文全称是:Java Naming and Directory Interface术语解释:一组帮助做多个命名和目录服务接口的API。JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JND原创 2009-08-01 16:03:00 · 674 阅读 · 0 评论 -
Java学习编程经验分享
来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升?? 1. 关于动态加载机制学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先转载 2008-09-17 15:00:00 · 692 阅读 · 0 评论