注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

环信FAQ

环信FAQ

集成常见问题及答案
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
0
评论

HashMap原理底层剖析 Java

王二蛋和他的张大花 发表了文章 • 856 次浏览 • 2021-05-07 10:41 • 来自相关话题

注意以下文章可能有描述和理解上的错误,如果出现错误请到评论区指出,我会第一时间修改问题。也希望文章能解决你的疑惑。 HashMap结构图 HashMap底层数据结构:Entry数组+链表+红黑树(JDK1.8版本) Entry+链表(JDK1.7版本)... ...查看全部
0
评论

自学编程的人,90%以上都会掉进这些坑,避开这些误区能提高N倍学习效率 程序设计

王二蛋和他的张大花 发表了文章 • 829 次浏览 • 2021-05-07 10:39 • 来自相关话题

前言 几乎每一个程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人。 有的人自学很快,几乎一个多月就能掌握一门技术,而有的人苦苦坚持,最后还是半... ...查看全部
0
评论

Tomcat源码学习第4篇-Servlet请求分析 tomcat Java

王二蛋和他的张大花 发表了文章 • 802 次浏览 • 2021-05-07 10:37 • 来自相关话题

前段时间家里有事忙,停更了好长一段时间,这里跟等待更新的小伙伴们说一声抱歉,没能提前说明一下,让小伙伴们等了这么久,真的不好意思! 前面说完了Tomcat的初始化和启动步骤,那么接下来就要进入重头戏了!在本篇文章中,我会跟前面一样,通过图文的方式来带着小... ...查看全部
0
评论

7大程序设计原则 程序设计

王二蛋和他的张大花 发表了文章 • 871 次浏览 • 2021-05-07 10:35 • 来自相关话题

编程的工作既是技术活,也是体力活,而编写优秀的软件,更是一件比较难的事情。 初级程序员只希望代码不出错,顶级程序员却把写代码当成艺术,当年雷军以过人的能力成为求伯君的左膀右臂,其早年的代码被说成“像诗一样优美”。 很多大牛,在着手写代码时并不是直接上手... ...查看全部
0
评论

Android界面左右滑动切换 Android

王二蛋和他的张大花 发表了文章 • 1321 次浏览 • 2021-05-07 10:33 • 来自相关话题

Android 界面左右滑动切换 1.界面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://... ...查看全部
0
评论

乐观锁VS悲观锁 Android

王二蛋和他的张大花 发表了文章 • 878 次浏览 • 2021-05-07 10:12 • 来自相关话题

乐观锁 VS 悲观锁 悲观锁:总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加锁(读锁、写锁、行锁等),当其他线程想要访问数据时,都需要阻塞挂起。 乐观锁:总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此... ...查看全部
1
评论

面试官:说说什么是Java内存模型(JMM)? Android

王二蛋和他的张大花 发表了文章 • 1019 次浏览 • 2021-05-07 10:10 • 来自相关话题

1. 为什么要有内存模型? 1.1. 硬件内存架构 1.2. 缓存一致性问题 1.3. 处理器优化和指令重排序 2. 并发编程的问题 3. Java 内存模型 3.1. Java 运行时内存区域与硬件内存的关... ...查看全部
0
评论

TIOBE5月编程语言榜单:Python超越Java重回第二,Rust崛起 Android

王二蛋和他的张大花 发表了文章 • 964 次浏览 • 2021-05-07 10:06 • 来自相关话题

作者 | 苏宓 出品 | CSDN(ID:CSDNnews) TIOBE 官方最新发布了 5 月的编程语言榜单,不妨一起来看一下本月榜单中又有哪些最新的变化呢? Python 重回第二 和 4 月相比,本月榜单的 TOP 10 ... ...查看全部
0
评论

Android应用架构之MVVM模式 Android

王二蛋和他的张大花 发表了文章 • 952 次浏览 • 2021-05-07 10:04 • 来自相关话题

