一、Dart 异步编程基础 Dart 是一门单线程的语言,它通过异步操作来执行耗时任务,从而可以在等待一个操作完成的同时进行别的操作。常见的异步操作包括通过网络获取数据、写入...
一、Dart 异步编程基础 Dart 是一门单线程的语言,它通过异步操作来执行耗时任务,从而可以在等待一个操作完成的同时进行别的操作。常见的异步操作包括通过网络获取数据、写入...
一、命名函数与匿名函数 命名函数(Named Functions) 通过显式名称声明 可被重复调用 支持类型注解 可被其他模块导入使用 匿名函数 也称为lambda或闭包 没...
一、基础循环语句 for循环 while循环 do-while循环 二、集合遍历 forEach方法 for-in循环 带索引遍历 筛选遍历 map转换 倒序遍历和步进(st...
Dart 语言详解 Dart 是 Google 开发的面向对象、强类型的编程语言,专为 跨平台应用开发 设计(如 Flutter 框架)。其语法简洁高效,支持 JIT(即时编...
1. 基本概念 进程 vs 线程 进程:资源分配的最小单位,包含代码、数据和系统资源(如内存、文件句柄)。不同进程内存隔离。 线程:CPU调度的最小单位,隶属于进程,共享进程...
一、初始化流程 Glide.with() 方法根据传入的 Context/Activity/Fragment 类型,通过 RequestManagerRetriever 获取...
一、Retrofit 的初始化与核心组件 Retrofit 通过 Builder 类完成初始化,核心配置包括: baseUrl(基础 URL) callFactory(默认使...
Okhttp的优点 支持Http2所有请求共享同一个socket 通过间接池(http1.x socket复用)减少请求延迟 通过间接池(http1.x socket复用)减...
APP的启动方式 应用的启动方式分为三种,分别是冷启动、温启动和热启动。 冷启动:应用进程完全不存在时的启动(首次启动或进程被系统回收后),主要是从Luncher点击APP图...
JVM 程序计数器:记录字节码的地址。 栈:FILA(先进后出)存储当前线程(线程独享)运行方法需要的数据局部变量表(基本数据类型、对象的引用)、操作数栈、返回地址等。 方法...
Crash的监控处理 Java层Crash自定义的监控 默认Crash的Handler处理流程 ANR问题分析 ANR类型: input事件:5s内没有处理完成,再次触发In...
Android是基于事件驱动的,由一个一个的事件组成了App进程。当没有事件时会进行休眠等待,当事件来临时再次进行唤醒,所以Android进程的生命周期才会那么长久。而事件来...
在Android系统中,进程间的通信(IPC)是一个重要的机制,它允许不同的应用程序或系统服务在相互隔离的内存空间中交换信息和数据。而Binder,作为Android提供的一...
在上一篇文章中我们学习了如何在~中添加一个View,但是View的大小、形状、位置等确还不确定,接下来我们就学习一下View是如何绘制的。 View的绘制主要应用了三个方法:...
View的层级可以分为Activity->DecorView->ViewGroup->View,其中View的绘制又分为onMeasure()->onLayout()->on...
本文主要介绍了一些常见的算法问题,分为排序、选择、数据结构、数学等几个分类,主要为了提供一些遇见这种算法问题的解决思路。 排序算法 冒泡排序 思路:排序的本质是对一个无序的数...
安全性 HashMap:是非线程安全的。在多线程环境下,如果多个线程同时对HashMap进行读写操作,可能会导致数据不一致、死循环等问题。例如,在put操作时,HashMap...
Set(集合) Set是一种不包含重复元素的集合。它继承自Collection接口,就像一个容器,里面的元素无序(这里的无序是指元素的存储顺序和添加顺序没有必然联系)且唯一。...
图(Graph)是一种非线性的数据结构,用于表示对象之间的关系。它由顶点(Vertex)集合和边(Edge)集合组成,顶点表示对象,边表示对象之间的连接关系。 图的结构 顶点...
树是一种非线性的数据结构,它是由 n(n≥0)个有限节点组成一个具有层次关系的集合。当 n = 0 时,称为空树。在非空树中,有且仅有一个根节点(root),其余节点可分为 ...