- 博客(12)
- 收藏
- 关注
原创 RecyclerView添加ContextMenu易错细节
RecyclerView是默认不能想ListView一样支持ContextMenu的,不过可以通过重写以下两个方法来实现ContextMenu:protected ContextMenu.ContextMenuInfo getContextMenuInfo(){...} @Override public boolean showContextMenuForChild(View origina
2017-12-31 22:34:33
634
原创 Effective-Java-Note-类和接口
类和接口一、使类和成员的可访问性最小化首先我们要了解一个 软件设计基本原则:封装模块隐藏所有的实现细节,只通过API进行模块间通信为什么要这样设计呢?有效的接触系统模块之间的耦合:各模块独立开发,测试,优化,使用,理解,修改。提高软件的重用性:因为模块基本只依赖所使用的环境降低了构建大型系统的风险:即使整个系统不可用,但是有些独立的模块仍可用接下来我们得先了解一下Java提供的访问控制机制:
2016-12-11 21:36:25
377
原创 Effective Java Note(对于所有对象都通用的方法)
对于所有对象都通用的方法1. 覆盖equals时的通用约定equals所期望的结果类的每个实例本质上都是唯一的。不关心类是否提供了“逻辑相等”的测试功能。超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的。类时私有的或者包私有的,可以确定它的equals方法永远不会调用。需要覆盖的时机:父类没有实现所期望的以上的equals实现 “最多只存在一个对象”的类不需要覆盖eq
2016-12-03 13:54:07
304
原创 n之中的所有m元素的逆字典序排列组合
问题描述题目原型大概如下:学校要评优秀学生,有十个平时都很优秀的学生,他们之间不相上下,但是评选的名额有限,假设学生人数是n(0示例输入:5 2输出:54 53 52 51 43 42 41 32 31 21思路假设n个学生的序号是[1,2,…,n],从中选m个学生,我们生成一个长度为m的数组,记录选学生的序号索引,例如n=5,m=2,那么index=[0,1]是一开始的选择学
2016-11-26 21:54:57
514
原创 Javascript数组学习总结
数组的基本特点数组元素是任意类型的可能的最大索引是2^32-2,默认起始索引是 0Javascript的数组是动态的,无需手动开辟内存数组可能不连续每个数组都与一个length属性,length之比数组中所有元素的索引值都大1.创建数组四种方式1. var arr = []; //空数组,不含任何元素2. var arr = new Array(); //空数组,不含任何
2016-11-26 21:53:45
387
原创 Android 性能优化总结
将从以下几个方面总结Android的应用性能优化性能框架APIUI 性能I/O性能屏幕滚动性能内存Android 如何管理内存 OOM终结 & 低内存终结应用内存使用监测识别内存泄露最佳实践糟糕的用户体验Activity 启动时间过长应用无反应(ANR)帧速率差关于帧帧速率为了保证能达到60fps,最多只有16ms去处理每一帧而保证能达到24fps,最多只有41ms
2016-11-26 21:52:48
702
原创 LinkedList 源码分析
LinkedListLinkedList是List接口的一个实现类,内部是基于一个双向链表实现的。支持添加,移除,替换三种操作。 同时,LinkedList中的元素可以是任意类型的,包括null。当需要队列一样的数据操作的时候使用LinkedList是很有用的。先来看看LinkedList的继承结构: AbstractCollection AbstractList Abst
2016-11-26 21:52:05
221
原创 ArrayList 源码分析
List**List是一个维持内部元素有序的采集器,其中的每个元素都会拥有一个索引,每个元素都可以 通过他的索引获取到元素,并且索引的开始下标是从0开始的,List中的元素还可重复。 而Set中不不含重复元素的。**以上便List的定义。实际中List仅是一个接口,并没有具体的方法实现,只是定义好了统一的方法。以下便是List的继承结构:Iterable CollectionList 我
2016-11-26 21:51:20
163
原创 ViewStub 源码简解
ViewStubViewStub是一个未加载时不可见的不会占据实际大小的,且可以用来懒加载布局资源的控件。 当ViewStub被设置成可见或者是布局资源被inflated,ViewStub就会inflate它自己之中的View或者Views 到父布局中。因此,ViewStub使用了setVisibility(View.VISIBLE)或者inflate()后才会存在于view的绘制图层中。Vie
2016-11-26 21:50:03
172
原创 偶数二进制位反转(JAVA)
java中相关的位操作 运算 功能 说明 & 按位与 a&b a b对应位与 按位或 ~ 位非 ~a a按位取反 > 位右移 a>>b a的二进制位向右移动b位,高位补零 << 位左移 a<二进制位反转思路以下二进制位用8位做演示a = 0000 0110 ; 十进制: 6反转二进制位后a = 0000 0011 ;
2016-11-26 21:44:53
1443
原创 再温排序
先来个总览,知其庞然大体,而入之其微,后而一窝端需要先知道的几个概念:稳定排序:在待排序的文件中,若存在若干个相同关键字的记录,经过排序后这些具有相同关键字的记录相对顺序不改变。不稳定排序:与稳定排序相反内部排序:待排序的记录存放在计算机随机存储器(RAM)中进行排序的过程外部排序:待排序记录的数量很大,以至于内存不能容纳完全部的记录,需要在排序过程中对外存进行访问的排序(也就是说涉及到了内
2016-11-26 21:43:49
190
原创 Effective Java Note (对象的创建和销毁)
Effect Java Note (一)一、对象的创建和销毁1. 考虑使用静态工厂方法替代构造器优点静态工厂方法可以有一个名称,易于理解与阅读,工厂方法的名称可以凸显出不同构造器的区别每次掉用的时候可以不用都创建一个新的对象,而是可以选择复用对象,在一些情况就可以直接使用==判断相等,而不是equals可以返回原返回类型的任意子类型。可以参考java的集合框架。使用接口来引用被返回的对象,而不
2016-11-26 21:41:11
200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人