`
liwanchun_xd
  • 浏览: 120508 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论
文章列表
TreeCache是一种结构化的、基于复制的事务缓存。TreeCache是JBoss应用服务器中集群服务—包括JNDI集群、HTTP和EJB的Sesssion集群、JMS集群—的基础框架。其可以单独使用,可以集成到JBossAS应用,也可以集成到其他的应用服务器上。TreeCache是一种树状结构,每个节点拥有一个名字和多个或者没有子节点,除跟节点没有子节点其他节点有且只有一个父母节点,可以通过路径名来访问子节点(FQN:Full Qualified Name),在一个TreeCache中可以存在多棵树,,即可以有多个根节点。当应用于分布式环境时,由于TreeCache是基于复制的,每个子节点的 ...
Hibernate 中实现了良好的Cache 机制,我们可以借助Hibernate 内部的Cache迅速提高系统数据读取性能。 需要注意的是:Hibernate做为一个应用级的数据访问层封装,只能在其作用范围内保持Cache中数据的的有效性,也就是说,在我们的系统与第三方系统共享数据库的情况下,Hibernate的Cache机制可能失效。一个很简单的例子,如果你用access修改了库中的值,那么这就不会更新JVM中的缓冲池,这就导致了赃数据的产生。 Hibernate 在本地JVM 中维护了一个缓冲池,并将从数据库获得的数据保存到池中以供下次重复使用(如果在Hibernate中数据发生了变动 ...
B树(二叉搜索树)定义: 1)、每个非叶子节点至多有两个子节点。 2)、每个节点都存储关键字值。 3)、其左子节点的关键字值小于该节点,且右子节点的关键字值大于或等于该节点。 简略代码实现: /** * 节点类 */ class Node{ public int key; public int data; public Node leftChild; public Node rightChild; public Node(int key, int data){ this.key = key; this.data = data; this.leftChild = ...
package com.study.doublelink; /** * 节点类 */ class Link{ public int data; public Link next; public Link previous; public Link(int data){ this.data = data; this.next = null; this.previous = null; } public void display(){ System.out.println(this.data); } } /** * 双向双端链表类 */ clas ...
哈希表分为两大类,一是开放地址法,二是链地址法。 1)、开放地址法中,通过在哈希表中再找一个空位解决冲突问题。 2)、链地址法中,某个数据项的关键字值还是像通常一样映射到哈希表的单元,而数据项本身插入到这个单元的链表中,其他同样映射到该位置的数据项只需要加入到链表中。 链地址法Java简缩代码: /** * 节点类 */ class Link{ private int data; public Link next; public Link(int data){ this.data = data; this.next = null; } public int getK ...
现有个项目,运行于Linux平台下的tomcat服务中,在页面中查看传递的中文参数值,是乱码。解决方案如下, 第一种方法:在tomcat的server.xml中,对connector添加 URIEncoding="GBK"。 第二种方案:在接受参数程序中,设置语言编码。
   
对象的传递与返回 1、Java对象以引用的方式传递,但就传递来说,是引用值的传递。 2、尽量避免以参数形式返回值。 3、不能以final来限制对象值的修改,因为final修饰的是引用,只能是其不能指向其他对象。 4、方法内没有局部 ...
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。 二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class, ...
大家都清楚Spring的AOP方面工作是很优秀,但是其内在的基础的东西,还是有一大部分不太了解的,其AOP大量用了ThreadLocal,这一个在前面已做了介绍了,还有一个比较重要的怎样用动态代理组装成AOP. 说到动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的lib包啦.spring和hibernate选择了同样的CGlib包,具体表现在:Hibernate主要是利用cglib生成pojo的子类并override get方法来实现lazy loading机制,Sprin ...
Java中对象的串行化(Serialization)和transient关键字: 对象的串行化(Serialization) 一、串行化的概念和目的 1.什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。我们把对象的这种能记录自己的状态以便将来再生的能力。叫作对象的持续性(persistence)。对象通过写出描述自己状态的数值来记录自己 ,这个过程叫对象的串行化(Serialization) 。串行化的主要任务是写出对象实例变量的数值。如果交量是另一对象的引用,则引用的对象也要串行化。这个过程是递归的,串行化可能要涉 ...
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。 基本原理 要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算 ...
RMI-IIOP出现以前,只有RMI和CORBA两种选择来进行分布式程序设计。RMI-IIOP综合了RMI 和CORBA的优点,克服了他们的缺点,使得程序员能更方便的编写分布式程序设计,实现分布式计算。 首先,RMI-IIOP综合了RMI的简单性和CORBA的多语言性(兼容性),其次RMI-IIOP克服了RMI只能 用于Java的缺点和CORBA的复杂性(可以不用掌握IDL). 下面给出了一个非常的简单的RMI-IIOP程序,该程序是在上一个例子(Java2 RMI入门的基础) 上修改完成的,可以对比两个程序的区别。 1. 实现远程接口,生成远程对象,存根(Stub)和框架(Skeleton) ...
 消息中间件原理及JMS简介之一  作者:orangelizq摘要:       现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可扩展性及健壮性,这使得异步处理模型在分布式应用
1、构架师胚胎(程序员)       学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。       2、构架师萌芽(高级程序员)       学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)       3、构架师幼苗(设计师)       应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模 ...
Global site tag (gtag.js) - Google Analytics