随笔分类 -  JAVA

1 2 下一页

Spring 笔记1
摘要:1.在java开发领域,Spring相对于EJB来说是一种轻量级的,非侵入性的Java开发框架,曾经有两本很畅销的书《Expert one-on-one J2EE Design and Development》和《Expert one-on-one J2EEdevelopment without EJB》是java高手进阶必看的宝典,Spring就是从这两本书的理论发展起来的。Spring主要核心是:(1).控制反转(IOC):以前传统的java开发模式中,当需要一个对象时我们,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,S 阅读全文

posted @ 2013-12-11 16:05 淇水na个弯 阅读(173) 评论(0) 推荐(0)

hibetnateTemplate常用方法
摘要:一、hibetnateTemplate常用方法1、delete(Object entity) 删除指定的持久化实例在程序中一般先用 Assert.notNull和 Assert.isTrue断言entity是否为空 和 entity的id是否大于0若否则事务回滚。再用get(Class entityClass,Serializable id,LockMode lockMode)加锁查询出持久化实例,一般用lockMode.update悲观锁,最后用delete(Object entity)来删除此实例。2、deleteAll(Collection entities) 删除集合内全部持久化实例e 阅读全文

posted @ 2013-10-13 16:51 淇水na个弯 阅读(447) 评论(0) 推荐(0)

java多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
摘要:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notify先看一下java线程运行时各个阶段的运行状态java实现多线程有两种方法1、继承Thread类2、实现Runnable接口这两种方法的共同点:不论用哪种方法,都必须用Thread(如果是Thead子类就用它本身)产生线程,然后再调用start()方法。两种方法的不同点:1、继承Thread类有一个缺点就是单继承,而实现Runnable接口则弥补了它的缺点,可以实现多继承2、继承Thread类必须如果产生Runnable实例对象,就必须产生多个Run 阅读全文

posted @ 2013-06-22 23:09 淇水na个弯 阅读(12628) 评论(0) 推荐(1)

arrayList LinkedList HashMap HashTable的区别
摘要:ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的 阅读全文

posted @ 2013-06-22 23:02 淇水na个弯 阅读(299) 评论(0) 推荐(0)

java中堆和堆栈的区别
摘要:java中堆和堆栈的区别(一)1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 3. Java中的数据类型有两种。 一种是基本类型(primitive types), ... 阅读全文

posted @ 2013-06-22 22:58 淇水na个弯 阅读(264) 评论(0) 推荐(0)

hibernate的优化
摘要:1.使用双向一对多关联,不实用单项一对多2.不用一对一,使用一对多3.配置对象缓存,不使用集合缓存 阅读全文

posted @ 2013-06-17 22:48 淇水na个弯 阅读(116) 评论(0) 推荐(0)

Hibernate3提供的属性的延迟加载功能
摘要:Hibernate3增强了对实体属性的延迟加载功能,要实现这个功能,分两个步骤1.在hbm配置文件上对某个property设置lazy=true<property name="resume" type="java.lang.String" column="resume" lazy="true"/>2.需要对拥有resume的实体类二进制class文件进行强化处理(会嵌入很多CGLIB代码) Ant脚本如下:<projectname="hibernateSample"defaul 阅读全文

posted @ 2013-06-17 22:32 淇水na个弯 阅读(272) 评论(0) 推荐(0)

servlet与CGI的区别
摘要:与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 阅读全文

posted @ 2013-06-17 22:30 淇水na个弯 阅读(231) 评论(0) 推荐(0)

过滤器和拦截器的区别
摘要:过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符拦截器,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛 阅读全文

posted @ 2013-06-17 22:15 淇水na个弯 阅读(205) 评论(0) 推荐(0)