前言 早期的Android应用开发中,Activity/Fragment承担了过多的职责,它们不仅负责了应用界面的显示,而且负责了业务逻辑的处理。这样一来,Activity/Fragment很容易就变得臃肿、复杂,造成应用难以测试、维护和扩展。随着Andro... ...查看全部
0
评论

Android仿微信红包动画平移动画 Android

王二蛋和他的张大花 发表了文章 • 1088 次浏览 • 2021-05-07 10:00 • 来自相关话题

Android 仿微信红包动画 平移动画先看效果图:简单思路:先找好素材,一张红包封面和 “开”这个图片,先用ps将红包图片P成两部分,两个椭圆的样子。“开”要有不同角度的,因为要由帧动画完成。开完之后背景设个随机数。红包封面可以用ps软件p出来,用椭圆选框工... ...查看全部
0
评论

总是听到有人说AndroidX,到底什么是AndroidX? Android

渡边菜狗 发表了文章 • 883 次浏览 • 2021-05-06 17:38 • 来自相关话题

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。 Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出... ...查看全部
0
评论

Android kotlin+协程+Room数据库的简单使用 Android

渡边菜狗 发表了文章 • 1364 次浏览 • 2021-05-06 17:35 • 来自相关话题

Room Room是Google为了简化旧版的SQLite操作专门提供的 1.拥有了SQLite的所有操作功能 2.使用简单(类似于Retrofit),通过注解的方式实现相关功能。编译时自动生成实现类impl 3.LiveData,LifeCycle,Pag... ...查看全部
0
评论

Android开发基础之控件RadioButton、RadioGroup Android

王二蛋和他的张大花 发表了文章 • 1114 次浏览 • 2021-05-06 16:24 • 来自相关话题

目录 一、基础属性 RadioButton RadioGroup 二、自定义样式 三、监听事件       &nb... ...查看全部
0
评论

[干货]手把手教你写一个安卓app Android

王二蛋和他的张大花 发表了文章 • 1120 次浏览 • 2021-05-06 16:20 • 来自相关话题

摘要:最近有很多小伙伴在后台留言:Android Studio。我想大家是想写一个手机app,前面已经分享了在QT上如何写一个安卓蓝牙app,虽然qt可以做app,但是比起Android Studio还是差很多。这里介绍一种快速入门的方法来制作一款app,就算... ...查看全部
0
评论

Android开发杂记--打包release(发行版)App,并将其体积压缩至最小 Android

王二蛋和他的张大花 发表了文章 • 1346 次浏览 • 2021-05-06 16:17 • 来自相关话题

#Android开发杂记--打包 release(发行版)App,并将其体积压缩至最小 引言 生成签名文件 配置build.gradle文件 执行 Release 打包脚本 引言 &... ...查看全部
0
评论

RecyclerView 动画原理 | 如何存储并应用动画属性值?(2) Android RecyclerView

柳天明 发表了文章 • 1025 次浏览 • 2021-05-06 15:52 • 来自相关话题

RecyclerView 动画原理 | 如何存储并应用动画属性值?(1)存预布局动画属性值 InfoRecord中除了postInfo还有一个preInfo,分别表示后布局和预布局表项的动画信息。想必还有一个addToPreLayout()与addToPost... ...查看全部
0
评论

RecyclerView 动画原理 | 如何存储并应用动画属性值?(1) Android RecyclerView

柳天明 发表了文章 • 1044 次浏览 • 2021-05-06 15:51 • 来自相关话题

RecyclerView 表项动画的属性值是怎么获取的,又存储在哪里?这一篇继续通过 走查源码 的方式解答这个疑问。 通过上两篇的分析得知,为了做动画 RecyclerView 会布局两次:预布局+后布局,依次将动画前与动画后的表项填充到列表。表项被填充后,就... ...查看全部
0
评论

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(2) Android RecyclerView

