JAVA
gufengjava
这个作者很懒,什么都没留下…
展开
-
堆和堆栈的区别
Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度...原创 2012-06-12 12:58:26 · 95 阅读 · 0 评论 -
JAVA MVC框架性能比较
来源:http://www.blogjava.net/paulwong/archive/2012/03/03/371171.html 现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框架的项目访问速度,明显不如原来采用了struts1框架的项目快,带着这些疑惑,我对各类MVC...原创 2012-09-09 17:28:06 · 76 阅读 · 0 评论 -
Synchronizer 类
Synchronizer 类 Synchronizer java.util.concurrent 中其他类别的有用的类也是同步工具。这组类相互协作,控制一个或多个线程的执行流。 Semaphore、CyclicBarrier、CountdownLatch 和 Exchanger 类都是同步工具的例子。每个类都有线程可以调用的方法,方法是否被阻塞取决于正在使用的特定同步工具的状态和规则。...原创 2012-09-09 17:26:53 · 134 阅读 · 0 评论 -
低级别工具 —— 锁定和原子
Lock Java 语言内置了锁定工具 —— synchronized 关键字。当线程获得监视器时(内置锁定),其他线程如果试图获得相同锁定,那么它们将被阻塞,直到第一个线程释放该锁定。同步还确保随后获得相同锁定的线程可以看到之前的线程在具有该锁定时所修改的变量的值,从而确保如果类正确地同步了共享状态的访问权,那么线程将不会看到变量的“失效”值,这是缓存或编译器优化的结果。 虽然同步没有...原创 2012-09-09 17:26:42 · 76 阅读 · 0 评论 -
CompletionService
CompletionService 将执行服务与类似 Queue 的接口组合,从任务执行中删除任务结果的处理。CompletionService 接口包含用来提交将要执行的任务的 submit() 方法和用来询问下一完成任务的 take()/poll() 方法。 CompletionService 允许应用程序结构化,使用 Producer/Consumer 模式,其中生产者创建任务并提交...原创 2012-09-02 16:44:15 · 67 阅读 · 0 评论 -
Future
Future 接口允许表示已经完成的任务、正在执行过程中的任务或者尚未开始执行的任务。通过 Future 接口,可以尝试取消尚未完成的任务,查询任务已经完成还是取消了,以及提取(或等待)任务的结果值。 FutureTask 类实现了 Future,并包含一些构造函数,允许将 Runnable 或 Callable(会产生结果的 Runnable)和 Future 接口封装。因为 Futur...原创 2012-09-02 16:43:12 · 62 阅读 · 0 评论 -
java线程池
使用线程池解决问题 为任务创建新的线程并不一定不好,但是如果创建任务的频率高,而平均任务持续时间低,我们可以看到每项任务创建一个新的线程将产生性能(如果负载不可预知,还有稳定性)问题。 如果不是每项任务创建一个新的线程,则服务器应用程序必须采取一些方法来限制一次可以处理的请求数。这意味着每次需要启动新的任务时,它不能仅调用下列代码。 new Thread(runnable).st...原创 2012-09-02 16:34:26 · 63 阅读 · 0 评论 -
使用序列化类的私有方法巧妙解决部分属性持久化问题
来源:http://book.51cto.com/art/201202/317465.htm 部分属性持久化问题看似很简单,只要把不需要持久化的属性加上瞬态关键字(transient关键字)即可。这是一种解决方案,但有时候行不通。例如一个计税系统和人力资源系统(HR系统)通过RMI(Remote Method Invocation,远程方法调用)对接,计税系统需要从HR系统获得人员的姓名和...原创 2012-08-18 12:34:45 · 211 阅读 · 0 评论 -
log4j使用教程
来源:http://alimma.iteye.com/blog/1594726 一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生...原创 2012-07-16 08:25:53 · 56 阅读 · 0 评论 -
文件下载问题
File file = new File(path); InputStream is = new FileInputStream(file); OutputStream os = response.getOutputStream();// get the // outputstream BufferedInputStream bis = new BufferedInputStream...原创 2012-07-03 08:56:28 · 102 阅读 · 0 评论 -
Java资源同步的方式
前面我们知道syncnized方法可以对一段代码进行资源封锁,实际上还有很多其他方法,这里总结一下 1:synchronized 2:变量volatile 3:lock接口的实现 ReentrantLock类,它有方法:lock()、unlock(),tryLock()等,注意要try……finally,防止死锁 4:ReadWriteLock接口实现 ReentrantReadWr...原创 2012-10-25 08:30:46 · 279 阅读 · 0 评论 -
Java枚举的七种常见用法
http://blog.jobbole.com/31597/ JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public e...原创 2013-01-06 12:19:02 · 78 阅读 · 0 评论