iOS学习计划(实验)

iOS学习计划(实验)

一个不成熟的iOS初学者学习规划

了解全局

Read more

A Good Start

2020年已经结束半个月, 现在来补个总结。

Read more

简简单单的Retrofit源码分析

Retrofit做了什么

Retrofit 对 OkHttp进行了一层封装, 对网络层进行了解耦, 主要是通过注解,泛型,动态代理, 还有大量的设计模式来实现的.

Retrofit使用流程分析

  1. 构建一个Retrofit对象
Read more

简简单单的OkHttp源码分析

OkHttp介绍

OkHttp是目前Android使用最频繁的网络请求框架(目前的Volley, Retrofit底层都是使用的OkHttp), 框架由Square公司开源, 在Android4.4之后HttpUrlConnection也默认使用OkHttp的实现
在OkHttp4之后改为kotlin实现

  • 优势所在
    1. 支持Socket连接池复用TCP连接
    2. 支持Http2.0协议
    3. 支持Gzip压缩格式
    4. 支持缓存控制
    5. 请求失败时的自动重试和重定向机制
Read more

简简单单的Handler源码分析

Handler机制如何保证线程之间的通信

Handler采用了内存共享的方案来实现线程间的进程通信, 为什么这么说呢? 接下来我会简单的分析一下.

Handler

Read more

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"
Read more

Java内存模型

as-if-serial属性

菩提本无树, 何处惹尘埃。

即时编译器(和处理器)需要保证程序能够遵守as-if-serial属性。通俗地说, 就是在单线程情况下, 要给程序一个顺序执行的假象。即经过重排序的执行结果要与顺序执行的结果一致。

另外, 若两个操作之间存在数据依赖, 那么及时编译器(和处理器)不能调整它们的顺序, 否则将会造成程序语义的改变。

Read more

Java反射API的用法

获取Class对象

  • Class.forName获取Class对象
  • getClass()方法
  • 直接使用类名+”.class”. 对于基本数据类型, 它们的包装类型拥有一个名为”TYPE”的final静态字段, 指向该基本数据类型对应的Class对象

integer.TYPE 指向 int.class
对于数组类型 可以使用类名+ “[].class”来访问, 如int[].class

Read more

Java对象的内存布局

java对象的额外内存开销(对象头)

运行数据 (8字节)

包括

  • 哈希码
  • GC信息
  • 所信息
对象类型指针 (8字节)

指向对象对应的类

Read more