首页
学习
活动
专区
工具
TVP
发布

刘晓杰

专栏成员
281
文章
266390
阅读量
41
订阅数
Fresco(一)Fresco的使用介绍
Fresco是一个出自Facebook的功能强大的图片加载库。本文就来介绍一下它的使用
提莫队长
2021-07-27
1.5K0
Future系列(CompletableFuture与retrofit)使用和解析
注意,retrofit 2.9.0 已经内置了 java8 的 adapter,所以不需要 adapter-java8 的依赖了 另外,别忘了网络权限
提莫队长
2021-03-11
1.2K0
线程安全和锁机制(一)总述
当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象是线程安全的。
提莫队长
2021-03-03
7420
线程安全和锁机制(二)谈谈volatile
计算机在执行程序的时候,每条指令都是在CPU中执行的,执行完了把数据存放在主存当中,也就是计算机的物理内存。 刚开始没问题,但是随着CPU技术的发展,执行速度越来越快。而由于内存的技术并没有太大的变化,导致从内存中读写数据比CPU慢,浪费CPU时间。 于是在CPU和内存之间增加高速缓存。这样就引入新的问题:缓存一致性。在多核CPU中,每个核的自己的缓存中,关于同一个数据的缓存内容可能不一致。 除了这种情况,还有一种硬件问题也比较重要。那就是为了使处理器内部的运算单元能够尽量的被充分利用,处理器可能会对输入代码进行乱序执行处理。这就是处理器优化。 除了现在很多流行的处理器会对代码进行优化乱序处理,很多编程语言的编译器也会有类似的优化,比如Java虚拟机的即时编译器(JIT)也会做指令重排。
提莫队长
2021-03-03
3620
线程安全和锁机制(四)谈谈 ThreadLocal 和 Handler
ThreadLocal可以实现线程本地存储的功能。把共享数据的可见范围限制在同一个线程内,就无须同步也能保证线程间不出现数据争用的问题。 那么它是如何实现解决数据争用的问题呢。看代码
提莫队长
2021-03-03
3690
TCP长链接介绍
TCP连接以后不主动断开连接.区别于短链接(三次握手四次分手算一次短链接),优点是避免短时间内重复连接所造成的信道资源以及网络资源的浪费
提莫队长
2020-06-03
1.4K0
Linux和Android的IPC通信简介
IPC全名为inter-Process Communication,含义为进程间通信,是指两个进程之间进行数据交换的过程。在Android和Linux中都有各自的IPC机制,这里分别来介绍下。
提莫队长
2020-06-02
1.7K0
Bitmap介绍
getByteCount()方法是在API12加入的,代表存储Bitmap的色素需要的最少内存。API19开始getAllocationByteCount()方法代替了getByteCount()。 这是API26的
提莫队长
2020-06-02
1.4K0
dex文件字节码解析
这一篇解析dex文件.还是由上一篇文章MainActivity生成的dex文件.dex文件比较大,我就不贴16进制代码了,大致讲一下具体怎么操作.由于手工解析太困难了,所以我就借助代码和两篇参考文章来解析的 Android逆向之旅---解析编译之后的Dex文件格式 Android dex文件解析 接下来开始解析.
提莫队长
2020-06-02
6890
再论Android的事件分发机制
Touch事件分发中只有两个主角:ViewGroup和View。Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。
提莫队长
2020-06-02
7180
AnnotationProcessor实战:实现ButterKnife的findViewById方法
要实现findViewById,需要四个参数(控件类型,控件变量名,宿主view(通常是activity,我们一般省去),以及控件id) BindView 通常是如下使用的
提莫队长
2020-06-02
4020
Dagger基础:Java依赖注入标准(javax.inject)介绍
有这个注解的类包含了一个可注入的构造函数和管理injector如何重新使用这个实例 如果没有这个注解,injector生成并使用一次,然后就丢弃 有了这个注解,那就会保留以便以后的注入 如果是多线程,那就是线程安全的
提莫队长
2020-06-02
2.1K0
浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)
1.什么是依赖(Dependency)? 依赖是一种关系,通俗来讲就是一种需要。 比如 class Shopper { FoodA mFoodA; public Shopper() { mFoodA = new FoodA(); } } Shopper 的内部持有 FoodA 的引用,这就是依赖在编程世界中的体现。 2.依赖倒置(DIP) 定义 上层模块不应该依赖底层模块,它们都应该依赖于抽象。 抽象不应该依赖于细节,细节应该依赖于抽象。 还是以上面的商家拥有食物
提莫队长
2020-06-02
9040
java泛型详解
先来一道经典的测试题。 List<String> l1 = new ArrayList<String>(); List<Integer> l2 = new ArrayList<Integer>();
提莫队长
2020-06-02
6730
setVisibility源码解析
做项目的时候,AppBarLayout里面嵌套RecycleView。当没有数据的时候就提示请求出错的图片。当Fragment互相切换切回这个Fragment的时候(切的时候因为需求原因,有的时候需要沉浸式,有的时候又不需要,所以设置了Padding),重新请求数据,发现请求出错的图片往下挪了点位置。后来经过定位,是在设置Visiblity的时候引起的,而且获取同一个控件宽高的时候发现位置和padding还有点关系,注释掉padding就没有这个问题。(我看了一下setPadding源码,发现它会重绘整个view)很明显,setVisiblity和重绘有关联,需要看源码
提莫队长
2020-06-02
1.1K0
jdk1.8中ConcurrentHashMap的实现原理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fjse51/article/details/55260493
提莫队长
2019-06-11
3K0
ExtJS中的全局变量的保存和使用
前阵子研究ExtJS,对于如何在Sencha Architect软件中使用全局变量伤透了脑筋。现在我一共发现了两种:
提莫队长
2019-03-01
2.3K0
Android:CoolWeather天气查看器
但是由于网络地址的问题一直加载不出来,所以也没法通过安装查看。不过从这个软件还是可以学到很多东西。
提莫队长
2019-03-01
1.1K0
Oracle数据库易遗漏的知识点(二)
我们区分in和exists主要是驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系
提莫队长
2019-03-01
4480
Android:网络编程及Internet应用
HttpURLConnection urlConn =(HttpURLConnection)url.openConnection();
提莫队长
2019-03-01
1K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档