摘要: 由于Java泛型参数的实际类型在编译时期会被消除,所以无法在运行时得知其类型参数的实际类型。也就是泛型约束只在编译时期起作用。 我们先来看一个例子 这段代码的打印结果如下: 根据运行结果可以很清楚的看到 List 和List 在运行时期(编译后)都是java.util.ArrayList,参数类型S 阅读全文
posted @ 2022-02-19 00:08 Shzy 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 一.前言 AMS在Android 10 和之前版本的区别 android 10: 在AMS的基础上加入了AMS的辅助管理类ActivityTaskManagerService,它负责Actiivty的启动,切换以及调度。并且ActivityTaskManagerService也属于SystemSer 阅读全文
posted @ 2022-01-28 19:00 Shzy 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 一.Dispatcher工作流程 1)OkHttp的基本使用 我们先从okHttp最基础的使用开始 private fun httpRequestWithManyRequests() { // 创建了一个okHttpClient对象 val okHttpClient = OkHttpClient.B 阅读全文
posted @ 2022-01-28 18:52 Shzy 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 今天在学习群里碰到了一个问题:用Glide + okHttp3加载图片,这个时候有一个需求就是,有一个url对应的图片流,这个图片数据流需要去除前面八个字节后才能正常显示图片,所以那位大佬的思路就是添加一个okHttp的应用层拦截器,并在该拦截器中对图片流前面的八个字节进行移除,于是就有了最开始的下 阅读全文
posted @ 2022-01-25 02:48 Shzy 阅读(99) 评论(0) 推荐(0) 编辑
摘要: Java堆 堆的对象管理 在《Java虚拟机规范》中堆Java堆的描述是:所有对象实例以及数组都应该在运行时分配到堆上 但是从实际使用的角度来看,不是绝对,存在某些特殊情况下的对象产生不在堆上奉陪内存 这里注意,规范上是绝对,实际上是相对 方法结束后,堆中的对象不会马上被移除,需要通过GC执行垃圾回 阅读全文
posted @ 2022-01-22 02:34 Shzy 阅读(774) 评论(0) 推荐(0) 编辑
摘要: Java动态代理技术 一.代理模式 代理模式的实现 想要了解动态代理,我们就得从23种设计模式的代理模式开始。 我们来看看以下场景,有一个Chinese类和Englisher类,它们都实现了Speakable接口。(中国人讲中文,英国人讲英文) public class Chinese implem 阅读全文
posted @ 2022-01-21 02:11 Shzy 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Part1:注解的作用和意义 1.注解本没有任何意义,单独的注解就是一种注释,它需要结合其它如反射、插桩等技术才有意义 2.Java注解(Annotation)又称Java标注,是JDK1.5引入的一种注解机制。是元数据的一种形式,提供有关与程序属于程序本身的数据。注解对他它们注解的代码的操作并没有 阅读全文
posted @ 2022-01-21 00:54 Shzy 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 公平锁和非公平锁 公平锁:等待时间较长的线程优先获得锁 非公平锁:没有优先级,等待时间长的线程不一定就会优先获得锁 乐观锁和悲观锁 悲观锁: 悲观锁简介 在修改数据之前先锁定再修改,具有强烈的独占和排他性 之所以叫悲观锁,是因为这是一种对数据的修改持有悲观的态度的并发控制方式:总是假设最坏的情况,也 阅读全文
posted @ 2022-01-20 15:30 Shzy 阅读(139) 评论(0) 推荐(0) 编辑