柳天明 发表了文章 • 1271 次浏览 • 2021-05-06 15:49 • 来自相关话题

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(1)4. mCachedViews 中缓存的表项被删除 表项移出屏幕后,立刻被回收到mCachedViews结构中。若恰巧该表项又被删除了,则表项对应的 ViewHolder 从mCach... ...查看全部
0
评论

RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?(1) Android RecyclerView

柳天明 发表了文章 • 1010 次浏览 • 2021-05-06 15:48 • 来自相关话题

缓存是 RecyclerView 时间性能优越的重要原因。缓存池是所有缓存中速度最慢的,其中的ViewHodler是脏的,得重新执行onBindViewHolder()。这一篇从源码出发,探究哪些情况下“表项会被回收到缓存池”。 缓存池结构 在分析不同的回收场... ...查看全部
0
评论

RecyclerView 动画原理 | pre-layout,post-layout 与 scrap 缓存的关系 Android RecyclerView

柳天明 发表了文章 • 873 次浏览 • 2021-05-06 15:46 • 来自相关话题

RecyclerView 缓存之一的 scrap 结构中缓存的是什么?为什么需要 scrap 缓存?pre-layout 及 post-layout 过程中 scrap 缓存内容会如何变化?这一篇继续通过 走查源码 + 断点调试的方式解答这些疑问。引子 这一篇... ...查看全部
0
评论

RecyclerView缓存机制 | scrap view 的生命周期 Android RecyclerView

柳天明 发表了文章 • 1277 次浏览 • 2021-05-06 15:45 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制。第一篇中遗留的一个问题还没有解决:复用表项时优先级最高的scrap view是用来干嘛的?这篇文章试着通过阅读源码来解答这个问题。scrap view对应的存储结构是final ArrayLis... ...查看全部
0
评论

RecyclerView 缓存机制 | 回收到哪去? Android RecyclerView

柳天明 发表了文章 • 1013 次浏览 • 2021-05-06 15:45 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,上两篇已经分析了 RecyclerView 缓存机制会回收哪些表项,及如何从缓存中获取表项。本篇在此基础上继续走读源码,分析“回收的表项是以怎样的形式存放”。回收入口 上一篇以列表滑动事件为起点... ...查看全部
0
评论

RecyclerView 缓存机制 | 回收些什么? RecyclerView Android

柳天明 发表了文章 • 915 次浏览 • 2021-05-06 15:44 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,上一篇分析了“如何从缓存中复用表项?”,这一篇继续以走读源码的方式探究一下“哪些表项会被回收?”回收场景 在众多回收场景中最显而易见的就是“滚动列表时移出屏幕的表项被回收”。滚动是由Motion... ...查看全部
0
评论

RecyclerView 缓存机制 | 如何复用表项?(2) RecyclerView Android

柳天明 发表了文章 • 809 次浏览 • 2021-05-06 15:39 • 来自相关话题

