java性能优化读书笔记(1)
1.采用clone()方式创建对象
java语言里面的所有类都默认继承自java.lang.Object,此类里有一个clone()方法:
拷贝对象返回的是一个新的对象,而不是一个对象的引用地址;
拷贝对象与用new关键字操作返回的新对象的区别是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。
工厂模式的实现:
反例
public static Credit getNewCredit(){
return new Credit(); //创建一个新的Credit对象
}
正例
使用clone()方法
private static Credit BaseCredit=new Credit();
public static Credit getNewCredit(){
return (Credit)BaseCredit.clone();
}
2.避免boolean判断
boolean 一个字节 8位
反例
boolean method(String str){
return str.endswith("a")==true;//判断字符串是否以a结尾
}
正例
boolean method(String str){
return str.endswith("a");
}
3.多用条件操作符
反例:
public int method(boolean isDone){
if(isDone){
return 0;
}else{
return 1;
}
}
正例:
public int method(boolean isDone){
return (isDone ?0:1);
}
4.静态方法替代实例方法
工具类
5.有条件的使用final字段
final告诉编译器该方法不会被重载
6.避免不必要的instanceof操作
7.避免在子类中存在父类转换
Object是所有类的父类
8.建议多使用局部变量
9.算法效率最高的方式--位运算
10.用一维数组替换二维数组
二维数组的访问速度优于一维数组,但二维数组占用的内存大于一维数组。
内存敏感时可以转换一下处理
11.布尔运算代替位运算
&& ||
12.提取表达式优化
13.不要总是使用取反操作费 !
14.不要重复初始化变量
15.变量初始化过程思考
16.对象的创建、访问过程
17.在switch语句中使用字符串
18.数值字面量的改进
0b,0B还有_
19.优化变长参数的方法调用
@SafeVarargs
20.针对基本数据类型的优化
Integer.compare(x,y)
21.空变量
java性能优化读书笔记(1)的更多相关文章
- Java程序性能优化读书笔记(一):Java性能调优概述
程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...
- Java 程序优化 (读书笔记)
--From : JAVA程序性能优化 (葛一鸣,清华大学出版社,2012/10第一版) 1. java性能调优概述 1.1 性能概述 程序性能: 执行速度,内存分配,启动时间, 负载承受能力. 性能 ...
- Java性能优化学习笔记
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控 ...
- java程序性能优化读书笔记-垃圾回收
衡量系统性能的点 执行速度:即响应时间 内存分配:内存分配是否合理,是否过多消耗内存或者存在内存泄露 启动时间:程序从启动到正常处理业务需要的时间 负载承受能力:当系统压力上升,系统执行速度和响应时间 ...
- Java程序性能优化-读书笔记(一) 单例模式
单例模式: 目的: 确保系统中一个类只产生一个实例. 好处: 1.对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销. 2.由于new操作的次数减少, ...
- Flink原理、实战与性能优化读书笔记
第一章 ApacheFlink介绍 一.Flink优势 1. 目前唯一同时支持高吞吐.低延迟.高性能的分布式流式数据处理框架 2. 支持事件事件概念 3. 支持有状态计算,保持了事件原本产生的时序性, ...
- 读书笔记系列之java性能优化权威指南 一 第一章
主题:java性能优化权威指南 pdf 版本:英文版 Java Performance Tuning 忽略:(0~24页)Performance+Acknowledge 1.Strategies, A ...
- [原创]Java性能优化权威指南读书思维导图
[原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt Binu John 译者: 柳飞 ...
- [原创]Java性能优化权威指南读书思维导图4
[原创]Java性能优化权威指南读书思维导图4
随机推荐
- Delphi简单的数据操作类
unit MyClass; uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, VCL ...
- POJ3295 Tautology 解题报告
直接上分析: 首先 弄清各种大写字母的操作的实质 K 明显 是 and & A 是 or | N 是 not ! C 由表格注意到 当 w<=x 时 值为1 E 当 ...
- Ubuntu 16.04安装RapidSVN
使用RabbitVCS有一些不完美,比如没有把文件增加到版本库的功能,导致无法提交等问题,现在再次安装RapidSVN来弥补这些缺点. 安装: sudo apt-get install rapidsv ...
- CentOS 7 es搭建测试
搭建本地yum repo pass 指定特定repo 安装,比如安装wget.(指定特定repo 是为了从最快的repo安装) yum --disablerepo=\* --enablerepo=os ...
- 【POJ 1275】 Cashier Employment(差分约束系统的建立和求解)
[POJ 1275] Cashier Employment(差分约束系统的建立和求解) Cashier Employment Time Limit: 1000MS Memory Limit: 10 ...
- redux 调试工具
首先安装谷歌插件: redux-devtools 然后项目中安装插件:redux-devtools-extension 最后在创建 store 的时候进行配置: import { composeWit ...
- [计算机故障]excel无法存盘,总是自动重启恢复
同事的excel文档,无法保存.总是提示什么要发送错误报告.错误报告中的错误信息包含event type:BXE.这个文件大小约1M多.工作簿中包含表大约有30张,表名称为中文.我去看了看,其他电子表 ...
- 64位win2008下IIS未开启32位支持导致DLL无法加载问题
部署一个WEB项目,在本机.本地服务器都没有问题,但部署到远程服务器以后,提示有个DLL无法加载: Server Error in '/' Application. Could not load fi ...
- 【OI】Kruskal & ufs (克鲁斯卡与并查集)
Kruskal是有关于最小生成树的算法. 这个算法非常好理解,用一句话来概括就是: 从小到大找不同集合的边. 那么,具体是怎样的呢. 1.先把所有顶点初始化为一个连通分量. 2.从所有边中选择最小的( ...
- Android合并两个APP的详细做法(掌握)
有时候因公司需求,要求合并两个APP 使用里面的功能. 平台:Studio 小白鼠:二维码扫描 和自己项目 详细步骤: /** * 1.将解压后的android/assets目录复制到项目中的mai ...