代码优化之合理利用编译器
来源:互联网 发布:人体辉光 知乎 编辑:程序博客网 时间:2024/05/16 15:00
工具:利用Android studio的快捷键 Ctr + F1给出的warning提示,规范化代码,并去除无用代码,使用快捷键Alt+Enter,但是并非所有的场景是能依靠编译器解决,有些是需要自己亲自更改的。
编译器: https://github.com/JetBrains/intellij-community 【在这里可以找到所有的提示信息】
1
导读:检查到当前全部变量建议改为局部变量,直接使用快捷键Alt+Enter -> Convert to local 并行修改即可,原因是它仅仅只在一个方法中使用到了,定义变量的一个原则,尽量最小化变量的作用域,一来可读性提高了,二来降低了代码的错误率。
http://stackoverflow.com/questions/31713073/field-can-be-converted-to-a-local-variable-message-appearing-when-setting-acti
http://blog.csdn.net/ys743276112/article/details/505175242
导读:把长整形小l替换成大L,原因是字母l容易和数字1混淆,可读性变差。
http://arguscodewatch.sourceforge.net/documentation/lowercasel.html3
导读:删除无用代码,进行安全删除 ,删除变量。4
导读:这个三目运算可以直接替换为二目运算,多此一举 ,直接简化。5
导读:条对于多分支判断语句,编译器提示存在一个判断语句是一个常量值。
https://github.com/JetBrains/intellij-community/blob/master/resources-en/src/inspectionDescriptions/ConstantConditions.html6
导读:条件语句需要添加方法体7
- 8
9
参考文档:
http://badlogicgames.com/forum/viewtopic.php?t=22199&p=91529
https://code.google.com/p/android/issues/detail?id=19124910
11
导读:这里需要区分两者之间的差别了,StringBuffer 缓存,是线程安全的,意味着在需要多线程场景中,同步方法中一次仅仅只允许一个线程来访问缓存对象,这样StringBuffer objects are generally safe to use in a multi-threaded environment where multiple threads may be trying to access the same StringBuffer object at the same time.而StringBuilder 创建者访问不同步,所以是非线程安全的,意味着在多线程场景下会出现多个线程同时访问同一个对象,造成脏数据的异常,但是在非同步,单线程场景中,builder 的性能是优于 buffer 的,局部变量这种也是需要使用builder 的。
http://stackoverflow.com/questions/6174259/why-use-stringbuilder-stringbuffer-can-work-with-multiple-thread-as-well-as-one12
导读:赋空值是多余的。还是一种场景是赋了值也从来没有使用过,一旦被重新赋值,立刻就会被废弃掉but that value is never used. It is discarded immediately when you reassign it。13
导读:提示可能存在空指针异常的风险,这种场景需要做一层判空操作。14
导读:静态域和方法需要通过类实例而不是类本身来引用,Activity.RESULT_OK来替换getActivity.RESULT_OK。
未完待续。。。
- 代码优化之合理利用编译器
- JS性能之合理利用冒泡机制优化性能
- 编译器优化陷阱之典型代码
- 合理利用HTML标记优化网页布局
- 合理利用robots.txt来优化SEO
- MySQL合理利用锁机制优化
- 合理利用锁机制优化MySQL
- 合理利用锁机制优化MySQL
- MySQL合理利用锁机制优化
- IAR 编译器优化代码
- 怎么利用编译器优化程序
- 不让编译器优化一段代码
- 优化ElasticSearch之合理分配索引分片
- 优化ElasticSearch之合理分配索引分片
- 前端优化建议:合理利用JavaScript的条件运算符
- 合理利用运算符优先级,性能优化提升细节起
- MySQL Query 的优化—合理设计并利用索引
- C语言 之编译器优化
- SSH 使用EasyUI实现ZTee树状结构菜单
- 第七周项目2-建立链队算法库
- 完美理解csss中offsetLeft,offsetWidth,scrollLeft区别。
- Windows 驱动阻止进程创建
- Number类——包装类在向量vector类中的应用
- 代码优化之合理利用编译器
- 数据结构学习记录1
- 欧拉工程第三题 找出一个合数的最大质数因子
- Android开发艺术探索——第二章:IPC机制(中)
- java空指针问题
- Web前端性能优化的14条规则
- Spring的三种注入类型
- 1008 Java匿名内部类
- C语言基础知识整理(二)