《大话java 性能优化》观后总结 ( 持续更新中..... )
2016-05-13 12:01
295 查看
一、面向对象
1. 采用clone()方式创建对象
clone()方法是Object类下方法,是对一个对象的拷贝,返回的是个新对象,而不是一个对象的引用地址;且这个拷贝包含了原来对象的信息,而不是对象的初始信息;clone()创建对象不会调用任何构造函数。
二、基本类型
1.避免对boolean布尔类型判断
有时候出于写代码习惯,习惯性思维想要对生成的数据进行判断,对于大多数的数据类型来说,这是正确的做法,但对于boolean变量,我们应该尽量避免不必要的等于判定。
例如:
2.多用条件运算符
编写代码过程中经常会使用if-else用于判定,建议使用条件操作符,看起来更加简洁。
例如:
3.静态方法替代实例方法
与静态方法相比,实例方法的调用需要消耗更多的系统资源,这是因为实例方法需要维护一张类似虚拟函数导向表的结构,这样可以方便地实现对多态的支持。对于一些常用的工具类方法,我们没必要将其进行重载,那么将声明为静态方法即可,这样有利于加速方法的调用。(注意:静态方法内部不能访问外部非静态的成员变量和方法)
4.建议多使用局部变量
因为局部变量、临时变量都保存栈里,读写速度较快;而其他如静态变量、实例变量,都存在堆中被创建,也保存在那里,相对于栈里的数据,它的速度较慢
5.运算效率最高的方式--位运算
1. 采用clone()方式创建对象
clone()方法是Object类下方法,是对一个对象的拷贝,返回的是个新对象,而不是一个对象的引用地址;且这个拷贝包含了原来对象的信息,而不是对象的初始信息;clone()创建对象不会调用任何构造函数。
二、基本类型
1.避免对boolean布尔类型判断
有时候出于写代码习惯,习惯性思维想要对生成的数据进行判断,对于大多数的数据类型来说,这是正确的做法,但对于boolean变量,我们应该尽量避免不必要的等于判定。
例如:
boolean flag = "hello".endsWith("o");
if(flag){} // 推荐
//------------
if(flag == true){} // 不推荐,执行速度比上面低,因为多了一次判断,且代码整体不够简洁
2.多用条件运算符
编写代码过程中经常会使用if-else用于判定,建议使用条件操作符,看起来更加简洁。
例如:
int a = 0;
if(true){a = 1;}
else{a = 0; }
//--------
int a = true ? 1 : 0; //推荐
3.静态方法替代实例方法
与静态方法相比,实例方法的调用需要消耗更多的系统资源,这是因为实例方法需要维护一张类似虚拟函数导向表的结构,这样可以方便地实现对多态的支持。对于一些常用的工具类方法,我们没必要将其进行重载,那么将声明为静态方法即可,这样有利于加速方法的调用。(注意:静态方法内部不能访问外部非静态的成员变量和方法)
4.建议多使用局部变量
因为局部变量、临时变量都保存栈里,读写速度较快;而其他如静态变量、实例变量,都存在堆中被创建,也保存在那里,相对于栈里的数据,它的速度较慢
5.运算效率最高的方式--位运算
相关文章推荐
- 【React自制全家桶】六、React性能优化(持续更新总结)
- 性能优化总结[持续更新中...]
- 【React自制全家桶】六、React性能优化(持续更新总结)
- Android性能优化精华帖(持续更新...)
- mysql优化 -- 持续总结更新
- erlang程序优化点的总结(持续更新)
- 关于react性能优化的一些技巧(持续更新)
- React性能优化资料(文章)搜集整理(持续更新)
- 总结Unity遇到的坑及优化(持续更新)
- 本文主要总结在微博关于mysql的优化(将会持续更新)
- Android常见崩溃或闪退的问题描述及原因总结、及与性能相关的模块——持续更新
- .net开发性能优化总结,持续中...
- erlang程序优化点的总结(持续更新)
- 高负载下linux系统、业务结构性能优化――index(持续更新)
- JAVA性能优化-持续更新
- .net开发性能优化总结,持续中...
- 关于Mysql SQL优化的总结,持续更新中
- Android性能优化笔记(持续更新帖)
- ES优化总结(特别是在bulk大量数据到ES的时候),持续续更新中。。。。
- ionic 性能优化 (持续更新)