一、引用类型
java中存在4中引用类型,强引用,软引用,弱引用,虚引用。
1、强引用FinalReference。
这个关系是我们经常使用的赋值。特点是可以直接访问目标,jvm不会主动释放,可能会导致内存泄露。
2、软引用
第2强的引用类型,只有在jvm中堵使用率接近阙值的时候才会回收。如果内存足够,将一直使用。可以来实现对内存敏感的cache
3、弱引用
系统GC时,发现弱引用直接就回收。但是由于GC线程优先级低,不一定会立刻发现弱引用,所以这样弱应用也会持续一段时间。
软引用与弱引用很适合做可有可无的缓存数据,这样不会引起内存泄露。
4、虚引用
虚引用等于没有引用,开发用处不大。。
5、WeakHashMap
一个hashmap的实现类,里面元素采用弱引用可有有效的释放内存。但是如果key存在强引用,它将退化为HashMap。
二、异常
异常的逻辑没有任何优化,如果要使用最好放在循环外面。
二、局部变量
局部变量效率高于静态变量。
三、位预算
位预算要优化算术运算但是使用位运算必须添加注释。
四、switch
可以用数组来代替switch.
五、使用arrayCopy()
在复制数组的情况下可以用system.arraycopy();这个方法,因为这个方法是以个自然方法,可以有效的提高效率
六、I/O操作必须用buffer
OutputStream -- FileOutputStream -- BufferedOutputStream
InputStream -- FileInputStream -- BufferedInputStream
Writer -- FileWriter -- BufferedWriter
Reader -- FileReader -- BufferedWriter
七、静态方法
静态方法效率上要高于实例方法,而且不用生成类,在工具类必须使用。
分享到:
相关推荐
Java程序性能优化 笔记 脑图
《Java性能优化权威指南》读书笔记(脑图) 原图,看不清楚可以下载这个
第4章 java核心类与性能优化 4.1 散列表类与性能优化 4.1.1 线程同步散列表类 4.1.2 设置arraylist初始化容量 4.1.3 arraylist与linkedlist 4.2 string类与性能优化 4.2.1 字符串累加与性能优化 4.2.2 字符串的...
有幸阅读此书,这是一本大道至简的Java性能优化指南,使得我们的开源项目的代码质量和性能有了飞跃,更能够指导每个Java工程师写出优雅、易阅读、高质量、易于扩展的代码。 ——肖宇(开源组织dromara.org创始人,...
虚拟机》阅读笔记 本 repo 为《深入理解 Java 虚拟机 第2版》的阅读笔记,并对全书内容按照自己的理解进行了一定程度的整理。《深入理解 Java 虚拟机 第2版》原书主要分为了五个部分,这里仅对前四个部分进行讲解,...
2. 笔记上传与编辑:用户可以上传自己的读书笔记,并支持在线编辑和格式调整,以优化内容的可读性。 3. 标签分类:通过给笔记添加标签,用户可以方便地对笔记进行分类和检索。 4. 搜索与筛选:提供强大的搜索引擎...
本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...
第三,详细讨论有关“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍并行的基本设计模式及Java 8对并行程序的支持和改进。第五,介绍高并发框架Akka的使用方法。最后,详细介绍并行程序的调试方法。 ...
阅读源码的方法包括:先使用框架,然后找一个demo入手,顺藤摸瓜快速静态看一遍框架的主线源码,画出源码主流程图,然后总结框架的一些核心功能点,从这些功能点入手深入到源码的细节,边看源码边画源码走向图,并对...
11 性能优化(重点) 5 12 补充话题 5 风格 5 1 先脉络,后细节 5 2 先操作,后原理 5 3 重Annotation,轻xml配置文件 5 资源 5 1 http://www. hibernate.org 5 2 hibernate zh_CN文档 5 3 hibernate annotation ...
OOM、ANR及性能优化 各种机制 一些比较难理解的技术 启动流程 框架模式 开源库源码分析 其他 设计一套图片异步加载缓存方案 Android UI适配 第二部分 Java JavaSE JavaCollection JavaConcurrent JVM 第三部分 数据...
java笔试题重复字符串优化 Go 程序 这是有助于优化 Go 程序的工具和技术的整理。 它分为两部分——工具和技术。 工具查看帮助您检测代码的 go 命令行工具。 技术查看您可能用来获得性能的想法列表。 最后还有一大堆...
Java程序性能优化:修炼Java的基本功 剑指Offer:国内的经典面试书 程序员面试金典:国外的经典面试书 Android面试题一天一题: PS:千万记得要去刷! 在此特别感谢戴方勤和唐磊总结的题解(对应leetcode-c
Java程序性能优化:修炼Java的基本功 剑指Offer:国内的经典面试书 程序员面试金典:国外的经典面试书 Android面试题一天一题: PS:千万记得要去刷! 在此特别感谢戴方勤和唐磊总结的题解(对应leetcode-c
生长 成长文档 文章列表 Java Python 去 Linux MySQL 其他 性能优化 互联网资源数字图书馆 参考表 读书笔记 自传 增长由双鬼带单采用进行许可。
Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述...
逻辑应该简单明了,使错误难以隐藏,依赖最小化以简化维护,根据明确的策略完成错误处理,以及接近最佳的性能,以免诱使人们通过无原则的优化使代码变得混乱。 干净的代码可以很好地做一件事。 对象的Grady Booch...