RecyclerView 缓存机制 | 如何复用表项?(1)第四次尝试 ViewHolder tryGetViewHolderForPositionByDeadline(int position, boolean dryRun,... ...查看全部
0
评论

RecyclerView 缓存机制 | 如何复用表项?(1) RecyclerView Android

柳天明 发表了文章 • 1058 次浏览 • 2021-05-06 15:38 • 来自相关话题

RecyclerView 内存性能优越,这得益于它独特的缓存机制,这一篇以走读源码的方式探究 RecyclerView 的缓存机制。引子 如果列表中每个移出屏幕的表项都直接销毁,移入时重新创建,很不经济。所以RecyclerView引入了缓存机制。 回收是为... ...查看全部
0
评论

源码篇:ThreadLocal的奇思妙想(万字图文)(二) Android

王二蛋和他的张大花 发表了文章 • 1032 次浏览 • 2021-05-06 15:38 • 来自相关话题

源码篇:ThreadLocal的奇思妙想(万字图文)(一)取index值上面代码中,用取得的hash值,与ThreadLocalMap实例中数组长度减一的与操作,计算出了index值这个很重要的,因为大于长度的高位hash值是不需要的此处会将传入的Thread... ...查看全部
0
评论

源码篇:ThreadLocal的奇思妙想(万字图文)(一) Android

王二蛋和他的张大花 发表了文章 • 995 次浏览 • 2021-05-06 15:35 • 来自相关话题

前言 ThreadLocal的文章在网上也有不少,但是看了一些后,理解起来总感觉有绕,而且看了ThreadLocal的源码,无论是线程隔离、类环形数组、弱引用结构等等,实在是太有意思了!我必须也要让大家全面感受下其中所蕴含的那些奇思妙想! 所以这里我想写一篇... ...查看全部
0
评论

View嵌套太深会卡?来用JetpackCompose,随便套——IntrinsicMeasurement Android

王二蛋和他的张大花 发表了文章 • 1183 次浏览 • 2021-05-06 15:28 • 来自相关话题

视频先行 如果你方便看视频,直接去 哔哩哔哩 或者 YouTube 看视频就好,下面的文章就不用看了。如果你不方便看视频,下面是视频内容的脚本整理稿。 开场 做 Android 开发的都知道一个规矩:布局文件的界面层级要尽量地少,越少越好,因为层级的增加... ...查看全部
0
评论

快速上手Flutter空安全 Android

王二蛋和他的张大花 发表了文章 • 1369 次浏览 • 2021-05-06 15:26 • 来自相关话题

学习最忌盲目,无计划,零碎的知识点无法串成系统。学到哪,忘到哪,面试想不起来。这里我整理了Flutter面试中最常问以及Flutter framework中最核心的几块知识,欢迎关注,共同进步。 欢迎搜索公众号:进击的Flutter或者runflutter 里... ...查看全部
0
评论

RecyclerView的滚动是怎么实现的?解锁阅读源码新姿势 Android

王二蛋和他的张大花 发表了文章 • 1007 次浏览 • 2021-05-06 15:23 • 来自相关话题

RecyclerView 是一个展示列表的控件,其中的子控件可以被滚动。这是怎么实现的?以走查源码的方式一探究竟。 切入点:滚动事件 阅读源码时,如何在浩瀚的源码中选择合适的切入点很重要,选好了能少走弯路。 对于滚动这个场景,最显而易见的切入点是触摸事件... ...查看全部
0
评论

【Jetpack篇】协程+Retrofit网络请求状态封装实战 Android

王二蛋和他的张大花 发表了文章 • 1335 次浏览 • 2021-05-06 13:58 • 来自相关话题

前言 在App中,对于网络请求状态一般性的就分为加载中、请求错误、请求成功、请求成功但数据为null。为了用户体验,不同的状态需要对用户展示不同的界面,例如网络异常的提醒,点击重新请求等。 之前项目一直都是以Retrofit+RxJava+OkHttp为网... ...查看全部
0
评论

LiveData 单元测试 Android

柳天明 发表了文章 • 1294 次浏览 • 2021-04-30 13:46 • 来自相关话题

文参考自 作者:HaroldGao链接:https://juejin.cn/post/6956588138487775240来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
0
评论

CompletableFuture使用与解读 Android

柳天明 发表了文章 • 1573 次浏览 • 2021-04-30 13:45 • 来自相关话题

1 前言 jdk8后给出的类,android需要N版本之后才能使用;提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,也提供了转换和组合 CompletableFuture 的方法; 本文会从以下方面来介绍 ... ...查看全部
0
评论

Android系统开发-选择并启动默认Launcher Android

柳天明 发表了文章 • 1037 次浏览 • 2021-04-29 14:23 • 来自相关话题

如果在Android设备上又安装了一个Launcher应用,当我们返回主页的时候,Android就会弹出一个弹窗,要用户 选择要启动的Launcher应用,如下图所示: 这个是普通Android设备的正常流程,现在我们的需求是不再显示这个提示窗,在设置中增加... ...查看全部
0
评论

ART虚拟机 | 锁 Android

柳天明 发表了文章 • 1623 次浏览 • 2021-04-29 14:23 • 来自相关话题

本文基于Android 11(R) Java中对临界区的锁定通常用synchronize代码块完成,因此标题中的“锁”实际上是对synchronize关键字的剖析。Synchronize代码块使用时必须传入一个对象,这个对象可以是this对象,可以是类对象(e... ...查看全部
0
评论

Android-Jetpack-Hilt 组件 包爽攻略 Android

柳天明 发表了文章 • 1343 次浏览 • 2021-04-29 14:21 • 来自相关话题

Hilt 是啥? Hilt 就是依赖Dagger2 而来的 一个 专属android 端的 依赖注入框架。Dagger2 是啥? Dagger是以前 square 做的 依赖注入框架,但是大量使用了反射,谷歌觉得这东西不错,拿来改了一下,使用编译期注解 大幅度... ...查看全部
0
评论

Kotlin实战---使用Room封装本地数据层 Android

王二蛋和他的张大花 发表了文章 • 1049 次浏览 • 2021-04-29 13:23 • 来自相关话题

没有Kotlin基础的小伙伴先进这里→ Koltin基础文章 Kotlin网络模型的实现→ Kotlin网络模型的实现 kotlin实战---MVP模式实现登录,实现Base层封装→ kotlin实战---MVP模式实现登录,实现Base层封装 1、为什么使用... ...查看全部
0
评论

引入Jetpack架构后,你的App会发生哪些变化? Android

王二蛋和他的张大花 发表了文章 • 1225 次浏览 • 2021-04-29 13:14 • 来自相关话题

前言 上篇文章我给大家分享了我对Android架构的理解,从思想层面去讲述架构的演进过程。很多小伙伴读完后拍手叫好,表示还想听我讲一下对Jetpack 架构的看法,本着帮人帮到底的精神,今天我将再次动笔 尽量从本质上讲清楚Jetpack 架构存在的意义,以及解... ...查看全部
0
评论

Android系统开发-选择并启动默认Launcher Android

王二蛋和他的张大花 发表了文章 • 1599 次浏览 • 2021-04-29 13:12 • 来自相关话题

如果在Android设备上又安装了一个Launcher应用,当我们返回主页的时候,Android就会弹出一个弹窗,要用户 选择要启动的Launcher应用,如下图所示: 这个是普通Android设备的正常流程,现在我们的需求是不再显示这个提示窗,在设置中增加... ...查看全部
0
评论

在 Kotlin 序列化中使用 DataStore Android

王二蛋和他的张大花 发表了文章 • 1101 次浏览 • 2021-04-29 13:11 • 来自相关话题

我们之前已经 数据类 非常适合与 DataStore 结合使用,这是因为它们能够与 Kotlin 序列化无缝协作。DataStore 会依赖数据类自动生成的 equals 和 hashCode。数据类也会生成便于调试和更新数据的 toString 和 copy... ...查看全部
0
评论

ART虚拟机 | 锁 Android

王二蛋和他的张大花 发表了文章 • 1205 次浏览 • 2021-04-29 13:10 • 来自相关话题

本文基于Android 11(R) Java中对临界区的锁定通常用synchronize代码块完成,因此标题中的“锁”实际上是对synchronize关键字的剖析。Synchronize代码块使用时必须传入一个对象,这个对象可以是this对象,可以是类对象(e... ...查看全部
0
评论

线程池基本参数解析 Java Android

王二蛋和他的张大花 发表了文章 • 1100 次浏览 • 2021-04-28 10:44 • 来自相关话题

一、线程池构造方法参数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, l... ...查看全部
1
评论

线程池系列分析-线程池的拒绝策略 Java Android

王二蛋和他的张大花 发表了文章 • 1189 次浏览 • 2021-04-28 10:43 • 来自相关话题

前言 线程池系列的第二篇文章。拒绝策略的说明。技术人嘛。还是要经常归纳总结的 什么是拒绝策略 首先要明白,为什么线程池要有一个拒绝策略。也就是他出现的背景是什么。 了解过线程池的小伙伴应该都知道。线程池的构造参数中就有一个拒绝策略 public ThreadP... ...查看全部
0
评论

【Java】ArrayList实现原理浅析 Java Android

王二蛋和他的张大花 发表了文章 • 1026 次浏览 • 2021-04-28 10:41 • 来自相关话题

为什么要写这篇文章,还真不是我好奇,就是因为团队技术分享了,我也要搞一个分享的内容,我满脸写着期待(绝望)和开心(难过)。 一.ArrayList的底层数据结构 ArrayList底层的数据结构是数组,它是一个Object元素类型的数组,所有操作操作底层都是基... ...查看全部
0
评论

java开发:异常你了解多少 Java Android

王二蛋和他的张大花 发表了文章 • 1007 次浏览 • 2021-04-28 10:37 • 来自相关话题

一、异常体系1、error/exception异常是 Throwable 这个父类实现的,下面有两大子类,Error与ExceptionError表示错误,exception表示异常Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代... ...查看全部
0
评论

Android修炼系列(九),你的签名校验形同虚设.. Android

维生素C 发表了文章 • 1838 次浏览 • 2021-04-28 10:18 • 来自相关话题

声明:本文所述均为技术讨论,切勿用于违法行为。 我们知道签名是Android软件的一种有效身份标识,因为签名所使用的秘钥文件是我们所独有的,而当我们app被重新打包后,app的签名信息势必会被篡改,所有我们就可以根据软件运行时签名与发布时签名的相同与否来决定... ...查看全部
0
评论

Android修炼系列(八),你真的会写注释吗? Android

维生素C 发表了文章 • 1115 次浏览 • 2021-04-28 10:17 • 来自相关话题

本节主要介绍下我们常用的 javadoc tag ,虽然内容比较简单,但若正确使用,真的能使我们的代码高大上不少。不仅如此,只要我们按照Javadoc 注释规则,在编码完成后,Javadoc 也能够帮我们从源代码中生成相应的 Html 格式的 API 开发文档... ...查看全部
0
评论

Android修炼系列(七),方法调用,背后的秘密 Android

维生素C 发表了文章 • 937 次浏览 • 2021-04-28 10:16 • 来自相关话题

在前篇已经讲解了类是如何被加载的? 和 对象是如何被分配和回收的?,本节主要看下,方法又是如何被调用和执行的? 栈帧 栈帧是虚拟机 栈内存 中的元素,是支持虚拟机进行方法调用和方法执行的数据结构。其内存储了方法的局部变量表、操作数栈、动态连接、方法返回地址和一... ...查看全部
0
评论

Android修炼系列(六),时间与空间复杂度的概念 Android

维生素C 发表了文章 • 1076 次浏览 • 2021-04-28 10:16 • 来自相关话题

本来是想将时间复杂度和空间复杂度的内容,放到后面的算法系列,但后想想,其实复杂度的审视应该是贯彻于整个开发过程之中的,应该是属于更大概念的“代码规范”的一部分,而不应局限在某个算法上。当然本文仅是以能用能理解为主,并不会深入到推倒公式的那种程度。分析当一个问题... ...查看全部
0
评论

移动架构 (八) 人人都能看得懂的动态化加载插件技术模型实现 架构 Android

王二蛋和他的张大花 发表了文章 • 1068 次浏览 • 2021-04-27 13:41 • 来自相关话题

移动架构 (一) 架构第一步,学会画各种 UML 图移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架移动架构 (三) AMS 源码分析移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻... ...查看全部