首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
三好码农
掘友等级
Android攻城狮
怕什么真理无穷,进一寸有一寸的欢喜
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
230
文章 230
沸点 0
赞
230
返回
|
搜索文章
最新
热门
深入理解线程池原理篇
开始之前,需要明确几个概念,方便后面理解线程池的运行原理。 核心线程(corePool):线程池最终执行任务的角色肯定还是线程,同时我们也会限制线程的数量,所以我们可以这样理解核心线程,有新任务提交时,首先检查核心线程数,如果核心线程都在工作,而且数量也已经达到最大核心线程数,…
彻底理解Serializable和Parcelable
先抛出几个问题,带着问题我们一起探索。 em, 可以先思考一下这几个问题。 这里有二个关键字,存储和传输,存储的场景比如对象的持久化,传输的场景比如将对象通过网络传输,然后在需要使用的时候,反序列化,重新创建对象。 要弄清楚这个问题,只能去JDK源码里面找答案了(这里基于JDK…
写给自己的--Java反射总结
当然,反射还有很多其他应用,它们的根本目的就是为了语言的动态性。 这个对象头中包含的数据很多,包括哈希吗,GC分代年龄,锁状态标志,线程持有的锁等,这些这里不展开说了,大家想了解可以自行查阅相关资料,除了这些还有一个很重要的指针-类型指针(指向类元数据的指针),刚好解释了我上面…
Java动态代理-实战
最最最主要的原因就是,在不改变目标对象方法的情况下对方法进行增强,比如,我们希望对方法的调用增加日志记录,或者对方法的调用进行拦截,等等... 现在需要在say方法被调用的时候,记录方法被调用的时间,最直接的就是修改Man的say方法,但是这样做的弊端就是如果有很多实现了IPe…
学着造轮子-RxLifeCycle
这样做确实可以,但是麻烦,而且不容易扩展,如果有多个请求,就要写多行dispose的代码,代码维护起来很痛苦,显然这个不是我们想要的。 我们的目标很明确,就是不需要Activity或者Fragment宿主持有Disposable对象去执行dispose方法,我们还是从RxJav…
快捷安装Flutter姿势,了解一下?
到 Flutter官网 直接下载SDK压缩包,找准你需要的平台下载并解压。为什么不用git 命令到 Flutter Github clone下来?因为你基本不可能能clone下来,国内的网速你懂得。。。 到这里可以尝试在控制台 输入 flutter,如果上面的配置没有问题,控制…
RxJava 源码解读之 ConcatMap
之前分析了FlatMap发射数据无序的原因,但是没有实际用代码验证过,这里我们在分析ConcatMap源码之前,我们先运行测试代码,有个直观的感受。 看到结果,可能会有疑问,这里不是有序的吗,那不跟我们上面的结论矛盾吗?其实不矛盾,这里之所以有序是因为我们这里的数据转换只是简单…
RxJava2源码解读之 Map、FlatMap
代码也很简单,红框标识的就是 mapper 转换函数被调用的地方,得到转换后的对象v,传递给被装饰的Observer 的onNext方法,到这里,一次数据的map转换就结束了。源码的实现还是很简单的,在我们了解了源码的实现后,思路会更清晰,写代码时也会更有把握。 现在我们来解答…
浅析 RxJava 2.x 线程调度
从我们日常使用的代码入手,可能能更容易理解一点。 为了说明原理,排除干扰,这里用了最简单的逻辑。产生一个字符串“Hello rxJava”, 然后在监听中打印log,subscribeOn(Schedulers.io()) 设置数据在io线程产生,observeOn(Andro…
StringBuilder 你不知道的骚操作
在String你还需要知道这些细节中提到过,由于String被设计成immutable,所以才有了StringBuilder和StringBuffer这2个类来帮助我们操作字符串,StringBuilder线程不安全,StringBuffer线程安全,在我们大多数日常使用场景,…
下一页
个人成就
文章被点赞
662
文章被阅读
87,421
掘力值
2,766
关注了
117
关注者
2,129
收藏集
38
关注标签
16
加入于
2017-11-13