- 博客(27)
- 资源 (57)
- 收藏
- 关注
原创 (4.1.54)Android Context详解
文章目录一、 Context 接口的方法二、Context 应用场景三、Context 如何获取3.1 getApplicationContext()和getApplication()四、一个应用的Context个数4.1 ContextImpl4.2 ContextWrapper4.2.1 ContextThemeWrapper4.2.2 Activity、Service、Applicat...
2018-10-31 14:43:23 494
原创 (4.2.36.4)HTTP之OkHttp(四): OkHttp源码解析
文章目录一、OkHttp优点二、源码涉及的主要几个对象2.1 OkHttp网络请求流程2.2 Dispatcher任务调度2.2.1 Dispatcher的enqueue方法2.2.2 RealCall执行任务2.2.3 拦截器RetryAndFollowUpInterceptor:进行连接失败重新连接,以及重定向BridgeInterceptor:对请求头和响应头进行修改CacheInterce...
2018-10-27 21:05:35 1044
原创 (2.1.2.4)Java多线程(四)、线程池
文章目录一、new Thread的弊端二、 线程池的优势三、ThreadPoolExecutor3.1 ThreadPoolExecutor方法3.2 线程池的种类3.2.1 FixedThreadPool 可重用固定线程数3.2.2 CachedThreadPool 无限线程数3.1.3 SingleThreadExecutor 单线程化3.2.4 ScheduledThreadPool 定时周...
2018-10-27 18:24:17 243
原创 Android测评
文章目录一、Java之基本知识JVM相关ClassLoader相关Java ClassLoaderAndroid ClassLoader进程相关线程相关并发相关clone相关注解相关异常相关二、设计模式相关三、Android环境相关3.1 Gradle3.2 Proguard混淆3.3 CI平台 JenKins四、Android基础4.1 Activity 使用详解4.2 Fragment 使用详...
2018-10-26 10:43:14 713
原创 (4.6.29.5)插件化之代码加载:Dynamic-Load-Apk
文章目录一、概述1.1 DL对activity生命周期管理的改进1.2 DL对类加载器的支持1.3 DL对宿主(host)和插件(plugin)通信的支持1.4 DL对插件独立运行的支持1.5 DL对activity随意跳转的支持(DLIntent)和 对插件管理的支持(DLPluginManager)二、利用DL框架进行开发的步骤2.1 引入2.2 插件2.3 host三、源码解析3.1 核心概...
2018-10-23 10:18:09 302
原创 (4.2.48)MVPArms源码分析
MVPArms源码分析多module下全局Application的冲突和聚合问题全局配置信息GlobalConfigModuleGlobalConfigModule使用建造者模式将App的全局配置信息封装进Module(使用Dagger注入到需要配置信息的地方)。可以配置CacheFile,Interceptor等,甚至于Retrofit,Okhttp,RxCache都可以自定义配置因为使...
2018-10-23 10:05:11 697
原创 (4.6.30.1)组件化:Application离散式注册方案
文章目录一、Application功能分析二、问题分析三、入侵生命周期的离散式实现四、全局单例模式的离散式使用Application离散式注册方案一、Application功能分析在Android开发当中,一个APP有且只能有一个全局的Application对象,而且如果需要自定义的话,必须在AndroidManifest.xml中配置Application的使用主要涉及以下两个功能:...
2018-10-23 10:00:45 347
原创 (4.6.30)组件化:Android项目构架演变之路
文章目录一、简单开发模型二、单工程开发模型(业务逻辑分层模型)2.1 简单开发模型的宏观分层2.2 MOA原架构模型2.3 业务层的分层理念与设计模式2.3.1 分层理念2.3.2 MVC模式2.3.3 MVP模式三、组件模型3.1 为什么推进组件化?3.1 组件化?模块化?插件化?3.2 主App多Lib开发模型3.3 主App多子App开发模型四、组件化过程关键点4.1 组件切分和代码隔离4....
2018-10-23 09:52:11 1113
原创 (4.6.29)Android插件化框架总结
文章目录一、概述为什么需要插件化?1.1 发展历史1.2 需要知识1.2.1 Binder1.2.2 App打包流程1.2.3 App安装流程1.2.4 App启动流程1.2.5 资源加载机制1.2.6 Gradle配置打包1.3 主流框架Dynamic-load-apk详解DroidPlugin详解Small框架详解参考文献文章目录一、概述为什么需要插件化?1.1 发展历史1.2 需要知识1....
2018-10-23 09:26:15 721
原创 (2.1.8.5)Java并发编程:synchronized之ConcurrentHashMap
文章目录一、属性二、主要构造函数三、主要方法3.1 putVal3.1.1 initTable3.1.2 tabAt3.1.3 casTabAt3.1.4 helpTransfer3.1.5 addCountConcurrentHashMap 和 HashMap 的底层实现都是 数组+链表或红黑树 构成的。HashMap 的源码分析见:Java集合框架——HashMap源码分析Concurr...
2018-10-23 09:05:47 220
原创 (2.1.27.15)Java并发编程:Lock之CyclicBarrier公共屏障
文章目录一、使用示例二、源码分析2.1 构造方法及成员变量2.2 await2.3 reset三、CountDownLatch 和 CyclicBarrierCyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很...
2018-10-23 09:04:13 391
原创 (2.1.27.14)Java并发编程:Lock之Condition等待通知
文章目录一、等待通知1.1 自旋实现的等待通知1.2 Object提供的等待通知1.3 显示锁提供的等待通知二、应用举例三、源码分析3.1 概述3.2 整体结构3.3 等待await3.4 通知signal四、Condition等待通知的本质五、总结讲了这么基于AQS和Lock实现的同步锁机制,我们可以发现它们主要是实现了同步并发的控制lock时获取锁,失败则进入队列等待。成功则自动向下执行...
2018-10-23 09:02:25 419
原创 (2.1.27.13)Java并发编程:Lock之CountDownLatch计数式独享锁
文章目录一、使用二、总体结构2.1 AQS的实现CountDownLatch是一种java.util.concurrent包下一个同步工具类,它允许一个或多个线程等待直到在其他线程中一组操作执行完成。相对于前文的锁,它主要实现了: 调用指定次release后,才会释放锁一、使用public static void testCountDownLatch(){ ...
2018-10-22 09:50:08 221
原创 (2.1.27.12)Java并发编程:Lock之Semaphore共享式不可重入锁
文章目录一、使用示例二、总体结构三、acquire()和release()大致流程3.1 AQS的实现3.1.1 非公平锁3.1.2 公平锁一、使用二、总体结构2.1 AQS的实现Semaphore是一种基于计数的信号量。它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做完自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞一、使用示例 // 创建一个计数阈值为5的信号量对象 ...
2018-10-22 09:47:47 871 2
原创 (2.1.27.11)Java并发编程:Lock之ReentrantReadWriteLock 读写分离独享式重入锁
文章目录一、使用示例二、源码分析2.1 ReentrantReadWriteLock整体结构2.2 读写锁2.3 AQS的实现2.3.1 state的改变2.3.2 独享式写锁对应的AQS2.3.2.1 独享式写锁的获取2.3.2.2 独享式写锁的释放2.3.3 共享式读锁对应的AQS2.3.3.1 共享式读锁的获取2.3.3.2 共享式读锁的释放三、补充内容我们在介绍AbstractQueue...
2018-10-22 09:46:35 185 1
原创 (2.1.27.10)Java并发编程:Lock之ReentrantLock独享式重入锁
文章目录一、使用二、总体结构三、lock()与unlock()大致流程3.1 AQS的实现3.1.1 非公平锁3.1.2 公平锁四、tryLock()的实现ReentrantLock,即重入锁,是一个和synchronized关键字等价的,支持线程重入的互斥锁。只是在synchronized已有功能基础上添加了一些扩展功能。除了支持可中断获取锁、超时获取锁、非阻塞获取锁这些显示锁的常见功能外,...
2018-10-22 09:45:28 212
原创 (2.1.27.9)Java并发编程:Lock之AQS
文章目录一、AQS方法简介1.1 钩子方法1.2 模板方法1.2.1 独占式获取与释放同步状态1.2.2 共享式获取与释放同步状态1.2.3 其他1.3 借助AQS实现的独占锁示例二、AQS具体实现及内部原理2.1 AQS中FIFO队列2.1.1 Node节点结构2.1.2 AQS添加尾节点2.1.3 AQS添加头节点2.2 独占式同步状态获取与释放2.2.1 独占式同步状态获取acquire2....
2018-10-22 09:43:45 301
原创 (2.1.27.8)Java并发编程:Lock显示锁
文章目录一、concurrent包的设计二、Lock接口(以及相关实现类)UML类图三、Lock接口一、concurrent包的设计要了解Java为我们提供的基于Lock接口(以及相关实现类)实现的锁功能,我们首先要看一下整个concurrent包下的设计。具体设计如下所示:【concurrent包的设计】在上图中,我们大致可以看出courrent包下的整体结构。整个包大致分为了三层。...
2018-10-22 09:40:16 245
原创 (2.1.27.7)Java并发编程:Object.wait/notify
文章目录一、示例二、为什么要使用synchronized?三、代码执行过程分析3.1 Object.wait方法实现3.2 Object.notify()/notifyAll方法实现Java Object对象中的wait,notify,notifyAll是定义在Object类的实例方法,用于控制线程状态。三个方法都必须在synchronized 同步关键字所限定的作用域中调用,否则会报错jav...
2018-10-22 09:35:28 268
原创 (2.1.27.6)Java并发编程:synchronized
文章目录一、synchronized的三种使用方式1.1 证明当前普通的同步方法,锁式当前实例对象1.2 证明对于静态同步方法,锁式当前类的Class对象二、Synchronized结合Java Object对象中的wait,notify,notifyAll三、Synchronized底层实现的前备知识3.1 Java对象的内存布局与对象头3.1.1 “Mark Word“数据结构3.2 sync...
2018-10-22 09:31:54 533
原创 (2.1.27.5)Java并发编程:Volatile
Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。当一个变量定义为 volati...
2018-10-22 09:10:00 254
原创 (2.1.27.4)Java并发编程:原子类Atomic
在Java中的并发包中了提供了以下几种类型的原子类来来解决线程安全的问题。分为基本数据类型原子类数组类型原子类引用类型原子类字段类型原子类。因为其内部原理都差不多一致。这里会对每种类型的原子类抽一个来介绍。一、原子类的使用方式public class AtomicTest{ //public static volatile int race=0;//1 public sta...
2018-10-22 09:05:59 271
原创 (2.1.27.3)Java并发编程:CAS操作
文章目录一、物理计算机的缓存锁1.1 缓存锁与CAS(Compare-and-Swap)的关系二、Java世界的CAS操作(Compare-and-Swap)三、CAS在Java中的实现参考文献在前文中我们描述过,物理机计算机的数据缓存不一致的时候,我们一般采用两种方式来处理。一,通过总线加锁的形式,二,通过缓存一致性协议来操作。体现缓存一致性的正是CAS(Compare-and-Swap)操...
2018-10-19 18:05:50 248
原创 (2.1.27.2)Java并发编程:JAVA的内存模型
文章目录一、Java的内存模型二、工作内存和主内存的交互2.1 八种原子操作规则三、Java内存模型的需要解决的问题3.1 工作内存的可见性问题3.2 重排序在多线程中引发的问题四、Happens-Before 原则4.1 程序次序规则4.2 锁定规则4.3 volatlie变量规则4.4 线程启动规则4.5 线程终止规则4.6 线程中断规则4.7 对象终结规则4.8 传递性规则Java定义...
2018-10-19 18:01:50 304
原创 (2.1.27.1)Java并发编程:并发
文章目录一、 并发的起源二、物理计算机的内存模型三、缓存结构在多线程模型中引发的缓存不一致问题3.1 通过总线加LOCK#锁的方式3.2 通过缓存一致性协议的方式四、CPU(处理器)的乱序执行(out-of-orderexecution)4.1 数据依赖4.2 重排序规则(as-if-serial)在物理计算机中CPU为了提高处理速度,添加了高速缓存与CPU乱序执行一、 并发的起源为...
2018-10-19 17:56:46 251
原创 (2.1.27)Java并发编程
参考文献Java并发编程Java并发编程之Java内存模型Java并发编程之Java CAS操作Java并发编程之VolatileJava并发编程之synchronizedJava并发编程之原子类Java中Volatile关键字详解Java显式锁学习总结之六:Condition源码分析java并发编程之Condition深入研究 Java Synchronize 和 L...
2018-10-16 18:58:00 853
转载 欢迎使用CSDN-markdown编辑器--备份
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2018-10-16 16:38:34 131
计算机网络\计算机网络技术期末考试模拟试题及答案
2012-11-16
计算机网络期末试题及答案计算机网络期末试题
2012-11-16
2010-2011安阳工学院计算机网络期末试题
2012-11-16
进程保活(一:JNI层初探):单向循环式启动服务
2016-07-23
会议室系统jsp课程设计
2012-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人