自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Leakcanary检测泄漏流程原理分析

内存泄漏指的是程序在向系统申请分配内存空间,使用完毕后未释放,结果导致一直占据该内存单元,程序无法再使用该内存单元

2021-12-30 20:16:24 1025

原创 java.lang.IllegalArgumentException: No view found for id 崩溃总结

java.lang.IllegalArgumentException: No view found for id

2022-03-08 15:28:53 8154 4

原创 Kotlin contract 用法及原理

contract(契约)是一种 Kotlin 面向编译器约定的一种规则,它帮助编译器更加智能地识别某些需要特定的代码条件,为代码创建更加友好的上下文关联环境

2022-01-24 22:44:36 3970

原创 Kotlin sealed class 的使用

sealed class用来表示受限的类继承结构:当一个值为有限几种的类型、而不能有任何其他类型时。在某种意义上,他们是枚举类的扩展:枚举类型的值集合也是受限的,但每个枚举常量只存在一个实例,而密封类的一个子类可以有可包含状态的多个实例

2022-01-14 18:56:55 1986

原创 Android Handler 源码以及原理分析

Handler 源码分析Handler 简介Handler 是 Android 重要的通信工具,一个 Handler 关联有且仅有一个 Thread 、Looper 和 MessageQueue,它依赖于 Looper 和 MessageQueue 分发 Message 和 Runnable 对象在 Handler 绑定的线程中执行一些操作。创建 Handler 时默认绑定当前所在的 Thread,也可以通过手动绑定 Looper 对象设置 Handler 运行所在的 Thread。Handler 的消

2020-10-04 15:36:47 168

原创 Activity findViewById 原理分析

  在日常Android开发当中,实例化View的对象都通过findViewById方法传入对应的View的Id得到View的实例。但是在View较为庞大的界面当中,则会出现相当一部分的代码块去做View初始化,显得代码比较“冗余”(对于这个冗余我不太认可,毕竟肥而不腻的写法无伤大雅,也方便代码阅读)。对此,有开源的框架ButterKnife解决了这个问题,它通过APT,在编译代码时动态生成...

2018-05-22 23:23:08 1379

原创 HashMap实现原理分析

HashMap 介绍  HashMap在我们的日常开发中非常常见,其本质就是基于数组和链表组合实现。它提供了很方便的key-value的存取接口,通过对key进行Hash计算散列存储位置和快速查找,HashMap允许key和value为null。HashMap并不是线程安全的,如果存在多线程存取操作容易出现注明的ConcurrentModificationException异常。其存储方式可以...

2018-04-06 18:16:46 314

原创 java实现合并排序算法

前言   合并排序是分治法当中一个经典的排序算法,它通过将规模为n的原始问题分解为n/2,然后得到各自的解后,在合并两个子问题的解,最终得到原始问题的解。合并排序属于稳定排序,在排序过程中,如果遇到Ai==Aj,假设i < j,在完成排序后不会影响Ai和Aj的相对位置,即Ai仍然在Aj前面。   合并排序的时间复杂度是O(nlogn),但是在排序当中需要递归拆分元问题,空间复杂度是O(...

2018-04-06 17:43:39 8142

原创 Android ListView 动态设置ItemView高度为0隐藏Item

前言   在使用Adapter加载ItemView时应该使用:inflater.inflate(R.layout.my_layout, parent, false);  不然会导致ItemView的高度仅仅是wrap_content,除非在my_layout中再嵌套一层Layout并指定高度。   隐藏ItemView  设置某一项Item的高度主要是设置该ItemView的高度,我们可以在get

2016-08-28 18:41:26 4229 3

原创 Android 跨进程接口回调

简介同进程接口回调在开发中经常可以用的到。方法就是A实现一个interface,并且向B传入一个interface实例引用C,然后B在必要的时候调用C的方法,以此实现接口回调。其实是可以将interface的方法直接声明并实现在A中,并且通过向B直接传入A的对象引用也可以实现相同的效果,但是基于java多态和抽象的特性,通过传入一个interface的引用可以让调用者B并不用关心传入的具体是谁的引用

2016-08-14 15:02:04 4810

原创 用java实现欧几里得算法求两个数字的最大公约数

最大公约数最大公约数的定义是两个不全为0的非负整数m和n的最大公约数记为gcd(m , n),代表能够整除(即余数为0)的最大整数。欧几里得算法原理:1.如果n == 0,则m就是最大公约数2.如果n != 0,用m去除以n得到模k,将n赋值给m,将k赋值给n,直到n == 0实现代码如下import jav

2015-10-26 00:27:56 3611 2

原创 浅谈Java中的接口回调

接口Interface,我们都不陌生,Java中接口

2014-03-23 19:19:33 1274

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除