JackPeng

Keep on going never give up

java源码分析之HashMap

概述 在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。     在看HashMap源码之前先复习一下数据结构。     Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅...

经典排序算法

排序的基本概念与分类 排序的定义 假设含有n个记录的序列为{r1,r2,……,rn},其相应的关键字分别为{k1,k2,……,kn},需确定1,2,……,n的一种排列p1,p2,……,pn,使其相应的关键字满足kp1<=kp2<=……<=kpn(非递增或非递减)关系,即使得序列成为一个按关键字有序的序列{rp1,rp2,……,rpn},这样的操作称为排序。 “注意我们...

HPROF Viewer and Analyzer

翻译自https://developer.android.com/studio/profile/am-hprof.html HPROF Viewer and Analyzer 使用Android Monitor提供的Memory Monitor观察内存使用情况的同时,也可以把Java Heap导出为一个Android规格的HPROF格式文件的快照。HPROF Viewer可以显示java...

Android MVC MVP MVVM的区别

什么是MVVM 我们一步步来,从MVC开始。 MVC 我们都知道,模型——视图——控制器。为了使得程序的各个部分分离降低耦合性,我们对代码的结构进行了划分。 他们的通信方式也如上图所示,即View层触发操作通知到业务层完成逻辑处理,业务层完成业务逻辑之后通知Model层更新数据,数据更新完之后通知View层展现。在实际运用中人们发现View和Model之间的依赖还是太强,希望他们可以...

覆盖equals时总要覆盖hashCode

覆盖equals时请遵守通用约定 不覆盖equals 不覆盖equals的情况下,类的每个实例都与它自身相等,如果满足以下任何一个条件,就是所期望的结果: 1 类的每个实例本质上都是唯一的 2 不关心类是否提供了”逻辑相等”的测试功能 3 超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的(要小心) 4 类是私有的或是包级私有的,可以确定它的equals方法永远不...

Shallow Size和Retained Size

Shallow size Shallow size就是对象本身占用内存的大小,不包含其引用的对象。常规对象(非数组)的Shallow size有其成员变量的数量和类型决定。数组的shallow size有数组元素的类型(对象类型、基本类型)和数组长度决定。Shallow size of a set of objects represents the sum of shallow sizes ...

Android最佳性能实践(四)——布局优化技巧

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43376527在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能。然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布局写得糟糕的话,那么程序加载UI的速度就会非常慢,从而造成不好的用户体验。那么本篇文章我们就来学习一下...

Android最佳性能实践(二)——分析内存的使用情况

转载自 http://blog.csdn.net/guolin_blog/article/details/42238627 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/42238633由于Android是为移动设备开发的操作系统,我们在开发应用程序的时候应当始终把内存问题充分考虑在内。虽然Android系统拥有垃圾自动...

Android最佳性能实践(三)——高性能编码优化

转载自 http://blog.csdn.net/guolin_blog/article/details/42238627 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/42318689在前两篇文章当中,我们主要学习了Android内存方面的相关知识,包括如何合理地使用内存,以及当发生内存泄露时如何定位出问题的原因。那么...

Android最佳性能实践(一)——合理管理内存

转载自 http://blog.csdn.net/guolin_blog/article/details/42238627 一 概述 有不少朋友都问过我,怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序,不仅仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是阅读了不少Android官方给出的高性能编程建议,...