博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高性能编码技巧
阅读量:7003 次
发布时间:2019-06-27

本文共 1489 字,大约阅读时间需要 4 分钟。

  • 1、避免创建不必要的对象
    • 1、如果我们又一个需要拼接的字符串,优先考虑StringBuffer或者StringBuilder
    • 2、尽量使用基本数据类型代替封装类型,int比integer更加高效
    • 3、如果我们明确的知道调用方法会将这个返回的string在进行拼接操作的话,可以考虑返回一个StringBuffer对象来代替
    • 4、基本数据类型要优于对象数据类型, 我们所要遵循的一个基本原则就是尽可能的少创建临时对象,越少的对象意味着越少的GC,同时也就意味着好的程序性能的体验
  • 2、静态由于抽象 如果并不需要访问某一个对象中的某些字段,只是想调用它的某个方法来完成一项通用的功能,那么可以将这个方法设置成静态方法,会让调用的速度提升15%-20%,同时也不用为了调用这个方法而去创建对象了,这样还满足了上面的一个原则。
  • 3、对常量使用static final修饰符
  • 4、避免在内部调用Getters Setters方法 在Android上这个技巧就不在那么受推崇了,因为子弹搜寻要比方法调用效率高的多,我们直接访问某个字段可能要比通过方法来访问这个字段快2-7倍,不过我们肯定不能仅仅因为效率的原因就放弃了这个技巧,编写代码还是要按照面象对象的思维的,但是我们可以在能优化的地方进行优化,比如说避免在内部调用getter/setter方法
  • 5、使用增强的For循环语法 在默认情况下,我们应该使用增强for,但是在遍历ArrayList的时候,我们还是手写循环的方式
  • 6、考虑包而不是私有的内部类访问
  • 7、避免使用浮点数
  • 8、多使用系统封装好的API
  • 9、使用实现类比接口好
  • 10、将成员变量缓存到本地 访问成员变量要比访问本地变量慢的多
for(int i = 0;i

另一个相似的原则是:永远不要在for的第二个条件中调用任何方法,

  • 在需要时候加载视图有时候你的布局可能需要一些复杂确很少被用到的视图,无论他们是item详情,进度指示器,或者撤销的消息,你都可以在需要的时候加载这些视图,来减少内存使用量并加快渲染速度,定义一个ViewStub,ViewStub是一个没有尺寸大小并且不会再布局中嵌套或者渲染任何东西的轻量级的视图,因此在视图层次展现或者隐藏他的代价非常小,每一个ViewStub仅仅需要包含android:layout属性来展现指定的布局
复制代码

当你要载入在ViewStub中定义的布局的时候,可以calling setVisibility(View.VISIBLE) or call inflate();

ViewStub subimport = (ViewStub) findViewById(R.id.sub_import);		 subimport.inflate();	 subimport.setVisibility(View.VISIBLE);			 * 注意:inflate()方法在视图渲染完毕后便直接展现该已渲染的视图View,因此如果你需要和布局交互的话,不需要再调用findViewById()方法-URL-协议版本、请求头、请求正文一个ViewStub是可见的或者渲染完毕,该元素便不再是视图层次的一部分,它被已渲染的布局替换,并且该布局的根视图的ID是在ViewStub中被android:infalteid属性指定的ID(被android:id指定的ID只有在这个ViewStub布局是可见/渲染完毕才是有效的)	* 注意:ViewStub的一个缺点是:目前它在要渲染的布局中并不支持
标签复制代码

转载地址:http://snytl.baihongyu.com/

你可能感兴趣的文章