自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u011443509的博客

Stay Hungry, Stay Foolish

  • 博客(11)
  • 收藏
  • 关注

原创 TreeMap源码分析

TreeSet、TreeMap概述与HashSet及HashMap类似,TreeSet是基于TreeMap实现的,所以分析TreeMap即可。 TreeMap是基于红黑树实现的,元素是根据key的自然顺序排列的,也可以在构造器中传入Comarator来指定排序器。 containsKey、get、put、remove操作都是log(n)时间复杂度的,要注意排序的规则要与key的equals一致,

2017-11-27 16:15:40 170

原创 HashMap源码分析

HashSet、HashMap概述分别实现了Set和Map接口,底层用哈希表来存储,迭代时是无序的。 add、remove、contains、size方法是常数时间的,遍历是O(N+M)的(N表示桶数,M表示元素个数)。 都是非线程安全的,类似的也可以用Collections.synchronizedSet转化为线程安全的容器。 HashSet实质上也是基于HashMap来实现的,只是map中

2017-11-27 16:14:48 161

原创 LinkedList源码分析

LinkedList概述LinkedList是一个双向链表,每个节点持有next和prev的引用,该类实现了List和Deque接口。与ArrayList类似,这个容器也不是线程安全的,可以通过Collections.synchronizedList来转换。通过iterator获得的迭代器也是fail-fast的。源码分析构造器 // 头结点 transient Node<E> f

2017-11-27 16:13:36 183

原创 ArrayList源码分析

Java1.8类库源码分析-集合框架-ArrayList

2017-11-27 16:12:18 145

原创 Android开源控件viewbadger的原理及使用

viewbadger是github上的一个开源控件,能够以一个小徽章的样式附着在某个view上,通常用于显示未读消息数,典型的如微信、QQ、微博等,地址为:https://github.com/jgilfelt/android-viewbadger。下图为项目主页给出的样式图,可见还是能满足各种需求的。viewbadger继承自textview,使用起来很简单,项目主页给出的Sam

2016-08-23 23:35:13 3146

原创 仿微信聊天界面——键盘与面板的切换

如果认真留意的话会发现,正常情况下,安卓版本的微信打开表情面板的高度总是能保持和键盘的高度一致(IOS的好像不一致),这样用户在进行键盘和面板的切换时能得到较好的用户体验。此外,微信也做了一定的处理,保证键盘和面板的切换比较流畅,不会出现跳动的现象。从这些细节可以体现出微信的用户体验还是做得很好的。首先上两张图感受一下:          第一张是把面板的高度写死,并且在面板和键盘的切

2016-08-07 12:28:06 8590 4

原创 高仿微信摇一摇功能

网上也有一些仿微信摇一摇的,但大部分都不完整。今天就自己动手来仿一下。有图的当然先上一下图:                                             触发摇一摇后手机还有音效和震动效果,gif展示不出来。另外在设置界面还能更改背景图,设置音效的开关,点击更换后打开一个图片选择器,这里不会讲这个选择器,有兴趣的可以参照鸿神的博客,我的大部分也是参照那上面来

2016-07-27 16:05:34 1713 1

原创 修改源码自定义SwipeRefreshLayout样式——高仿微信朋友圈下拉刷新

通过修改源码的方法,自定义SwipeRefreshLayout样式,高仿了微信朋友圈下拉刷新。上一篇文章里把SwipeRefreshLayout的原理简单过了一下,大致了解了其工作原理,不熟悉的可以去看一下:http://blog.csdn.net/u011443509/article/details/52017355上一篇里最后提到,SwipeRefreshLayout的可定制性是比较差的,看源码会发现跟样式相关的几个类都是private的而且方法是写死的,只暴露出了几个颜色设置的方法。这样使得Swi

2016-07-25 18:01:02 17895 14

原创 Android下拉刷新控件SwipeRefreshLayout源码浅析

简要分析SwipeRefreshLayout的源码,了解其原理和绘制流程,提供了自定义样式的思路。

2016-07-25 00:05:01 4682

原创 JAVA学习笔记——JAVA中的IO流

本文内容主要根据慕课网的《文件传输基础——JAVA IO流》课程整理而成。(链接:http://www.imooc.com/learn/123)一. 文件的编码问题:        新建一个文本文件,输入“联通”后保存,再打开会出现乱码。而输入“联想”再打开时则不会出现乱码。原因:        文本文件是字节序列,如果在中文机上直接创建文本文件,该文本文件只认识ANS

2016-02-29 20:48:10 612

原创 C++学习笔记(杂)

花了一个礼拜多把PAT Basic Level的题全刷完了,之前只有C的基础,刚开始接触C++,刷题过程中遇到了一些小问题,记录一下。1. 用cin来输入时,是自动以空格或回车来分割的,要读入空格,需要使用getline(cin, 变量名)。2. 输出格式控制:要使输出的位数固定为n,左端补领时,可以用cout要使输出的小数位数固定为n,可以用cout3.sort的用法为sor

2015-10-15 14:40:27 583

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除