`
donald3003a
  • 浏览: 65685 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
  • 淼淼E馒头: 这举列有点不恰当啊。。电影人和不同类型的电影。是两个不同概念 ...
    合成模式

java 性能优化读书笔记(二)

 
阅读更多
1、Value Object模式
当需要多次远程调用对象的时候,可以不存在逻辑关系,可以把远程对象封装成一个对象,这样只会调用一次,可以大大减少远程访问量。
2、业务代理模式
如果Service层需要多次远程调用对象,可以封装一个类,这样在调用的时候可以缓存一下已经取到的对象,可以大大提高效率
3、缓冲类(Buffer)
在进行IO操作的时候务必使用BufferedWriter或者BufferedOutputStream来进行包装,这样可以大大提高性能
4、String subString()方法可能引起内存泄露
subString()方法由于是自动扩展内部的char[]常用空间换时间的加速策略,但是这样是有可能造成内存泄露的。同时使用这个方法的其他的方法如valueOf(char),replace(int,int)....都有可能造成内存泄露
5、字符串的分割
split 功能强大,担心效率不高。
StringTokennizer 功能强大而且效率优于split 以后可以代替split
indexOf()+subString()效率最高,可读性差,追求效率的系统可以选择。
同时使用charAt()方法也高远startsWith()
6、StringBuilder与StringBuffer
2个对象的默认值是16,如果超过16会自动扩展。但是由于我们要生成的类都是大于16,所以建议使用的时候直接指定容量参数可以大大提高性能。
7、list接口
ArrayList 与LinkedList
(1)如果是末尾通过add()方法来添加对象可以使用ArrayList效率更高
(2)如果通过add(int index,E element)方法来添加对象LinkedList会大大提高效率。
(3)采用E remove(int index)方法来删除元素的时候,ArrayList算法是从最后的开始搜索,LinkedList 二叉分法。所以元素在前面或者后面LinkedList 效果更高,在中间ArrayList效率更高
(4)同样在使用ArrayList的时候必须指定一个初始长度。默认为10
(5)编历数组
forEach效率最低,其次迭代器,for循环效率最高
但是LinkedList如果使用get(i) 这样的随机访问方法,会大大的降低效率。因为LinkedList并没有实现RandomAccess接口。它用get(i)方法底层是通过迭代器来一个个编列的。
8、Map接口
(1)hashCode()这个方法是一个native方法,这个方法可以重新但是不建议这样做。
(2)HashMap 默认容量为16,超过这个数建议设置长度
(3)LinkedHashMap 是一个有序的hashmap。它的顺序是元素进入集合或者被访问的先后顺序。而且它的get(i)方法会修改链表结构。
(4)TreeMap 可以基于key进行排序,如果要实现排序的hashMap。建议使用TreeMap来完成。
9、优化集合访问代码
(1)、分离循环中的代码
for(int i=0;i<map.size();i++){
}

建议写成
int size =map.size();
for(int i=0;i<size ;i++){
}

(2)、减少相同的操作
(3)、减少方法的调用
如果集合可以访问内部元素,优先使用内部元素可以比使用方法更有效率
分享到:
评论

相关推荐

    Java程序性能优化读书笔记脑图

    Java程序性能优化 笔记 脑图

    Java游戏编程读书笔记

    通过阅读《Java游戏编程读书笔记》这本书,你可以深入了解这些概念并学习如何将它们应用到实际项目中。文档中的内容可能涵盖了Java游戏开发的基本原理、代码示例、最佳实践以及常见问题的解决方案。通过深入学习和...

    java编程思想读书笔记

    ### Java编程思想读书笔记 #### 一、Java与C++的区别及内存管理 在学习Java的过程中,我们常常会拿它与C++进行比较。这两门语言虽然有着相似之处,但也有许多不同点。 1. **内存管理:** - C++提供了更为底层的...

    java核心思想读书笔记

    从标题“java核心思想读书笔记”和描述可以看出,这份资料是作者结合《Java核心思想》一书和其他网络资源整理而成,适合不同水平的Java学习者,特别是初学者和有经验的工程师。 1. **Java的设计目标** - 不同于...

    Java性能优化.png

    《Java性能优化权威指南》读书笔记(脑图) 原图,看不清楚可以下载这个

    数据结构与算法分析 Java语言描述 读书笔记

    数据结构与算法分析是...这篇读书笔记不仅涵盖了理论知识,还结合Java语言特点进行了深入的探讨,对学习者来说是一份宝贵的资源。通过阅读和实践,开发者可以更好地理解和运用数据结构与算法,提升自己的编程技能。

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    java完美经典读书笔记

    《Java完美经典》读书笔记是Java开发者不可或缺的学习资源,它涵盖了Java编程的各个方面,旨在帮助读者深入理解Java语言,提升编程技巧。以下是对该书笔记的一些核心知识点的详细阐述: 1. **Java基础** - **变量...

    android应用性能优化最佳实践读书笔记

    在Android应用开发中,性能优化是一项至关重要的任务,它直接影响到用户的体验和应用程序的市场竞争力。"Android应用性能优化最佳实践"这本书深入探讨了如何提升Android应用的性能,以下是一些核心知识点的总结: 1...

    Java 学成在线笔记

    10. **JVM原理**:虚拟机的工作原理,内存模型,垃圾收集机制,以及性能优化的相关知识。 11. **设计模式**:常见设计模式的介绍,如单例模式、工厂模式、观察者模式等,以及在实际项目中的应用。 12. **Java EE**...

    狂神说JAVA的所有笔记.zip

    同时,可能会涵盖JVM(Java虚拟机)的工作原理,包括内存管理、类加载机制、性能优化等方面,这对于理解和优化JAVA程序的运行效率极其重要。 最后,笔记还可能包含了实际项目开发中的经验分享,如MVC框架Spring的...

    Java学习笔记(必看经典)

    12. **JVM(Java虚拟机)**:了解JVM的工作原理,如类加载、内存管理、垃圾回收等,对于优化Java程序性能至关重要。 13. **单元测试与调试**:使用JUnit等工具进行代码测试,以及如何使用IDE的调试功能来定位和修复...

    eclipse性能优化 <深度理解jvm>读书笔记

    《Eclipse性能优化——&lt;深度理解JVM&gt;读书笔记》主要涵盖了如何利用Eclipse IDE进行Java应用程序的性能优化,以及深入理解JVM的工作原理。在本文中,我们将探讨Eclipse的性能调优策略,以及JVM内存管理和垃圾回收机制...

    Java JDK 7学习笔记 完整扫描版

    通过阅读《Java JDK 7学习笔记》,你可以深入了解这些特性的具体使用和背后的设计理念,进一步提高你的Java编程技能。这份笔记不仅适合初学者,也对有经验的开发者有所帮助,因为它涵盖了从基础到高级的各种主题,是...

    JAVA学习笔记 林信良

    在内存管理和垃圾回收方面,书中有专门章节讲解Java的内存模型以及自动内存管理机制,解释了如何避免内存泄漏和理解引用类型,这对于优化程序性能和解决内存问题非常有帮助。 书中还详细阐述了异常处理,这是Java...

    Java 疑难杂症_笔记.zip

    第五,JVM性能优化是Java开发者必须掌握的技能。笔记可能包括JVM的运行模式、类加载机制、方法区、类的生命周期,以及如何通过JProfiler、VisualVM等工具进行性能监控和调优。 第六,笔记可能还涉及到了Java网络...

    Java demo 算法笔记

    通过阅读和理解这些框架的源码,开发者可以深入理解框架的工作原理,提高代码设计和优化的能力。 线程池是Java并发编程的重要组成部分,它通过复用已创建的线程来减少线程创建和销毁的开销。Java的ExecutorService...

    基于java 的阅读器界面优化

    总的来说,基于Java的阅读器界面优化是一个综合性的任务,涉及界面设计原则、用户体验、文件解析、性能优化、事件处理和无障碍设计等多个方面。通过持续学习和实践,开发者可以构建出更加优秀的阅读器应用,满足不同...

    java校招学习笔记

    9. **性能优化**:内存泄漏检测、CPU性能分析、JProfiler等工具的使用。 10. **源码阅读**:学习和理解一些开源项目的源码,如Apache Commons、Guava等。 这份"java校招学习笔记"应该是一个全面的参考资料,帮助...

Global site tag (gtag.js) - Google Analytics