Struts1、2种如何防止表单重复提交和两者的区别
摘要:使用token指令牌就行了.在进入标签之前的action中通过saveToken方法保存指令牌.在表单提交后的action中判断这个token是否存在,如果存在允许插入,并通过resetToken把token重置,如果不存在,则表示重复提交,就可以直接返回错误页显示错误信息了.使用token有一个前提,就是表单必须使用html:form标签来完成==============================struts1、2的区别/**Action类Struts1要求Action类继承一个抽象类,Struts1使用抽象类编程而不是接口Struts2可以实现Action接口也可以不实现,Strut 阅读全文

posted @ 2013-06-16 22:56 淇水na个弯 阅读(977) 评论(0) 推荐(0)

Spring的5种事物配置方式
摘要:Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为 阅读全文

posted @ 2013-06-16 22:44 淇水na个弯 阅读(198) 评论(0) 推荐(0)

Hibernate cascade的问题(关联操作)
摘要:cascade属性的可能值有 all: 所有情况下均进行关联操作,即save-update和delete。 none: 所有情况下均不进行关联操作。这是默认值。 save-update: 在执行save/update/saveOrUpdate时进行关联操作。 delete: 在执行delete 时进行关联操作。 all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点。比如在一个一对多的关系中,Student包含多个book,当在对象关系中删除一个book时,此book即成为孤儿节点。像你的问题,设置成save-update就可以了 阅读全文

posted @ 2013-06-03 13:37 淇水na个弯 阅读(249) 评论(0) 推荐(0)

Hibernate的延迟加载
摘要:lazy,延迟加载Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了。lazy策略可以用在:* <class>标签上:可以取值true/false* <property>标签上,可以取值true/false,这个特性需要类增强* <set>/<list>等集合上,可以取值为true/false/extra* <one-to-one>/<many-to-one>等标签上,可以取值false/proxy/no-proxy6.1 get和load的区别:* get不支持延迟加载,而loa 阅读全文

posted @ 2013-06-03 13:23 淇水na个弯 阅读(141) 评论(0) 推荐(0)

HashMap与Hashtable的区别
摘要:HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。3.HashTable有一个contains(Objectvalue),功能和containsV 阅读全文

posted @ 2013-05-29 15:59 淇水na个弯 阅读(151) 评论(0) 推荐(0)

Spring中的设计模式
摘要:Spring中的设计模式应该说设计模式是我们在写代码时候的一种被承认的较好的模式。好的设计模式就像是给代码造了一个很好的骨架,在这个骨架里,你可以知道心在哪里,肺在哪里,因为大多数人都认识这样的骨架,就有了很好的传播性。这是从易读和易传播来感知设计模式的好处。当然设计模式本身更重要的是设计原则的一种实现,比如开闭原则,依赖倒置原则,这些是在代码的修改和扩展上说事。说到底就是人类和代码发生关系的四种场合:阅读,修改,增加,删除。让每一种场合都比较舒服的话,就需要用设计模式。下面来简单列举Spring中的设计模式:1. 简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但 阅读全文

posted @ 2013-05-29 13:07 淇水na个弯 阅读(146) 评论(0) 推荐(0)

Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
摘要:在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。请通过以下方式下载github源代码:git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据库),分布式事务可以处理多种异构的数据源,比如某个业务操作中同时包含了JDBC和JMS或者某个操作需要访问多个不同的数据库。Java通过JTA完成分布式事务,JTA本身只是一种规范,不同的应用服务器都包含有自己的实现(比如JbossJTA) 阅读全文

posted @ 2013-05-23 21:46 淇水na个弯 阅读(304) 评论(0) 推荐(0)

Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation) Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation)
摘要:首先定义Transactional注解:在本系列的上一篇文章中,我们讲到了使用动态代理的方式完成事务处理,这种方式将service层的所有public方法都加入到事务中,这显然不是我们需要的,需要代理的只是那些需要操作数据库的方法。在本篇中,我们将讲到如何使用Java注解(Annotation)来标记需要事务处理的方法。package davenkin.step6_annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation 阅读全文

posted @ 2013-05-23 21:39 淇水na个弯 阅读(218) 评论(0) 推荐(0)

Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
摘要:Java动态代理的基本原理为:被代理对象需要实现某个接口(这是前提),代理对象会拦截对被代理对象的方法调用,在其中可以全然抛弃被代理对象的方法实现而完成另外的功能,也可以在被代理对象方法调用的前后增加一些额外的功能。在本篇文章中,我们将拦截service层的transfer方法,在其调用之前加入事务准备工作,然后调用原来的transfer方法,之后根据transfer方法是否执行成功决定commit还是rollback。首先定义一个TransactionEnabledProxyManager类:package davenkin.step5_transaction_proxy;import da 阅读全文

posted @ 2013-05-23 21:21 淇水na个弯 阅读(284) 评论(0) 推荐(0)

Java事务处理全解析(五)—— Template模式
摘要:在本系列的上一篇文章中,我们讲到了使用TransactionManger和ConnectionHolder完成线程安全的事务管理,在本篇中,我们将在此基础上引入Template模式进行事务管理。这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clonehttps://github.com/davenkin/java_transaction_workshop.gitTemplate模式大家应该都很熟悉,比如Spring就提供了许多Template,像JdbcTemplate和JmsTemplate等。Template模式的基本思想是:在超类里将完成核心功能的 阅读全文

posted @ 2013-05-23 21:11 淇水na个弯 阅读(293) 评论(1) 推荐(0)

java多线程总结
摘要:以前没有写笔记的习惯,现在慢慢的发现及时总结是多么的重要了,呵呵。虽然才大二,但是也快要毕业了,要加油了。这一篇文章主要关于java多线程,主要还是以例子来驱动的。因为讲解多线程的书籍和文章已经很多了,所以我也不好意思多说,呵呵、大家可以去参考一些那些书籍。我这个文章主要关于实际的一些问题。同时也算是我以后复习的资料吧,。呵呵大家多多指教。同时希望多结交一些技术上的朋友。谢谢。-------------------------------------------------------------------------------------------------------------- 阅读全文

posted @ 2013-05-23 20:59 淇水na个弯 阅读(156) 评论(0) 推荐(0)

1 2 下一页

导航