苏富仕的博客

-4


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 公益404

Java锁的原理

发表于 2018-02-26
前言Java的线程是映射到操作系统原生线程之上的,如果要阻塞或唤醒一个线程就需要操作系统介入,需要在用户态和内核态之间切换,这种切换会消耗大量的系统资源,因为用户态和内核态都有各自专用的内存空间,专用的寄存器等,用户态切换至内核态需要传递许多变量、参数给内核,内核也需要保护用户态在切换时的一些寄存器 ...
阅读全文 »

Java对象头

发表于 2018-02-26
概要HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 对象头HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据,如哈希吗(HashC ...
阅读全文 »

Java内存模型

发表于 2018-02-18
前言Java内存模型即Java Memory Model,简称JMM。JMM定义了Java虚拟机在计算机内存中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。 Java虚拟机规范试图定义一种 ...
阅读全文 »

android内存泄漏原因分析

发表于 2018-01-27
前言诸如Java这样的GC(垃圾回收)语言的一个好处就是免去了开发者管理内存分配的必要。这样降低了段错误导致应用奔溃或者未释放的内存挤爆了堆的可能性,因此也能编写更安全的代码。不幸的是,Java里仍有一些其他的方式会导致内存“合理”地泄漏。最终,这意味着android应用可能会浪费一些非必要内存,甚 ...
阅读全文 »

OkHttp框架源码解析——多路复用

发表于 2018-01-26
前言OkHttp的连接池管理部分也是其核心部分,通过维护连接池,最大限度重用现有连接,减少网络连接的创建开销,以此提升网络请求效率。 连接池实现背景keep-alive机制 在HTTP1.0中HTTP的请求流程如下: 这种方法的好处是简单,各个请求互不干扰。但在复杂的网络请求场景下这种方式几乎不可 ...
阅读全文 »

OkHttp框架源码解析——缓存策略

发表于 2018-01-26
前言合理利用本地缓存可以有效地减少网络开销,减少响应延迟。 HTTP缓存策略 HTTP报头也定义了很多与缓存有关的域来控制缓存。 Expires 超时时间,一般用在服务器的response报头中用于告知客户端对应资源的过期时间。当客户端需要再次请求相同资源时先比较其过期时间,如果尚未超过过期时间则 ...
阅读全文 »

OkHttp框架源码解析——任务队列

发表于 2018-01-25
前言OkHttp的任务队列在内部维护了一个线程池用于执行具体的网络请求,而线程池最大的好处在于通过线程复用减少非核心任务的损耗。 线程池的优点 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。但如果对多线程应用不当,会增加对单个任务的 ...
阅读全文 »

OkHttp框架源码解析——拦截器

发表于 2018-01-25
前言首先来看一下OkHttp的整体结构设计。 上面这张图就是OkHttp的总体设计图。它主要是通过Dispatcher不断从RequestQueue中取出请求(Call),根据是否已经缓存调用Cache或Network这两类数据获取接口之一,从内存缓存或是服务器取得请求的数据。该引擎有同步和异步请 ...
阅读全文 »

OkHttp框架源码解析——整体架构

发表于 2018-01-25
前言OkHttp是一个处理网络请求的开源项目,是android端最火热的轻量级框架,由移动支付Square公司贡献用于替代HttpUrlConnection和Apache HttpClient。OkHttp有如下特点: 支持HTTP / HTTP2 / WebSocket 内部维护任务队列线程池, ...
阅读全文 »

android中的序列化机制原理

发表于 2018-01-24
前言当我们在调用远程方法时,需要在进程间传递参数以及返回结果。这种类似的处理方式,需要把数据与进程相关性去除,变成一种中间形式,然后按统一的接口进行读写操作。这样的机制,一般在高级编程语言里被称为序列化。 在android世界里处理数据的序列化操作的,使用了一种Parcel类,而能够处理数据序列化能 ...
阅读全文 »
123…6
sufushi

sufushi

这是苏富仕的博客

54 日志
8 标签
GitHub
© 2018 sufushi
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.3