Java必备基础之反射

注:本文代码基于JDK 11 一、Class类 每个已加载的类在内存都有一份类信息,每个对象都有指向它所属类信息的引用,Java中类信息对应的类就是java.lang.Class,所有类的根父类Object有一个方法,可以获取对象的Class对象,请看如下代码: 1 public final native Class<?> getClass(); Class是一

Java必备基础之注解

注:本文代码基于JDK 11 一、概述 在Java中,注解就是给程序添加一些信息,用字符@开头,这些信息用于修饰它后面紧挨着的其它代码元素,比如类、接口、字段、方法、方法中的参数、构造方法等等,注解可以被编译器、程序运行时和其它工具使用,用于增强或修改程序行为等等。 二、内置注解 2.1、@

Java必备基础之泛型

注:本文代码基于JDK 11 一、基本概念和原理 “泛型”的字面意思是广泛的类型,类、接口和方法都可以应用于广泛的类型,也就是说,代码与它们能够操作的数据类型不再需要绑定到一起,同一套代码也可以用于多种数据类型,这样不仅可以复用代码,降低耦合,还可以提高代码的可读性和安全性。 1.1、泛型

解读Flutter源码之绘制Paint过程

注:本文代码基于Flutter SDK 3.13.5 一、与绘制相关的对象 Flutter中与绘制相关的对象有三个,分别是Canvas、Layer和Scene。 Canvas:封装了Flutter Skia各种绘制指令,比如画线drawLine、画圆drawCircle、画矩形drawRect等指令。 La

解读Flutter源码之布局Layout过程

注:本文代码基于Flutter SDK 3.13.5 一、理解布局约束 在学习Flutter的过程中可能会遇到这样一个问题:为什么给Widget设置了width: 100,但是不起作用? 这时候最应该做的不是怎样去解决这个问题,而是要先去熟悉这条规则:首先,上层Widget向下层Widget传递约束条件;

解读Flutter源码之Navigator(声明式)

注:本文代码基于Flutter SDK 3.13.5 一、前言 在之前解读Flutter源码之Navigator(命令式)一文中,已分析过Navigator的相关方法API与底层原理,知道了Navigator内部通过Overlay组件来管理路由页面堆栈。 在Flutter1.22版本发布之后,可以发现本

解读Flutter源码之Navigator(命令式)

注:本文代码基于Flutter SDK 3.13.5 一、什么是Navigator? 先来看下Navigator的注释。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91

解读Flutter源码之GestureDetector

注:本文代码基于Flutter SDK 3.13.5 一、前言 在之前解读Flutter源码之Listener一文中,我们已经知道Listener用来监听原始指针事件,它的事件处理流程分为命中测试-事件分发-事件清理三部分。 而本文所讲的GestureDetector,它的内部实际上是对Listener