Java
leonmau
这个作者很懒,什么都没留下…
展开
-
Java编程思想中异常的限制
1. 构造函数必须抛出基类构造函数的抛出的异常; 这是非常容易理解的,因为派生类的构造函数会调用基类的构造函数,因此肯定得抛出基类的构造函数。 2. 派生类新增的成员函数可以抛出任何异常; 3. 覆盖(overridden)函数可以不抛出任何异常,也可以抛出基类异常的派生异常。 这里涉及到一个upcasting的概念,如下面的例子: public cl...2011-01-08 20:55:14 · 103 阅读 · 0 评论 -
【转载】jms topic与jms queue区别
作者longdick http://longdick.iteye.com在JMS中,Topic实现publish和subscribe语义。一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。JMS Queue执行load b...原创 2011-02-18 17:29:35 · 118 阅读 · 0 评论 -
[转载]线程sleep()和wait()的区别
线程sleep()和wait()的区别 sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,也就是说,在线程里面决定.好比如说,我要做的事情是 "点火->烧水->煮面",而当我点完火之后我不立即烧水,我要休息一段时间再烧.对于运行的主动权是由我的流程来控制. 而wait(),首先,这是由某个确定的对象来调用的,将这个对象理解成一个...原创 2011-07-01 15:07:21 · 65 阅读 · 0 评论 -
java ClassLoader
JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 一. ClassLoader基本概念1.ClassLoader分类类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动内装载器(bootstr...原创 2011-09-28 17:02:49 · 68 阅读 · 0 评论 -
JVM初探
概念:JAVA的JVM的内存可分为5个区:堆(heap)、栈(stack)和方法区(method)、pc Registers、native method stacks 堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存...原创 2011-09-29 13:49:39 · 109 阅读 · 0 评论 -
【转载】JVM中方法区
原文链接:http://hi.baidu.com/lihao_336/blog/item/7aef4fde5165a61548540347.html1. “方法区”简介方法区在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 jvm实现的设计者...原创 2011-09-29 14:17:52 · 69 阅读 · 0 评论 -
JVM Method Table
方法表为了提高访问效率,必须仔细的设计存储在方法区中的数据信息结构。除了以上讨论的结构,jvm的实现者还可以添加一些其他的数据结构,如方法表。jvm对每个加载的非虚拟类的类型信息中都添加了一个方法表,方法表是一组对类实例方法的直接引用(包括从父类继承的方法)。jvm可以通过方法表快速激活实例方法。(译者:这里的方法表与C++中的虚拟函数表一样,但java方法全都是virtual的,自然也不...原创 2011-10-07 16:10:28 · 140 阅读 · 0 评论 -
Java内部类访问
当内部类为非静态时: public class InnerClassTest { private static int i = 0; public class Test { private int i = 1; protected int add() { return i + i; ...原创 2011-10-08 17:37:47 · 89 阅读 · 0 评论 -
Java Enum
public enum Operation { PLUS("+") { double apply(double x, double y) { return x + y; } }, MINUS("-") { double apply(double x, double y) { ...原创 2011-10-08 20:31:04 · 108 阅读 · 0 评论 -
【转载】JAVA NIO 简介
原文链接:http://www.iteye.com/topic/8344471. 基本概念IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。所有语言运行时系统提供执行I/O较高级别的工具。(c...原创 2011-02-18 11:30:47 · 71 阅读 · 0 评论 -
【转载】java 回调函数
java“回调函数” 所谓回调,就是客户程序CLIENT调用服务程序SERVER中的某个函数SA,然后SERVER又在某个时候反过来调用CLIENT中的某个函数CB,对于CLIENT来说,这个CB便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。 一般说来,CLIENT不会自己调用CB,CLIENT提供CB的目的就是让SERVER来调用它,而且是CLIENT不得不提供。由于SE...原创 2011-09-18 16:01:35 · 87 阅读 · 0 评论 -
[转载]java回调函数
转载自:http://www.blogjava.net/hwpok/archive/2008/04/01/190196.html 当通常大家说的回调函数一般就是按照别人的定好的接口规范写的,等待别人调用的函数,在C语言中,回调函数通常通过函数指针来传递;在Java中,通常就是编写另外一个类或类库的人规定一个接口,然后你来实现这个接口,然后把这个实现类的一个对象作为参数传给别人的程序,...原创 2011-04-28 16:55:05 · 76 阅读 · 0 评论 -
RTTI & Reflection(反射机制)
RTTI & Reflection一、RTTI(RunTime Type Indentification)运行时类型识别,顾名思义,指的是在运行时如何判断对象类型的一种机制。先来看一下,什么场合下使用RTTI。1) 向下转型(downcasting),父类对象引用转型赋值给子类引用2) 通过instanceof判断一个对象的类型1.1...2011-01-16 15:45:31 · 173 阅读 · 0 评论 -
【转载】编程式事务 声明式事务区别
原文链接:http://topic.csdn.net/u/20100422/21/8111faea-0dad-4b6a-a4ec-dd4c4326188f.html编程式事务需要你在代码中直接加入处理事务的逻辑,可能需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法,如在执行a方法时候需要事务处理,你需要在a方法开始时候开启事务...原创 2011-05-09 19:08:26 · 83 阅读 · 0 评论 -
【转载】Java 垃圾回收策略调优,实践篇
转载自:http://www.douban.com/group/topic/4450520/ JVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器,网站是shedewang.com,新手可能觉得这文章没有用。 一:串行垃圾回收,也就是默...原创 2011-08-23 17:13:02 · 67 阅读 · 0 评论 -
【转载】jvm的内存调优
原文链接:http://kb.cnblogs.com/a/1653163/ Java内存组成 1) 堆 运行时数据区域,所有类实例和数组的内存均从此处分配。Java 虚拟机启动时创建。对象的堆内存由称为垃圾回收器 的自动内存管理系统回收。 堆由两部分组成: 其中eden+fromspace+tospace也叫年轻代(youn...原创 2011-08-23 17:30:27 · 74 阅读 · 0 评论 -
Java读取classpath中的文件
/** * 类AppsImport.java的实现描述:TODO 类实现描述 * * @author liangliang.maoll 2011-8-29 上午10:33:06 */public class AppsImport { private static final BranchService BRANCH_SERVICE = MinasServi...原创 2011-08-29 11:06:36 · 225 阅读 · 0 评论 -
checked Exception and RuntimeException
1. RuntimeException 虚拟机执行程序时,如果检测到此类异常,会直接抛出并终止程序。通常情况下,程序员不try/catch这种异常,因为此种异常的抛出表示代码存在质量问题。另外一点,此种异常,不需要程序员在代码中显示的抛出,也不需要在方法声明时,进行抛出 class Test { public static void test()/**此处不需要throws Nu...原创 2011-05-29 15:25:26 · 71 阅读 · 0 评论 -
[转载]Java Process.exitValue & Process.waitFor()
Process.exitValue() 采用非阻塞的方式返回,如果没有立即拿到返回值,则抛出异常Process.waitFor() 当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。但是如果我们在调用此方法时,如果不注意的话,很容易出现主线程阻塞,Process也挂起的情况。在调用waitFor() 的时候,Process需要向主线程汇报运行状况,所以要注意清空缓...原创 2011-09-17 13:14:27 · 530 阅读 · 0 评论 -
spring data redis源码框架分析
redis是由Salvatore Sanfilippo用C语言编写的一个缓存系统,与memcached相比,提供了更多的处理复杂数据结构的方法;性能也非常的突出。 由于项目需要,自己简单地看了下spring新加入的模块spring data redis,spring data redis对jedis, jredis, rjc等redis的java客户端接口进行了进一部的抽象,类似于jdbcT...2012-02-06 21:49:17 · 268 阅读 · 0 评论