自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java集合源码分析—LinkedList

LinkedList源码分析LinkedList结构public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.SerializableLinkedList继承自AbstractSequentialList<E>,实现了List、Deque、Cloneable、Ser

2021-07-27 21:05:58 106

原创 Java集合源码分析—ArrayList

ArrayList源码分析ArrayList结构public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList继承自AbstractList,实现了List、RandomAccess、cloneable、Serializable接口,支持随机访问、克隆和序列化。和V

2021-07-27 15:31:07 122

原创 Java基础总结三(泛型、异常)

文章目录Java基础总结三(泛型、异常)泛型泛型的创建泛型类泛型接口泛型方法类型擦除泛型的协变与逆变异常异常体系异常处理Java基础总结三(泛型、异常)泛型泛型的创建泛型类我们最常用泛型的地方就是集合,因此,我们编写自己的List来体会泛型:public class TestList<T> { private Object[] instances = new Object[0]; public T get(int index) { return (

2021-07-26 10:47:44 280 1

原创 Java基础总结二(集合)

文章目录Java基础总结二(集合)集合概述什么是集合集合和数组的区别使用集合框架的好处常见的集合类有哪些简述List、Set、Map三者区别集合框架底层数据结构哪些集合类是线程安全的集合的快速失败机制 “fail-fast”Collection接口List接口迭代器Iterator是什么?Iterator怎么使用?有什么特点?如何边遍历边移除 Collection 中的元素?ArrayList的优缺点ArrayList和LinkedList的区别ArrayList 和 Vector 的区别是什么?多线程场景

2021-06-12 21:20:15 1134 1

原创 Java基础总结一(概述、基础知识)

文章目录Java基础总结一(概述、基础知识)Java概述什么是JavaJVM、JRE、JDK的关系什么是跨平台性?原理是什么什么是字节码?采用字节码的最大好处是什么字节码采用字节码的好处Oracle JDK和Open JDK的对比Java基础知识Java有哪些数据类型基本数据类型引用数据类型类型转换运算符流程控制数组数组的定义数组的初始化数组在内存中的存储对数组的操作多维数组面向对象面向对象概述面向对象和面向过程的区别面向对象的三大特征什么是多态机制?类和对象类和对象的区别定义类对象的产生和使用对象的存储t

2021-06-10 10:03:29 145

原创 View绘制流程二:测量、布局、绘制

View绘制流程二:测量、布局、绘制上篇博客我们详细分析了布局是如何添加到我们的界面上的,谈到ViewRootImpl的三个方法也就停止了,今天我们详细的分析measure、layout、draw三个过程。Measure理解MeasureSpec什么是MeasureSpec当我们要对我们的View进行测量时,要有一定的规则,我们不仅要考虑开发者在xml中给我们指定的layout,而且还要结合父View给我们指定的测量规则,这两个属性共同决定了我们子View的MeasureSpec,也就是子View

2021-06-02 21:05:16 162

原创 View绘制流程一:布局是如何添加到界面上的

文章目录1.切入点:setContentView2.PhoneWindow从何而来3.绘制入口:ViewRootImpl当我们打开一个App,便会看到一个个精美的页面,作为开发者的我们,有没有想过这些页面是如何添加到我们的界面上的?本片文章主要解决以下几个问题,如果你对以下问题都有明确的答案,可以不必浪费时间了。什么是DecorView,与我们编写的布局文件的关系。DecorView何时被创建,如何被加载进布局。什么是ViewRootImpl,与DecorView的关系DecorView如何实现

2021-05-30 22:50:21 551 4

原创 探究Fragment(内含懒加载实现)

Fragment什么是Fragment为了让界面可以在平板上更好的展示,Android在3.0版引入了Fragment功能,它非常类似于Activity,可以像Activity一样包含布局,但比Activity更加轻量。Fragment通常嵌套在Activity中使用。Activity作为视图的承接和管理在很多场景下过与繁重,需要一个简化的视图管理器来替代Activity的操作。Fragment的生命周期这是Activity与Fragment生命周期的关系图,可以看出,Fragment的生命周期是

2021-05-28 22:21:53 653 2

原创 四大组件—Serivce

Service什么是ServiceService是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。Service不依赖于任何用户界面,即使App被切到后台,Service仍可以正常运行。当某个程序进程被杀掉时,所有依赖于该进程的Service也会停止。Service与Thread的区别线程是程序执行的最小单位,用来处理异步操作。Service是Android提供的一种机制,Service运行于主线程中,是Context的子类,可以调用Context的所有方法,通过startServic

2021-05-28 22:20:14 390

原创 四大组件—Broadcast、ContentProvider

文章目录BroadCast什么是广播广播的分类模型描述注册方式静态注册动态注册ContentProvider什么是ContenProvider具体使用设置统一资源标识符(URI)MIME数据类型ContentProvider数据组织方式主要方法ContentUris作用使用UriMatcher作用使用ContentResolver作用使用优点安全简单高效BroadCast什么是广播广播是一种消息型组件,用于在不同组件甚至不同应用之间传递消息。广播的分类标准广播完全异步的广播,多个广播接收器可

2021-05-26 17:45:52 318 5

原创 四大组件—Activity

文章目录Activity1.什么是Activity2.进程优先级3.Activity的启动模式标准模式栈顶复用栈内复用单例模式4.Activity生命周期正常情况下的生命周期:情景分析:异常情况下的生命周期为什么会有异常情况?为什么要重建?重建机制:onSaveInstanceState & onRestoreInstanceState重建流程状态保存和恢复的注意事项5.Activity启动流程Activity1.什么是ActivityActivity是Android四大组件之一,是负责展示界

2021-05-22 20:56:36 718 9

原创 设计模式学习(二)——创建型模式(单例、工厂、建造者)

文章目录单例模式提前加载模式:延迟加载:工厂模式简单工厂模式:工厂方法模式:抽象工厂模式:建造者模式正常的建造者模式拥有方法链的匿名建造者:单例模式单例模式:保证一个类仅有一个实例,并且这个类提供一个全局的访问接口,某些对象在全局只需要一个,就可以使用单例模式。单例模式的创建可以分为两种模式:提前加载和延迟加载。提前加载模式: public class Singleton { private static Singleton instance = new S

2021-04-23 19:54:20 154 1

原创 Android消息机制二

初学Android,不可避免会出现许多错误,如果因为文章中的错误而对您造成了困扰,万分抱歉,欢迎您在评论区指正。上一篇博客介绍了 ThreadLocal,下面,我们就可以开始Handler的学习了。先看一看 Handler 的用法:说整套Handler消息机制,肯定不止会有Handler一个类在工作,具体是由 Handler、Looper、MessageQueue、Message 四个类配合工作。Handler:Handler的作用是投递消息和处理消息的,它会绑定一个Looper,一个线程可.

2021-04-21 20:12:43 131 2

原创 Android消息机制一

初学Android,不可避免会出现许多错误,如果因为文章中的错误而对您造成了困扰,万分抱歉,欢迎您在评论区指正。Handler是Android消息机制的上层接口。通过这个接口可以很方便的将消息切换到Handler所在的线程中去执行。Android开发工程师通常用它来更新UI,但是如果只认为它的作用是用来更新UI的话,未免将Handler的功能过于简单化。我甚至认为,Handler是我们Android应用的心脏,如新启动一个Activity是都会使用到Handler,所以,Handler的重要性不言而.

2021-04-20 15:05:17 166 5

原创 设计模式学习(一)——六大原则

文章目录1.单一职责原则2.开闭原则3.里氏替换原则4.接口隔离原则5.依赖倒置原则6.迪米特法则1.单一职责原则有且仅有一个原因引起类的变更。合理的职责分解,相同的职责放到一起,不同的职责分解到不同的接口和实现中去,这个是最容易也是最难运用的原则,关键还是要从业务出发,从需求出发,识别出同一种类型的职责单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责。比如说一个权限类,就只负责权限内的事情,不要去干涉登录或者角色相关的类,也不要把权限的事情放到其他类里面。否

2021-01-03 23:10:32 149

原创 Java虚拟机学习笔记(二)——类文件结构与字节码指令

文章目录Java虚拟机学习笔记(二)——类文件结构1.Class类文件结构1.1 魔数与版本1.2 常量池1.3 其他:2.字节码指令2.1 加载和存储指令2.2 运算指令2.3 对象创建与访问指令2.4 操作数栈管理指令2.5 方法调用和返回指令2.6 其他Java虚拟机学习笔记(二)——类文件结构1.Class类文件结构任何一个Class文件对应着唯一一个类或者是接口定义信息。Class文件是一组以8字节为基础单位的二进制流,各个数据紧凑严格的按照顺序排列在文件中,中间没有任何添加分割的分隔符,

2021-01-02 15:12:10 197

原创 Java虚拟机学习笔记(一)——Java内存区域与对象创建

文章目录Java内存区域1.运行时数据区域1.1 程序计数器1.2 Java虚拟机栈1.3 本地方法栈1.4 Java堆1.5 方法区2.虚拟机对象2.1 对象的创建2.2 对象的内存布局2.3 对象访问定位Java内存区域1.运行时数据区域1.1 程序计数器程序计数器是当前线程执行字节码的行号指示器。字节码解释器工作时需要通过改变这个计数器的值来选取下一条要执行的字节码指令。多线程执行任务时,由于内核是通过切换来模拟异步操作,所以每条线程都需要一个独立的程序计数器,以便于线程切换后再次回到本线

2020-12-30 15:27:08 182

空空如也

空空如也

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

TA关注的人

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