- 浏览: 236827 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wahahachuang8:
GoEasy 实时推送支持IE6-IE11及大多数主流浏览器的 ...
服务器推送技术 java -
mahuanjian:
[flash=200,200][/flash]
服务器推送技术 java -
wenjundiandian:
下面有网页编辑器的话还是会被隐藏.
ext中消息框、提示框、确认框显示在最前面的解决方法 -
天塔上的猫:
/**
* JAVA常见的权限控制算法的实现
*
* ...
JAVA常见的权限控制算法的实现
1.JVM管理两种类型的内存:堆内存(heap),栈内存(stack),堆内在主要用来存储程序在运行时创建或实例化的对象与变量.而栈内存则是用来存储程序代码中声明为静态(static)(或非静态)的方法.
2 .JVM中对象的生命周期,创建阶段,应用阶段,不可视阶段,不可到达阶段,可收集阶段,终结阶段,释放阶段
3.避免在循环体中创建对象,即使该对象占用内存空间不大.
for(int i=0;i<10000;++i){
Object obj = new Object();
System.out.println("obj="+obj);
}
应改成
Object obj = null;
for(int i=0;i<10000;++i){
obj = new Object();
System.out.println("obj="+obj);
}
4.软引用的主要特点是具有较强的引用功能.只有当内存不够的时候,才回收这类内存,因此在内存足够的时候,它们通常不被回收.它可以用于实现一些常用资源的缓存,实现Cache的功能
A a = new A();
SoftReference sr = new SoftReference(a);
a = null;
if(sr !=null){
a = sr.get();
}else{
a = new A();
sr = new SoftReference(a);
}
5.弱引用对象与Soft引用对象最大不同就在于:GC在进行回收时,需要通过算法检查是否回收Soft引用对象,而对于Weak引用对象,GC总是进行回收.
A a = new A();
WeakReference wr = new WeakReference(a);
a = null;
if(sr !=null){
a = wr.get();
}else{
a = new A();
wr = new WeakReference(a);
}
6.共享静态变量存储空间
7.有时候我们为了提高系统性能,避免重复耗时的操作,希望能够重用一些创建完成的对象,利用对象池实现.类似JDBC连接池.
8.瞬间值,序列化对象大变量时,如果此大变量又没有用途,则使用transient声明,不序列化此变量.同时网络传输中也不传输.
9.不要提前创建对象
void f(){
int i;
A a = new A();
if(....){
a.showMessage();
}
}
改成
void f(){
int i;
A a = null;
if(....){
//用到时才实例化
a = new A();
a.showMessage();
}
}
10 .(1)最基本的建议就是尽早释放无用对象的引用
A a = new A();
a = null; //当使用对象a之后主动将其设置为空
(2)尽量少用finalize函数.
(3) 如果需要使用经常用到的图片展,可以使用软引用.
(4) 注意集合数据类型,包括数组,树等数据,这些数据结构对GC来说,回收更为复杂,
(5) 尽量避免在类的默认构造器中创建,初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费.
(6) 尽量避免强制系统做垃圾内存回收.
(7) 尽量避免显式申请数组空间.
(8) 尽量在合适的场景下使用对象池技术以提高系统性能,缩减系统内存开销.
11.当做数组拷贝操作时,采用System.arraycopy()方法完成拷贝操作要比采用循环的办法完成数组拷贝操作效率高
12. 尽量避免在循环体中调用方法,因为方法调用是比较昂贵的.
13. 尽量避免在循环体中使用try-catch 块,最好在循环体外使用try--catch块以提高系统性能.
14. 在多重循环中,如果有可能,尽量将最长的循环放在最内层,最短的循环放在最外层,以减少循环层间的变换次数.
15. 在需要线程安全的情况下,使用List list = Collections.synchronizedList(new ArrayList());
16. 如果预知长度,就设置ArrayList的长度.
17. ArrayList 与 LinkedList 选择,熟悉底层的实现原理,选择适当的容器.
18. 字符串累加采用StringBuffer.
19. 系统I/O优化,采用缓冲和压缩技术.优化性能.
20. 避免在类在构造器的初始化其他类
21 尽量避免在构造中对静态变量做赋值操作
22. 不要在类的构造器中创建类的实例
23. 组合优化继承
24. 最好通过Class.forname() 动态的装载类
25. JSP优化,采用out 对象中的print方法代替println()方法
26 .采用ServletOutputStream 对象代替JSPWriter对象
27. 采用适当的值初始化out 对象缓冲区的大小
28. 尽量采用forward()方法重定向新的JSP
29. 利用线程池技术处理客户请求
30.Servlet优化
(1) 通过init()方法来缓存一些静态数据以提高应用性能.
(2) 用print() 方法取代println()方法.
(3) 用ServletOutputStream 取代 PrintWriter.
(4) 尽量缩小同步代码数量
31. 改善Servlet应用性能的方法
(1)不要使用SingleThreadModel
(2)使用线程池ThreadPool
32. EJB优化
实体EJB:
(1)实体EJB中常用数据缓存与释放
(2)采用延迟加载的方式装载关联数据
(3)尽可能地应用CMP类型实体EJB
(4)直接采用JDBC技术处理大型数据
33. 优化JDBC连接
(1)设置合适的预取行值
(2)采用连接池技术
(3)全合理应用事务
(4)选择合适的事务隔离层与及时关闭连接对象
34. PreparedStatemetn只编译解析一次,而Statement每次都编译解析.
35. 尽可能地做批处理更新
36. 通过采用合适的getXXX方法提高系统性能
37. 采用设计模式.
文章来源:网上
发表评论
-
利用 Heritrix 构建特定站点爬虫
2011-01-12 13:42 897Heritrix 是一个由 java 开 ... -
java解析xml文件四种方式
2011-01-10 16:23 7771.介绍 1)DOM(JAXP Crims ... -
Spring AOP的两种实现方式
2010-12-10 09:16 914来源:http://javacrazyer.iteye.com ... -
详解Java解析XML的四种方法
2010-12-09 22:31 853来源:http://mengsina.iteye.co ... -
(转载)手写压缩软件,超详细解释(哈夫曼实现)
2010-12-07 11:17 1100转载自:http://stchou.iteye.com/b ... -
java通过包装器防SQL注入
2010-01-29 11:04 1262定义包装器对request进行 ... -
comparable 与comparator的区别
2010-01-29 09:12 958Comparable & Comparator 都是用 ... -
Java经典问题算法大全
2010-01-28 20:52 3045/*【程序1】题目:古典 ... -
Java各种排序算法
2010-01-28 20:50 931/*** 排序测试类* * 排序算法的分类如下:* 1.插入排 ... -
Java细节总结
2010-01-28 20:46 709TURE、FALSE、NULL等都不是Java关键字; 数组 ... -
设计异常管理系统
2010-01-28 20:37 852——针对有效的错误处理设计异常管理系统 作者:Jean-Pie ... -
使用Filter快速对网页资源进行缓存
2010-01-28 20:18 902使用Filter快速对网页资源进行缓存,在网页资源没有改变的情 ... -
详解ThreadLocal与synchronized
2010-01-28 20:14 802Java良好的支持多线程。使用java,我们可以很轻松的编程一 ... -
在有多个选择路径的情况下,利用Switch可以使程序更加简洁有效。但由于其只能对整数选择因子进行判断,所以限制了其在其他类型尤其是String的使用,本文利用J
2010-01-28 20:04 890在有多个选择路径的情况下,利用Switch可以使程序更加简洁有 ... -
服务器推送技术 java
2009-12-28 12:11 6294下面介绍在ARP之上的一个非常热门的技术实现:服务器推送技术。 ... -
java排序集锦
2009-12-16 09:29 858Java代码 package sort; ... -
3DES加密解密调用示例
2009-12-15 10:02 996在java中调用sun公司提供的3DES加密解密算法时,需要使 ... -
java货币 Locale Currency NumberFormat
2009-12-04 18:14 2390使用java currency配合Locale,NumberF ... -
Deque 作为堆栈使用(ArrayDeque)
2009-12-04 18:09 2817package code.jdk; imp ... -
Random类
2009-12-04 14:00 1048Random类 (java.util) ...
相关推荐
Java优化编程是提升Java应用程序性能的关键技术,涵盖了多个方面的知识,包括代码优化、内存管理、垃圾回收、并发处理以及JVM参数调优等。以下是对这些主题的详细讲解: 1. **代码优化**:编写高效的Java代码是优化...
一本经典的关于java优化编程的书。通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做...
对java编程的优化作了比较详尽的讲解,包括内存怎么优化,程序的优化,ejb、jms的优化
本文将深入探讨Java优化的多个方面,帮助开发者掌握优化技巧,提升代码质量。 首先,我们要了解JVM(Java虚拟机)的工作原理,因为它是Java代码执行的基础。理解JVM内存模型,包括堆内存、栈内存、方法区、元空间等...
《JAVA优化编程》一书深入探讨了JAVA编程中的性能优化技术,旨在帮助开发者提升应用程序的运行效率和系统资源利用率。在JAVA开发过程中,优化是必不可少的一环,它能确保程序在面对大规模数据处理、高并发场景时仍能...
**Java优化编程PPT讲义概述** 这是一份专门针对Java优化编程的内部培训资料,旨在帮助中级及以上水平的开发者提升代码性能,实现更高效的应用程序。这份讲义结合了理论与实践,深入探讨了Java语言在实际开发中的...
JAVA优化编程,这是一本讲解关于java编程方面应该如何编码才能是你的java程序取得更高的效率,也许你说没必要,当实际上对程序进行优化是相当重要和必要的。如果你在学习java或者已经学习了java的基本语法,那么我...
一本不错的书,会对你的JAVA编程水平有很大提高
JAVA优化编程,这是一本讲解关于java编程方面应该如何编码才能是你的java程序取得更高的效率,也许你说没必要,当实际上对程序进行优化是相当重要和必要的。如果你在学习java或者已经学习了java的基本语法,那么我...
在《JAVA优化编程详解》这本书中,作者深入探讨了如何将Java编程技能提升到一个全新的层次,特别是聚焦于性能优化这一关键领域。Java优化不仅仅是关于提高代码运行速度,更是关于资源的有效利用,确保应用程序在复杂...
本书通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析了影响Java应用程序...
《Java并发编程实战》是一本深入探讨Java平台并发编程的权威指南。这本书旨在帮助开发者理解和掌握在Java环境中创建高效、可扩展且可靠的多线程应用程序的关键技术和实践。它涵盖了从基本概念到高级主题的广泛内容,...
在Java优化编程中,我们关注的是如何提升程序的性能、减少资源消耗以及提高代码的可维护性。这是一项至关重要的任务,特别是在处理大数据、高并发或者长时间运行的服务时。以下是一些关键的知识点: 1. **JVM优化**...
通过本文档,我们将深入探讨Java动画编程过程中遇到的常见问题以及提出相应的优化措施。 在Java动画编程问题研究部分,文档提到了四个主要问题点:动画死机或图像迟滞问题、动画无法调控或卡顿问题、动画显示不平滑...
《Java并发编程艺术》这本书深入探讨了Java平台上的并发编程技术。并发编程是现代多核处理器环境下提升软件性能的关键手段,而Java语言提供了丰富的工具和API来支持这一领域。本书旨在帮助开发者理解和掌握如何在...
"JAVA优化编程_程序设计"的主题着重于如何提高Java应用程序的性能,降低资源消耗,提升用户体验。这涉及到一系列的专业知识和技术,包括但不限于内存管理、并发处理、代码优化策略以及垃圾回收机制等。 1. **内存...
【Java代码优化编程】 在Java编程中,代码优化是一个关键环节,目的是使程序在有限的资源下更高效地运行。优化主要包括两个方面:减小代码体积和提高代码执行效率。以下是一些关于如何提高Java代码效率的具体策略:...
第三章“线程”深入讨论了多线程编程在Java网络应用中的重要性。Java提供了丰富的线程API,使得开发者可以创建并发执行的任务,以提高程序的性能和响应速度。本章讲解了如何创建和管理线程,线程同步和互斥机制,如...