
java
文章平均质量分 81
Joken0704
这个作者很懒,什么都没留下…
展开
-
浅析Java抽象类和接口的比较
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很转载 2011-10-17 17:29:03 · 608 阅读 · 0 评论 -
java远程通信原理
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在java领域中有很多可实现远程通讯的技术,例如:rmi、mina、esb、burlap、hessian、soap、ejb和jms 等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将转载 2012-04-09 15:59:18 · 2687 阅读 · 0 评论 -
extends Thread 与 implements Runnable 的区别
1、通过实现Runnable接口创建线程(1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。(2).创建Runnable接口实现类的对象。(3).创建一个Thread类的对象,需要封装前面Runnable接口实现类的对象。(接口可以实现多继承)(4).调用Thread对象的start()方法,启动线程原创 2012-05-01 20:26:54 · 46028 阅读 · 7 评论 -
浅析Spring事务的传播行为和隔离级别
Spring的声明式事务让我们从复杂的事务处理中得到解脱,我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。传播行为 PropagationPropagation.REQUIRED,需要事务,如果当前没有事务就新建一个,这是最常见的选择。比如说,ServiceB.methodB的事务级别定义为PROPAGATION_REQUIRED, 那么如果执行ServiceA.meth原创 2012-06-17 21:29:33 · 662 阅读 · 0 评论 -
断点续传的原理
用 Java 实现断点续传 (HTTP)其实断点续传的原理很简单,就是在 Http 的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为 wwww.sjtu.edu.cn,文件名为 down.zip。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap,转载 2012-06-28 19:46:16 · 540 阅读 · 0 评论 -
Spring中bean的scope详解
如何使用spring的作用域:这里的scope就是用来配置spring bean的作用域,它标识bean的作用域。在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称 prototype), Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean。因此,转载 2012-07-01 17:24:54 · 675 阅读 · 0 评论 -
Spring-scope
scope 用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。打个比方吧!我们都是处在社会(容器)中,如果把中学教师作为一个类定义,那么当容器初始化这些类之后,中学教师只能局限在中学这个场景中,中学,就可以看做中学教师的scope。 Sprin转载 2012-07-01 17:33:29 · 735 阅读 · 0 评论 -
hibernate查询与缓存
Hibernate查询 首先介绍get()和load()方法的区别: get()方法和load()方法的区别主要在于对二级缓存的使用上。 load()方法会使用二级缓存,而get()方法在一级缓存没有找到会直接查询数据库,不会去二级缓存中查找。 get():如果在数据库中没有记录会返回空,get()无论如何都会返回数据. load():如果数据库中没有记录会抛出异常,如果有转载 2012-07-01 19:47:06 · 888 阅读 · 0 评论 -
学习Spring必学的Java基础知识(6)----ThreadLocal
引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”。以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助。):[1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081[2] Java动态代转载 2012-07-19 07:29:02 · 1039 阅读 · 0 评论 -
Servlet 3.0 新特性详解
Servlet 3.0 新特性概览 1.Servlet、Filter、Listener无需在web.xml中进行配置,可以通过Annotation进行配置;2.模块化编程,即将各个Servlet模块化,将配置文件也分开配置。3.Servlet异步处理,应对复杂业务处理;4.异步Listener,对于异步处理的创建、完成等进行监听;5. 文件上传API转载 2012-01-29 13:22:24 · 160 阅读 · 0 评论 -
oncurrentHashMap分析
ConcurrentHashMap是Java 5中引入的支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为 读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅转载 2012-01-18 17:20:47 · 958 阅读 · 0 评论 -
Java 体系结构介绍
1. 为什么使用Java因为Java是为网络而设计的,它可以保证安全的、健壮的且和平台无关的程序通过网络传播,在很多不同的计算机和设备上运行。2. 网络带来的挑战和机遇软件开发者面临的挑战之一是这种逐渐增长的以网络为核心的硬件环境,其包含的设备越来越广泛,用Java编写的平台无关的程序会更容易编写、管理和维护,代价也更低。网络为软件开发者带来的另外一个挑战是安全性。Java提供一个受保护的环境原创 2007-04-27 18:36:00 · 5413 阅读 · 0 评论 -
IBATIS(MyBatis)高速缓存
一.iBATIS高速缓存介绍1.1 iBATIS高速缓存只关注如何在持久层对查询结果进行缓存。1.2 iBATIS带来的好处就是通过配置文件来管理高速缓存,帮助避免因手工管理高速缓存结果及其依赖性而造成的大量繁琐的工作。1.3 iBATIS高速缓存和传统O/RM高速缓存的区别iBATIS的思想是建立SQL语句到对象的映射,而不是建立数据库表到对象的映射。传统O/RM工具主要转载 2011-11-08 10:02:47 · 1676 阅读 · 0 评论 -
各种架构图汇总!
转载请保留出处,刘晓涛汇总!!! http://blog.youkuaiyun.com/liuxiaotao008/archive/2008/06/29/2595391.aspx 1.Spring架构图 2.Hibernate架构图 3.Struts2架构图4.Struts1架构图5.JSF请求处理生命周期图6.Seam架构图7.Gr转载 2011-11-09 12:48:15 · 4128 阅读 · 0 评论 -
Spring Security3十五日研究
前言 南朝《述异记》中记载,晋王质上山砍柴,见二童子下棋,未看完,斧柄已烂,下山回村,闻同代人都去世了,自已还未变老。 因此发出“山中方一日,世上几千年” 的慨叹。原文寥寥几笔,读来却发人深省。 另有宋朝周敦颐在《暮春即事》中也有诗云:双双瓦雀行书案,点点杨花入砚池。闲坐小窗读周易,不知春去几多时。 上述古文或古诗中对于时间的论述最符合我现在的感转载 2011-11-09 15:28:49 · 4034 阅读 · 0 评论 -
java.lang.NoClassDefFoundError 解决办法
今天在做发送邮件测试的时候,一致出现java.lang.NoClassDefFoundError这个错误。可看了下代码,没有明显报错,只是是运行时候才会报错。初步估计是因为jar包冲突导致。通过排查发现是因为mail.jar中的javax.mail.Session这个类与J2EE包中提供的相冲突,最后将J2EE包中的jar剔除之后,问题解决。原创 2011-11-09 17:12:45 · 1126 阅读 · 0 评论 -
hashmap,hashtabl,hashtree,linkedhashmap区别分析
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时转载 2011-12-08 12:12:11 · 2719 阅读 · 1 评论 -
getFields()与getDeclaredFields()区别;getMethods()与getDeclaredMethods()区别
getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问.getDeclaredFields()能访问类中所有的字段,与 public,private,protect无关 getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有原创 2011-12-09 09:52:32 · 1566 阅读 · 0 评论 -
创建型模式
为了提高程序可维护性、可扩展性、可复用性、灵活性,可以在其中加入设计模式,设计模式有23种,这些设计模式可以分为三大类:创建型模式、结构型模式、行为型模式。下面就分别介绍一下这些设计模式的基本结构、使用的好处以及使用场合 创建型模式有抽象工厂模式、建造者模式、工厂方法、原型模式、单例模式。抽象工厂模式: 这个设计模式客户端只与抽象工厂以及抽象产品打交道,转载 2011-12-14 23:32:34 · 488 阅读 · 0 评论 -
怎样才能开发出好的软件
系统架构就是系统的骨骼,如果骨骼没有设计好,做出来的软件也会是畸形,怎样的架构才是合理的,怎样的架构才能造就一个健康的软件,那么健康的软件是什么样的?首先要满足用户需求,其次要有可修改性、灵活性、可维护性,也就是当用户需求改变时,尽量少更改已经封装好的东西,而且还要达到目的,这样的要求传统的面向过程的编码方式是很难实现的,而MVC三层架构就能实现这一切,V代表界面层,C代表业务逻辑层,M代表数据访转载 2011-12-14 23:34:30 · 536 阅读 · 0 评论 -
ExecutorService线程池
1。定义线程类class Handler implements Runnable{}2。建立ExecutorService线程池ExecutorService executorService = Executors.newCachedThreadPool();或者int cpuNums = Runtime.getRuntime().availab转载 2012-01-08 11:26:22 · 537 阅读 · 0 评论 -
Struts2的iterator各种用法
4、普通属性public String execute(){username = "zhangsan";password = "123";}5、自定义对象public String execute(){userInfo = new UserInfo();userInfo.setUsername("hhh");userInfo.setPassword(转载 2012-11-13 14:17:20 · 907 阅读 · 0 评论