摘要:转自:http://blog.csdn.net/yinianshen/article/details/4316809(向原作者致敬) 一般在项目开发过程中,使用比较多的就是先建好表,再利用hibernate反向工程生成*.hbm.xml文件跟POJO类,个人认为由于目前所使用的数据库都是关系数据库,而hibernate作为一个ORM,把对数据库的操作都对象化了,更应当从对象出发,生成数据库里面相关表,这样更加符合人认知事物的习惯。由于hibernate3提供了自带的工具hbm2ddl,建立根据你的对象建立数据库是一件非常简单的事情。SchemaExport工具:Hibernate的hbm2d. 阅读全文
JNI(3)
2013-07-22 16:50 by java20130722, 224 阅读, 0 推荐, 收藏,
摘要:JNI(3)基本类型java 基本类型和 原始机器类型Java TypeNative TypeDescriptionbooleanjbooleanunsigned 8bytejbytesigned 8 bitscharjcharunsigned 16 bitsshortjshortsigned 16 bitsintjintsigned 32 bitslongjlongsigned 64 bitsfloatjfloat32 bitsdoublejdouble64 bitsvoidvoidN/A引用类型JNI包含一定数量的与java对象已对应的引用类型在C中,所有其他引用类型的定义是一样的:typ 阅读全文
JNI(2)
2013-07-22 16:01 by java20130722, 272 阅读, 0 推荐, 收藏,
摘要:JNI(2)访问字段和方法JNI允许本地代码访问java 对象的字段和方法。调用需要两个步骤:例如调用cls类的f方法,1. 获取方法IDjmethodID mid = env->GetMethodID(cls, “f”, “(ILjava/lang/String;)D”);2. 然后本地方法可以重复的使用方法IDjdouble result = env->CallDoubleMethod(obj, mid, 10, str);报告编程错误JNI 不会检查编程错误,例如传递null指针或者非法的类型参数。 非法的类型参数包括使用普通对象代替类对象,JNI不检查这些错误的原因是:检查 阅读全文
Java Native Interface Specification(JNI)
2013-07-22 11:12 by java20130722, 318 阅读, 0 推荐, 收藏,
摘要:Java Native Interface Specification(JNI)使用场景:需要的功能,标准的java不能提供有了一个用其他的语言写好的工具包,希望用java去访问它当需要高性能的功能时(时间是最主要的因素)通过本地方法(通过JNI),可以完成:创建,检查,和更新java 对象(包括数组和Strings)调用java方法捕捉和抛出异常加载类和获取类信息运行时类型检查 阅读全文
用AtomicStampedReference解决ABA问题
2013-07-22 01:17 by java20130722, 15836 阅读, 5 推荐, 收藏,
摘要:在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:现有一个用单向链表实现的堆栈,栈顶为A,这时线程T1已经知道A.next为B,然后希望用CAS将栈顶替换为B:head.compareAndSet(A,B);在T1执行上面这条指令之前,线程T2介入,将A、B出栈,再pushD、C、A,此时堆栈结构如下图,而对象B此时处于游离状态:此时轮到 阅读全文
REST和认证
2013-07-22 01:09 by java20130722, 532 阅读, 0 推荐, 收藏,
摘要:REST和认证我们在设计REST(Representational State Transfer)风格的Web service API,有一个问题经常要考虑,就是如何设计用户认证的体系(Authentication).比较传统的做法是首先有一个登陆的API,然后服务器返回一个session ID,后续的操作客户端都必须带上这个session ID,但是这样的,服务就变成了有状态了,不符合REST风格的原则。另外,由于负载均衡的存在,必须有公共存储来保存用户的Session,这也增加了系统的复杂度。所以比较好的做法是每次都传递认证信息,这样系统就是无状态的,当然由于每次都需要认证,必然降低了一些 阅读全文
paxos 实现
2013-07-22 01:06 by java20130722, 474 阅读, 0 推荐, 收藏,
摘要:本文主要介绍zookeeper中zookeeper Server leader的选举,zookeeper在选举leader的时候采用了paxos算法(主要是fast paxos),这里主要介绍其中两种:LeaderElection 和FastLeaderElection.我们先要清楚以下几点一个Server是如何知道其它的Server在zookeeper中,一个zookeeper集群有多少个Server是固定,每个Server用于选举的IP和PORT都在配置文件中除了IP和PORT能标识一个Server外,还有没有别的方法每一个Server都有一个数字编号,而且是唯一的,我们根据配置文件中的配 阅读全文
Zookeeper全解析——Paxos作为灵魂
2013-07-22 01:03 by java20130722, 166 阅读, 0 推荐, 收藏,
摘要:Zookeeper全解析——Paxos作为灵魂原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为 阅读全文
【转】zookeeper 学习资料
2013-07-22 00:56 by java20130722, 204 阅读, 0 推荐, 收藏,
摘要:这段时间学习zookeeper,记录一下找到的一些资料zookeeper学习记录http://agapple.iteye.com/blog/1111377zookeeper watcher功能分析http://luzengyi.blog.163.com/blog/static/529188201064113744373/ watcher evetn对象客户端与服务器交互的流程http://luzengyi.blog.163.com/blog/static/529188201061155444869/watch 事件的注册和调用基于zookeeper的分布式lock实现http://agappl 阅读全文
基于ZooKeeper的分布式Session实现
2013-07-22 00:51 by java20130722, 303 阅读, 0 推荐, 收藏,
摘要:1.认识ZooKeeperZooKeeper—— “动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动 物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相互串门,或是相互厮杀,就需要动物园管理员按照动物的各种习性加以分类和管理,这样我们才 能更加放心安全的观赏动物。回到我们企业级应用系统中,随着信息化水平的不断提高,我们的企业级系统变得越来越庞大臃肿,性能急剧下降,客户抱怨频频。拆 分系统是目前我们可选择的解决系统可伸缩性和性能问题的唯一行之有效的方法。但是拆分系统同时也带来了系统的复杂性—— 阅读全文