- 博客(19)
- 收藏
- 关注
原创 java锁分类的介绍
一.锁的分类锁分的分类是根据不同应用场景被人们命名成了不同的场所,个人认为深入理解每一种锁可以去研究每个锁对应的典型案例的源码可以更好地理解每个锁的含义以及优缺点乐观锁/悲观锁独享锁/共享锁互斥锁/读写锁可重入锁公平锁/非公平锁分段锁偏向锁/轻量级锁/重量级锁自旋锁参考美团相关的锁文章:https://tech.meituan.com/2018/11/15/java-lock.html一般成对出现的是有对比的锁,一般是反义,也方便了记忆。二..
2020-11-19 18:08:12
140
1
原创 SharedPreferences源码及使用优缺点分析
SharedPreferences是我们在开发中非常常用的,但是应该有很多小伙伴没有去了解过SharedPreferences的实现原理,以及SharedPreferences现在逐渐被谷歌淘汰了,这是为什么呢,让我们一起来研究一下。1.SharedPreferences的使用 SharedPreferences sp = context.getSharedPreferences("test", Context.MODE_PRIVATE); SharedPrefere
2020-11-19 17:42:52
471
转载 ScrollView为什么会自动滚动原理分析,还有阻止自动滑动的解决方案
引言,有一天我在调试一个界面,xml布局里面包含Scroll View,里面嵌套了recyclerView的时候,界面一进去,就自动滚动到了recyclerView的那部分,百思不得其解,上网查了好多资料,大部分只是提到了解决的办法,但是对于为什么会这样,都没有一个很好的解释,本着对技术的负责的态度,花费了一点时间将前后理顺了下1.首先在包含ScrollView的xml布局中,我们在一加载进来,ScrollView就自动滚动到获取焦点的子view的位置,那我们就需要看下我们activity的onCrea
2020-08-25 16:35:44
933
原创 记一次gradle 自动化切换环境task研究过程
一.说明项目中使用了第三方框架以及对应后台不懂的接口环境,导致在不同的编译环境时要去手动替换很多配置文件,为了减少打包时间,决定通过gradle去替换配置环境。二.Gradle Tasktask顾名思义是一个任务,可以自定义自己想做的任务。1. 创建task的方式(1).使用task 后带任务名称 加上执行闭包{}task t1{ println 't1'}(2).任务名称后加上圆括号task t2() { println 't2'}(3).在括号
2020-07-07 19:06:06
538
原创 JAVA GC解析
一.GC作用范围java中内存使用时要不断的清理,以避免内存溢出,内存垃圾的清理我就叫做java的GC,即指垃圾收集并清理内存。说到java虚拟机不得不先说一下java虚拟机的分区,来指出GC时会涉及到那些分区。java虚拟机分区图如下(盗了一张图,嘻嘻):由上图可以看出java虚拟机中方法区和堆事线程间共享,其他分区是线程私有的。方法区中存放的是存储已被虚拟机...
2020-01-13 11:08:52
191
原创 抽象工厂模式解析
一.概述1.抽象工厂模式是对简单工厂模式的一个变种2.简单工厂模式是在fatory类中,通过switch case去判断不同的enum类型,去创建不同的实例,在生产的产品越来越多的时候,工厂类中的判断会越来越多,代码维度也会越来越多3.抽象工厂模式,在简单工厂模式基础上将工厂分类抽象化,并且利用了反射的机制,在enum类中将类保存,在工厂实现时通过反射即可生成对应的类,减少了判断逻辑,...
2019-12-16 10:45:52
168
原创 HTML基础
一.固定格式<!DOCTYPE html>//当前html版本,向下兼容<html lang="en">//最外层主体标签 <head>//头部标签 <meta charset="UTF-8">//字符集格式UTF-8兼容所有格式 <title>title</title>//网页标题 ...
2019-09-11 14:59:51
358
原创 ARouter基本使用
一.介绍ARouter可以通过url进行索引跳转,比系统原生的跳转(需要依赖类或AndroidManifest)更灵活 可以解耦,便与团队协作开发,常用于组件化中二.配置1.组件化BaseModule的build.gradle中添加implementation 'com.alibaba:arouter-api:1.3.0'2.在跳转的目标组件的build.gradle中,增加...
2019-07-19 17:30:16
1299
原创 EventBus3.0基本使用
一.概述EventBus是一个用于Android和Java的开源库,使用发布者/订阅者模式实现松散耦合。EventBus使中央通信仅用几行代码就能解耦类——简化代码、消除依赖和加速应用程序开发。二.使用1.依赖compile 'org.greenrobot:eventbus:3.0.0'2.代码中基本使用(1)首先先定义一个事件,用于事件的发布和消息传递publ...
2019-05-29 14:46:04
332
原创 SimpleXml使用解析
最近用SimpleXml解析了文件,mark一下常用的几个属性一.引用项目里有使用retrofit,retrofit包含了simplexml,所以引用其中的simplexml:compile('com.squareup.retrofit2:converter-simplexml:2.1.0')二.注解使用说明1.@Root(name,strict)@Root是外层的标签...
2019-01-23 15:36:45
1437
1
原创 Android消息机制
概述Android消息在上层的接口是Handler,Handler所使用的相关的Looper、MessageQueue、ThreadLocal等类。我们经常使用的场景是我们需要做一些像I/O操作、联网等等耗时操作时需要更新Ui线程时需要使用Handler去发消息给UI线程去更新UI。 那Handler、Looper、MessageQueue、ThreadLocal这些类之间关系是怎样的呢?又是...
2018-11-07 16:19:55
172
转载 Application的应用和生命周期
一、Application的用途1、Application是什么?Application和Activity,Service一样,是Android框架的一个系统组件,当Android程序启动时系统会创建一Application 对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己的Application,也很简单。创建...
2018-10-24 14:37:43
589
原创 java-object类介绍
java-object类介绍java中object类是所有类的基类,它位于java.lang包中。Object类没有定义属性,12个方法,如下:java.lang Object是每一个类的根类,每个类都直接或间接的继承Object类。 子类的构造方法默认访问的是父类的无参构造方法public final Class getClass()返回Object运行时类。也就是说是字节码...
2018-10-12 17:28:18
340
原创 RecyclerView采坑记录
1.在调用Adapter的notifyDataSetChanged后,看下面代码的注释:/** * Notify any registered observers that the data set has changed. * * <p>There are two different classes of data change events, item changes ...
2018-09-12 20:08:28
707
转载 基于Android 6.0的源码剖析, 分析android广播的发送与接收流程
基于Android 6.0的源码剖析, 分析android广播的发送与接收流程。framework/base/services/core/java/com/android/server/ - ActivityManagerService.java - BroadcastQueue.java - BroadcastFilter.java - BroadcastRecord....
2018-09-11 16:10:26
701
原创 观察者模式的使用及分析
1.观察者模式介绍Subject : 抽象被观察者(Observeable),吧所有观察者对象的医用保存在一个集合里,每个主题都可以有任意数量的观察者,抽象被观察者提供一个接口,可以增加和删除观察者对象。 ConcreteSubject: 具体的被观察者,将有关状态存入具体的观察者对象,在具体的被观察者内部状态发生变化时,给所有注册的观察者发送通知。 Observer : 抽象观察者,...
2018-09-07 10:54:21
735
原创 单例模式几种使用方法
单例模式特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。1.饿汉式单例public class HungrySingleton { public static HungrySingleton instance = new HungrySingleton(); /** *默认创建一个私有构造类 *...
2018-09-07 10:51:03
1603
转载 Activity的基本理解
一.生命周期 上面是经典的Activity的生命周期图 标准启动模式下的生命周期十一上图中的7个:onCreate onDestroyonStart onRestart onStoponResume onPause生命周期都是成对对应的activity最基本的生命周期:onCreate -> onStart -> onResume -> onPause...
2018-09-07 10:36:23
1660
原创 反射使用(个人浅析)
一.反射定义:反射机制是在运行状态中,对于任意一个类都可以通过反射调用其中的方法以及属性等。类的信息是保存在Class对象中的,而Class对象是ClassLoader动态加载的,当ClassLoader撞在了类以后,动态获取Class类的信息以及动态操作Class对象的方法和属性成为java的反射机制。二.反射的基本使用如下面例子所示注:注意看代码中的注释,标注了使用方法以及不同方法...
2018-09-07 10:29:07
111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人