存档

‘Java’ 分类的存档

Java异常处理

2012年6月29日 tianhl 没有评论

进行架构设计时,回避不了异常这个技术点,如何决定抛出哪种异常? 如果调用者可以为这个异常做些什么,那么就应该抛出被检查异常,否则最好是使用运行时异常。例如:FileNotFoundException是一个被检查异常,大多数时候,调用者可能做一些事情来处理这个问题;NullPointerException是一个无须检查的运行时异常,不仅因为它通常是致命的,还因为它可能在程序执行的任何时刻发生。

分类: Java 标签: ,

Java技术路线图

2012年6月25日 tianhl 没有评论

分类: Java 标签: ,

eclipse升级而不影响自定义插件的方法

2012年6月13日 tianhl 没有评论

从我一开始用eclipse,就是3.1的m5版,到正式版出来前的m6, m7, rc1, rc2, rc3, rc4 经历了无数次的升级。也总结了一些经验,可以轻松升级系统而不用担心插件重装的困扰。 首先,非eclipse自带的插件都应该安装在eclipse以外的目录,用link的方法安装。比如我就放在c:ec_plugins 下面. 有的程序用安装的或者eclipse的update的方式安装的,可以选择目录。有的插件就是一个zip包或者几个文件的,应该这样: 以我的目录结构为例, 1 ,创建目录 c:ec_plugins 然后创建 c:ec_pluginseclipse 再创建 c:ec_pluginseclipseplugins 和 c:ec_pluginseclipsefeatures 然后把所有的第三方插件全部装到ec_pluginseclipse下面相应的目录中去。 2. 在eclipse主

分类: Java 标签: ,

CAP理论

2012年6月12日 tianhl 没有评论

CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致性和可用性,进而取得三者之间的平衡。 自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度。NoSQL运动也将CAP理论当作对抗传统关系型数据库的依据。 CAP理论主张任何基于网络的数据共享系统,都最多只能拥有以下三条中的两条: •数据一致性(C),等同于所有节点访问同一份最新的数据副本; •对数据更新具备高可用性(A); •能容忍网络分区(P)。 CAP理论的表述很好地服务了它的目的,即开阔设计师的思

分类: Java 标签:

OSGI Spring Hibernate的优势

2012年6月11日 tianhl 没有评论

在网上看到这么一句话觉得总结的非常好: 从高内聚,低耦合到设计模式,从 Ioc 、 Spring 框架 到 SOA 我们一步一步的抽象着、分离着。很显然,我们需要一个灵活而不失严谨的架构,需要一个功能强进而不令人生畏的产品; 企业的应用软件发展还有着很大的空间和尺度,也大概明白为什么OSGI起源于1999年却近几年才进入软件行业,当时软件业确实还不发达,人们确实想不了这么多,做软件只为了能解决一些问题而做。而如今更多是要资源最大化共享,就想着怎么能把原来做过的软件集成起来,不用再做个新的,于是就有了SOA。随着Eclipse的成功,大家对它以OSGI为核心的插件体系无不赞叹,原来做软件可以像搭积木一样的拼装,多么美妙,人们也就认识到

分类: Java 标签: , ,

OSGi的优缺点

2012年6月10日 tianhl 没有评论

对于OSGi,有人评论称OSGi是“Spring之后的下一个big thing”。不过该文的作者后来又觉得,OSGi也有不少的问题,其中之一就是它在把技术变得复杂化。作者是这样说的:   我对OSGi不怀疑并承认OSGi解决了许多问题,而且它支持一些出众的结构模型比如高模块化(high modularization)以及微服务(micro services)。然而从另外一个角度来说,在使用了OSGi几年之后,也体验了它在不同领域的表现(我是指开发领域)之后,我真的开始怀疑OSGi了。   这是我喜欢和讨厌的OSGi的一些方面:   它从几百个具有代表性的小bundle中创建出一个系统的概念非常棒。OSGi bundle很好的一点是它们定义了边界:不仅从依赖关系的意义上,而且从运行时间的意义

分类: Java 标签: ,

java的(PO,VO,TO,BO,DAO,POJO)解释

2012年6月10日 tianhl 没有评论

O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。   VO,值对象(Value Object),PO,持久对象(Persisent Object),它们是由一组属性和属性的get和set方法组成。从结构上看,它们并没有什么不同的地方。但从其意义和本质上来看是完全不同的。 1.VO是用new关键字创建,由GC回收的。   PO则是向数据库中添加新数据时创建,删除数据库中数据时削除的。并且它只能存活在一个数据库连接中,断开连接即被销毁。 2.VO是值对象,精确点讲它是业务对象,是存活在业务层的,是业务逻辑使

分类: Java 标签:

OSGi概念

2012年6月6日 tianhl 没有评论

OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。 OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。OSGi容器已有多家开源实现,比如Knoflerfish、Equinox和Apache的Felix。您可以通过这些容器,把您的应用程序劈分为多个模块单元,这样,您就可以更容易地管理这些模块单元之间的交叉依赖关系。 OSGi规范和Servlet规范及EJB规范类似,该规范定义了两种对

分类: Java 标签:

MYSQL索引在查询中如何使用?

2012年5月31日 tianhl 没有评论

假如你有一个表, SQL> CREATE TABLE test_tab ( 2 id INT, 3 name VARCHAR(10), 4 age INT, 5 val VARCHAR(10) 6 ); 你的业务,有一个查询,是 SELECT * FROM test_tab WHERE name = 一个外部输入的数据 刚开始,数据不多的时候,执行效果还不错。 随着数据量的增加,这个查询,执行起来,越来越慢了。 然后在 name 上面 建立了索引 CREATE INDEX idx_test4_name ON test_tab (name ); 这样, 可以加快前面那个查询的速度。 但是,某天,你执行了下面这个SQL, 发现速度又慢了 SELECT * FROM test_tab WHERE age = 25 为啥呢? 因为 age 字段上面,没有索引 索引只在 name 上面有 换句话说, 也就是 WHERE 里面的条件, 会自动判断,有没有

分类: Java 标签: ,

mysql语句大全

2012年5月31日 tianhl 没有评论

选择: select * from user where user.id=1; 插入: insert into user(user.id,user.name,user.pwd) values('3','testname','testpwd') insert into booktest(booktest.id,booktest.name,booktest.price,booktest.userid) values(1,'好书名',15,null) 删除: delete from user where id=3 更新: update user set user.name='updatename' where user.id=2 Like语句: select * from user where user.name like '%name%' 排序: select * from user order by user.id desc 总数: select count(*) from user 求和: select sum(book.price) from book 平均: select avg(book.price) from book 最大: select max(book.price) from b

分类: Java 标签: