自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SharedPreferences源码解析

SharedPreferencesSharedPreference的具体实现与每个应用的上下文环境有关,每个应用有自己的单独的文件夹存放这些数据,对其他应用不可见。使用步骤:(1)得到SharePreference对象/*如果需要多个由名称标识的(SharedPreference)共享偏好的设置文件,第一个参数为文件名称,第二个参数用于指定操作模式,MODE_PRIVATE代表只有当前应用程序才能对此文件进行读写操作,目前其他模式已经被废除。*/SharedPreferences share

2021-08-04 17:06:49 313 1

原创 DataBinding的源码分析

简介前面的博客我已经说过了关于DataBinding的基本使用,这一章节主要介绍它的原理

2021-07-26 09:44:56 481 1

原创 EventBus源码分析

简介

2021-07-23 11:29:57 192 4

原创 LiveData的基本使用以及源码分析

LiveData存在的意义LiveData是jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生变化的时候通知给观察者,一般与ViewModel结合起来使用。LiveData的基本使用通常与ViewModel一起使用,一般情况下只需要声明的数据类型定义为MutableLiveData<>,通过setValue(),getValue(),以及postValue()对数据进行操作,setValue()用于给LiveData设置数据,但是只能在主线程中进行调用

2021-07-13 17:44:49 403

原创 Lifecycle的基本使用以及源码分析

Lifecycles存在的意义可以使得的一个非Activity类去感知Activity的生命周期,同时不需要在Activity中编写太多额外的逻辑Lifecycle的基本使用实现LifecycleObserver接口通过添加注解@OnLifeycleEvent(Lifecycle.Event.XXX)可以通过ON_CREATE、ON_START、ON_RESUME、ON_PAUSE、ON_STOP、ON_DESTROY、ON_ANY(可以匹配到Activity的任何生命周期回调)可以通过以下

2021-07-13 13:28:53 757

原创 ViewModel的使用以及源码分析

ViewModel存在意义使用ViewModel定义的数据可以在发生屏幕旋转的时候仍然保留数据:当手机发生横竖屏旋转的时候,Activity会被重建,同时 存放在Activity中的数据 也会丢失,viewModel的生命周期和Activity不同,他可以保证手机在发生屏幕旋转的时候不会被重新创建,只有当Activity退出的时候才会跟着Acyivity一起销毁。专门用于存放和界面相关的数据,只要界面可以看到的数据,都应该存放在ViewModel中,而不是Activity中ViewModel的生命周

2021-06-22 16:43:37 227

原创 LinkedList源码分析

文章目录概述节点、类成员变量构造函数增删改查概述LinkedList底层基于双向链表实现,具有插入删除快,查询修改慢的特点,通过对双向链表的操作,可以实现队列和栈的功能。节点、类成员变量private static class Node<E> { E item; //存放节点值 Node<E> next; //后继节点 Node<E> prev; //前驱节点 Node(Node<E&gt

2020-10-24 17:07:47 96

原创 HashMap源码分析(详细)

文章目录

2020-10-24 10:39:36 232

原创 JVM——对象的创建、内存布局、访问定位

文章目录前言一、pandas是什么?二、使用步骤2.读入数据总结前言一、pandas是什么?二、使用步骤2.读入数据总结

2020-10-20 13:00:54 150

原创 JVM——常见垃圾收集器详解

文章目录

2020-10-19 21:06:45 322 2

原创 JVM——垃圾回收

文章目录

2020-09-28 11:10:32 128

原创 JVM——四大引用

文章目录概述强引用软引用弱引用虚引用概述强引用软引用弱引用虚引用

2020-09-22 17:29:24 180

原创 JVM——类加载机制

文章目录类的加载什么时候启动类加载器类的加载类加载机制的定义:虚拟机将描述类信息的.class文件(二进制字节流)读取到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的java什么时候启动类加载器...

2020-09-20 21:06:52 168

原创 JVM——内存结构

类加载机制前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结

2020-09-12 16:51:15 213 1

原创 ARouter的使用

简介:ARouter是阿里Android技术团队开源的一款路由框架,可以使我们在进行模块化开发时提供更好更方便的页面跳转。阿里巴巴开源的路由gitHub地址本文介绍一下它的基本使用以及会出现的问题:同一模块下的活动的跳转(1)首先我们要在bulid.gradle中添加依赖:android { ··· defaultConfig { ··· ...

2020-08-29 11:26:06 1236

原创 安卓---DataBinding的使用(三)

DataBinding 的使用(三)目录DataBinding 双向绑定DataBinding 事件绑定引用 类方法使用 运算符使用 include

2020-02-25 19:00:52 188 1

原创 安卓---DataBinding的使用(二)

DataBinding 单向绑定前言BaseObservableObservableFieldObservableCollection前言在学习DataBinding后,我们使用它绑定控件后,每次改变数值,都要向DataBinding传值进行更新后才能刷新UI,这时我们就要使用单向绑定实现自动刷新UI。使用单向绑定刷新UI的方式有三种BaseObservableObs...

2020-02-24 19:25:51 335 1

原创 安卓---DataBinding的使用(一)

DataBinding的使用(一)1.DataBinding的简介2.使用前的准备工作3.开始初步学习 DataBinding简介DataBinding是谷歌官方发布的一个实现数据绑定的框架,同时也是因为有了它可以在Android上实现MVVM框架,增强了xml文件的功能,大幅度的简化了代码量。xml中只做简单的运算,例如:赋值,判空等,不做复杂的运算 准备工作(1)启用D...

2020-02-21 15:49:48 1648 1

转载 隐式Intent与显示Intent的区别

显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,去调用Intent.setComponent()、Intent.setCla...

2020-02-14 18:15:17 1278

原创 高效加载图片

当CPU要读取数据时,先访问缓存区如果没有才会进入内存中查找,缓存策略用于很多场合,在实际开发过程中图片经常需要用到Bitmap做缓存,目前比较常用的缓存策略有LruCache 和 DiskLruCacheLruCache:当缓存快满的时候,会淘汰近期最少使用的缓存目标,可以在内存中缓存数据DisLruCache:与LruCache是一样的思路,不过操作的是本地磁盘中的文件实体,操做...

2020-02-09 23:45:47 204

原创 LeetCode---位运算

位运算在古老的计算机中计算速度略高于加法运算,效率远远高于乘法运算,但是在现代计算机中虽然位运算的速度已经和加法运算差不多,但是依旧远远高于乘法运算的效率 190.颠倒二进制位190.颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。...

2019-12-01 12:04:50 242 2

原创 IO流(字符流)

1.概念字符流:直接读取字符的IO字符流读取字符,先读取字节然后转换为字符,写入时将字符转化为字节后写入

2019-11-23 14:14:12 327

原创 java 中notify和notifyAll的区别、相同点以及适合的使用场景

notify()和notifyAll()都属于Object类中的方法

2019-11-17 17:01:51 1287

原创 Java线程与进程

在学习之前,先献上一个关于进程和线程的小段子小故事1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3.进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态...

2019-11-15 22:52:29 78

原创 Java线程的状态以及转换

java线程的状态(1)创建状态:当刚刚开始new 一个线程对象所处的状态(2)可运行创建对象的start()方法时所处的状态(3)运行状态:调用start()方法后并获得cpu,开始执行代码(4)...

2019-11-15 20:01:16 163

原创 IO流(字节流)

1.概念IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的类都在IO包中2.分类流按流向分为两种:输入流,输出流。流按操作类型分为两种:字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的字符流 : 字符流只能操作纯字符数据,比较方便。【字符流必不可少,当处理文字符号时,必须将字节流转化为字符流,不然会出现乱码】...

2019-11-07 23:43:59 263 3

原创 File类

File类概述以及构造方法file更应该叫做路径(文件或者文件夹路径);路径又分为绝对路径和相对路径,从盘符开始,相对路径相对于某个位置,在eclipes下是指当前项目下。构造方法://构造方法一 File f = new File("C:\\学生信息\\num.txt"); File ff = new File("C:/学生信息/num.txt"); System...

2019-11-03 20:47:15 77

原创 Java--Map集合

Map集合Map集合是接口,是一种键值对集合,其中键对象不可以重复,值对象可以重复,甚至可以为Map集合,实现此接口的有Hash Map和Tree Mapset集合底层使用Map实现的,固定了值对象为new Object(),我们存数据时,实际上是存储键对象Map中的方法添加功能put()返回值是被覆盖的值,如果键值对是第一次存储,则返回null,如果是原来有值,则返回被覆盖的值...

2019-11-02 11:56:58 67

原创 Android--碎片(Fragment)

碎片为了使页面在大平板中更加适应,android自3.0版本开始引入碎片。碎片是一种可以嵌在活动中的一种UI片段,可以使程序更加合理的利用大屏空间,可以将碎片理解为一种迷你活动,但是拥有自己的生命周期与活动事件。在手机应用开发过程中,使用碎片能使实现一个界面的多次利用。碎片的简单使用静态的使用方法(1)创建fragment的布局文件xml(2)自定义类继承自Fragment,将...

2019-10-20 10:41:10 248

原创 Android---EditText

EditText是程序用于和用户进行交互的控件,它允许用户在控件内输入和编辑内容,并可以在程序中对这些内容进行处理,EditText在进行发短信、发微博等操作,不得不使用Edit Text1.EditText的简单应用...

2019-10-14 20:56:27 208

原创 java--Set集合

1.Set集合在集合中没有重复元素,通过equals()方法进行判断2.HashSet保证元素唯一性的原理:当使用add 方法时,会先调用hashCode()方法获得一个哈希值,通过为每个对象分配哈希值,如果没有哈希值相同的对象,则存进集合,当哈希值相同时,就对对象中的属性通过equals比较,如果对象相同则不存储,如果对象不同则存储(1)底层由哈希表实现(2)实现了Set接口(3...

2019-10-13 17:21:35 228

原创 Android--RecyclerView

ListView在android中贡献卓越,但是它并不是完全没有缺点的,如果我们不使用一些技巧来提升它的运行效率,而且他不能实现横向滚动,为此RecyclerView诞生了1.Recycler View的基本使用由于RecyclerView属于新增的控件,为了适应所有的android的版本,我们在使用之前要在app/build.gradle文件中导入依赖包...

2019-10-12 22:33:47 131

原创 android--ListView

LayoutInflater类inflate方法有两种,一种是带3个参数的:inflate(int resource, ViewGroup root, boolean attachToRoot)resource:需要加载布局资源文件的id,意思是需要将这个布局文件中加载到Activity中来操作。root:需要附加到resource资源文件的根控件,就是inflate()会返回一个View对象,如果第三个参数attachToRoot为true,就将这个root作为根对象返回,否则仅仅将这

2019-10-07 23:46:47 98

原创 java---List集合

1.ListList集合是Collection的子接口,方法大多相同

2019-10-07 16:55:43 76

原创 Java--泛型

1.泛型的概述集合<引用数据类型>,限定集合中可以存放的数据类型,该集合只能存放该类对象或者该对象的子类,大大增强了安全性,一般使用一个大写字母表示,如<E>,<Q>2.泛型的好处泛型使用的初衷:避免由Object向下转型时,转换的类型是无效的,比如储存时我们向集合中储存的是Student类,在存储时自动提升为Object类,但是我们向下转型时可能用Te...

2019-10-05 20:15:55 130

原创 Java-------colletion集合

colletion集合1.集合存在的意义:数组的长度是固定的,当添加的元素超过了数组的长度时需要对数组进行重新定义,而Java内部给我们提供了集合类,集合类能存储任意对象,长度是可以改变的,随着元素的增加而增加,随元素的减少而减少。2.集合和数组的区别(1)数组可以存储基本数据类型和引用数据类型(2)集合只能存储引用数据类型,在存储基本数据类型时,会自动进行包装成引用数据类型(基本数据类...

2019-10-04 11:37:42 137

原创 链表---链表的操作

有头结点的链表的建立头插法:尾插法

2019-09-30 08:49:28 146

原创 Java--大数乘法

1.

2019-09-30 08:49:10 123

原创 Java---多线程(下)

1. 线程同步

2019-09-21 22:47:04 84

原创 单例设计模式

单例设计模式:保证类在内存中只有一个对象饿汉式(开发经常使用)(1)私有构造方法,是其他类不能创建本类对象(2)在类的内部创建对象,并私有,不允许其他类改变对象(直接创建对象)(3)对外提供公共的访问方式浪费空间,节约时间多线程时也是创建一个对象class Solution { //私有构造方法 private Solution() { } /...

2019-09-21 10:32:51 91

空空如也

空空如也

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

TA关注的人

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