- 博客(12)
- 资源 (3)
- 收藏
- 关注
原创 Activity启动模式
Activity任务栈通常每个APP都有一个Activity任务栈,app中所有的Activity都存在该任务栈中,栈顶的Activity为当前正在显示的Activity。当点击Icon启动App时,会先判断当前App的任务栈是否已经存在,如果已经存在则这接把任务栈调出来显示,不存在则创建任务栈,然后将应用的Activity入口打开。启动模式Standard标准模式,每次启动Activit...
2019-07-23 15:56:57
261
原创 Java并发编程
Java编发编程ThreadThread的几种状态NEW:线程刚创建还没startRUNNABLE: 线程正在JVM中执行BLOCKED: 当前线程正在等待monitor lock Synchronized代码块会让没获得锁的线程进入Blocked状态,Object.wait也会进入BLOCKED状态。WAITING: 等待其他线程唤醒。Locksupport.park会让线程进入w...
2019-07-23 15:24:20
374
原创 从源码理解LinkedMap和HashMap的区别
前面几篇从源码角度分析了HashMap put和遍历过程HashMap数据结构以及put过程,HashMap遍历原理,通过上面两篇分析HahMap遍历数据的顺序是随机的,LinkedHashMap和HashMap唯一的不同是后者遍历的是有序的。数据结构HashMap使用的是数组+单链表的数据结构(本质上是数组,数组的每个元素是一个单向链表),LinkedHashMap使用的是数组+双向链表数据结构。
2017-10-18 22:07:11
10362
1
原创 HashMap从源码角度分析遍历过程
上一篇分析了HashMap的数据结构以及put方法的源码 HashMap源码解析,下面分析HashMap的遍历过程的源码。 遍历的方法有很多中,主要分析下面这种: Iterator<Map.Entry<String, String>> iterator = hashMap.entrySet().iterator(); while (iterator.hasNex
2017-10-14 13:38:00
1000
原创 HashMap源码解析
HashMap很多面试都会问,很纳闷儿那么多数据结构为什么非挑HashMap呢?直到分析了源码以后才发现这里面包含了大量的知识点,单挑出一个来就能问到你怀疑人生。HashMap数据结构先介绍两种常用的数据结构,以及优缺点:数组数组在内存中是连续存放的,所以数组的遍历速度很快,但是在数组中插入数据时,需要将插入位置之后的元素依次向后移动,所以数组插入数据的效率较低。链表HashMap中使用的单向链表,
2017-10-14 12:39:05
719
原创 Fresco解析 (Controller)
第一篇 Fresco初始化流程 第二篇 DraweeView, DraweeHierarchy 分析DraweeController根据之前的分析,调用SimpleDraweeView.setImageURI()方法就可以显示图片,源码很简单:public void setImageURI(Uri uri, @Nullable Object callerContext) { DraweeC
2017-09-25 17:34:47
970
原创 Fresco解析(DraweeView,DraweeHierarchy)
上一篇分析SimpleDraweeView调用setController方法来显示图片, 接下来分析setController具体实现。按住Ctrl进入setController内部,看到此方法定义在DraweeView中,那就先分析DraweeView。DraweeView先看注释:/* * View that displays a {@link DraweeHierarchy}. * Hie
2017-09-21 12:59:13
672
原创 Fresco解析 (初始化)
项目图片加载框架换成了Fresco,都说功能很强大,拿出了一些时间分析了一下源码,特此总结一下,由于能力有限,有分析不对的地方,欢迎大神指正。Fresco官方文档 https://www.fresco-cn.org/docs/Fresco源码整体架构是一个非常标准的MVC,不过现在主流的架构应该是MVP,不过多了解一些东西也不是啥坏事。除此之外Fresco源码还使用了工厂模式,管道,构建者模式,Pr
2017-09-19 17:13:56
1549
原创 Android事件分发机制(二)
当ViewGroup不拦截事件时,事件将会向子View传递,那到底是怎样把事件传递到子View的呢?接下来将分析这个流程,先看代码ViewGroup事件分发final View[] children = mChildren;for (int i = childrenCount - 1; i >= 0; i--) { final int childIndex = getAndVerifyPr
2017-09-17 09:12:07
398
原创 Android事件分发机制(一)
在项目中遇到过很多次的事件冲突,在博客上看过一些事件分发的文章,但是基本上都是为了先解决需求,一直没有深入的研究,没过几天就忘的差不多了,下次再遇到这方面的问题仍然需要找百度帮忙,正好这一阵有时间,想好好整理一下Android事件分发,特此记录一下。看过很多关于事件分发的博客,写的都非常好。分享一下自己关于这块内容的学习经验,如果不清楚事件分发的流程,不太建议一上来就分析源码,可以先看[http
2017-09-10 18:55:15
356
原创 防百度地图上下拖动View
因项目需求要实现类似于百度地图上下拖动的效果,特此分享,百度地图效果: 地图显示为一个Activity,View可以跟随手指的滑动而移动,手指松开时自动滑动到屏幕的底部或者顶部。 直接上代码:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/
2017-09-09 11:31:04
2322
SPringMVC框架下使用JSON
2014-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