
底层原理
文章平均质量分 85
向往自由美好的孙先森
这个作者很懒,什么都没留下…
展开
-
android 相关的JVM,GC 知识的扩充2
1.java自动管理堆(heap)和(栈),程序员不能直接的设置堆和栈。2.操作系统的堆和栈: 堆(操作系统):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式类似于链表。 栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量值等。操作方式与数据结构中的栈相类似。 1. 2.为什么jvm的内存是分布在操作系统的堆中呢??因为操作系统的栈是操作系统管理的,它随时会被回收,所以如果jvm放在栈中,那java的一个null对象就很难确定会被谁原创 2021-11-07 14:58:23 · 1498 阅读 · 0 评论 -
APT技术中的SPI 机制,与javac对其的运用
SPI:Service Provider Interface是一种服务发现机制。他通过在classPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。//SPI机制//对象初始化ServiceLoader<SPIService> load = ServiceLoader.load(SPIService.class);Iterator<SPIService> iterator = load.iterator();通过服务加载器原创 2021-11-07 13:27:19 · 329 阅读 · 0 评论 -
你所需要知道的IO知识
IO的基本常识-内核空间内核(linux)的IO栈我们可以吧Linux存储系统的io栈,由上到下分为三个层次,分别是文件系统层、通用块层和设备层。文件系统层,包括虚拟文件系统和其他各种文件系统的具体实现。它为上层的应用程序,提供标准的文件访问接口;对下会通过通用块层,来存储和管理磁盘数据。通用块层,包括块设备io队列和io调度器。它会对文件系统的io请求进行排队,再通过重新排序和请求合并,然后才发送给下一级的设备层。设备层,包括存储设备和相应的驱动程序,负责最终物理设备的io操作。.原创 2021-11-03 09:24:36 · 361 阅读 · 0 评论 -
android 相关的JVM,GC 知识的扩充
1 JVM 是一种规范java文件-》编译器-》字节码-》机器码JAVA虚拟机与JAVA语言并没有直接联系,他只是特定的二进制文件格式.class文件有所关联, CLASS文件中包含JVM虚拟机指令集(bytecodes)和符号表,还有一些其他辅助信息。java 编译器指令流 是基于栈的指令集架构,而另一种指令集架构为基于寄存器的指令集架构2 堆的默认大小默认空间大小:初始大小:物理电脑内存大小 / 64最大内存大小:物理电脑内存大小 / 43 Mino...原创 2021-09-26 09:44:52 · 345 阅读 · 0 评论 -
Retrofit 原理梳理
Retrofit的核心原理解密2Retrofit的代理模式动态代理实现在java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过这个类和这个接口可以生成JDK动态代理类和动态代理对象。这个代理对象是存在于内存中的。1、创建一个InvocationHandler对象 InvocationHandler stuHandler = new MyInvocationHandler<Person>(stu);...原创 2021-08-15 21:33:44 · 331 阅读 · 0 评论 -
你所需要掌握的okhttp知识
1.1 介绍:okhttp 是目前Android 使用最广泛的网络框架。从android4.4开始HttpUrlConnection的底层实现采用的是OkHttp。1.2 调用流程OkHttp请求过程中最少只需要接触OkHttpClient、Request、Call、Response,但是框架内部进行大量的逻辑处理。 所有的逻辑大部分集中在拦截器中,但是在进入拦截器之前还需要依靠分发器来调配请求任务。分发器:内部维护队列与线程池,完成请求调配;拦截器:五大默认拦截器完成整个请求过程。..原创 2021-08-14 19:30:40 · 237 阅读 · 0 评论 -
ServiceManager与SystemService 作用与关联
ServiceManager与SystemService 是Android 系统中与服务相关的两个进程我们可以看到systemserver 进程是由zygote 进行孵化出来的,而servicemanager 进行的父进程是init 进程systemserver 的实现 是在framework 层看下 源码:run()继续跟踪可以看到Android 系统中所有的服务都是在run()中进行启动。2 启动后的服务该怎么管理与使用呢?这里我们就要引申出servic.原创 2021-05-18 16:41:42 · 1638 阅读 · 1 评论