自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AppCompatViewInflater: EditText被自动转换为AppCompatEditText

Activity 必须是:AppCompatActivityxml 中有:EditText,不能被继承<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match

2021-10-30 10:19:27 1212

原创 Rich content insertion

Rich content insertionClipboardService 系统copy --> paste 到整个过程进程通信数据管理数据类型权限管理Copy 和 Paste menu 的构建Rich text insert总结最近Android 12 发布了一个新的功能,关于富文本的插入具体关于API的使用可以看:Rich content insertion可以看一下实现的效果:实际可以分为两个部分:copy 和 paste,也分别是两个Application。上完这就涉及到了跨进程通

2021-06-17 01:43:18 388

原创 Suppend

SuppendGlobalScope 在 Dispatchers.Main launch 的过程withContext 切换线程SuspendLambda 继承结构状态机总结Coroutine API GlobalScope 在 Dispatchers.Main launch 的过程GlobalScope.launch(Dispatchers.Main) { println("hello word")}Log.e(TAG, "-----------------------")--- sou

2021-06-06 23:10:18 179

原创 CoroutineContext 数据结构分析

CoroutineContext 数据结构分析前提数据结构Get()示例分析minusKey()示例分析fold()示例分析plus()示例分析总结附录——如何验证文章的正确性?前提这篇文章只分析CoroutineContext的数据结构,并不分析为什么要这做。数据结构CoroutineContext 可以看做一个特殊的 二叉树,图(1) 就是它的结构:它的特殊在于:右边只能是非叶节点有左节点,一定有右节点中间节点只是用来连接左右两个子节点,没有实际的作用。每个节点继承 Corou

2021-05-30 00:27:39 331

原创 常用的CoroutineScope使用

常用的一些:GlobalScope.launch{}: 一般用于测试delay(): 类似于Thread.sleep(),但是delay()不会阻塞线程runBlocking{}: 阻塞当前线程,直到协程结束.coroutineScope{}: 不阻塞当前线程,直到这个作用域下的协程都执行完,才往下执行.withTimeout(1300L) {}: 超时取消协程CoroutineScopefun main() { runBlocking { // this: CoroutineSc

2021-04-18 22:58:01 5970

原创 JNIEnv与JavaVM

JNIEnv与JavaVMJNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的运行环境 ;JNIEnv 与 JavaVM :JavaVM : JavaVM 是 Java虚拟机在 JNI 层的代表, JNI 全局只有一个;JNIEnv : JavaVM 在线程中的代表, 每个线程都有一个, JNI 中可能有很多个JNIEnv;JNIEnv 作用 :调用 Java 函数 : JNIEnv 代表 Java 运行环境, 可以使用 JNIEnv 调用 Java 中的

2021-04-17 22:58:21 269

原创 类型转换

类型转换const_cast : 修改类型的const或volatile属性static_cast :基础类型之间互转。如:float转成int、int转成unsigned int等指针与void之间互转。如:float*转成void*、Bean*转成void*、函数指针转成void*等子类指针/引用 与 父类指针/引用 转换。dynamic_cast :主要 将基类指针、引用 安全地转为派生类.在运行期对可疑的转型操作进行安全检查,仅对多态有效reinterpret_cas

2021-04-14 23:04:21 60

原创 友元

友元类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。友元函数class Student { int i;public: Student() {} ~Student() {} void setName(char* _name) { name = _name; } friend void printNa

2021-04-14 22:11:01 57

原创 c++访问控制

类的析构函数是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行(不需要手动调用)。private:可以被该类中的函数、友元函数访问。 不能被任何其他访问,该类的对象也不能访问。protected:可以被该类中的函数、子类的函数、友元函数访问。 但不能被该类的对象访问。public:可以被该类中的函数、子类的函数、友元函数访问,也可以被该类的对象访问。...

2021-04-14 21:52:19 114

原创 C字符串

字符串实际上是使用 NULL字符 '\0’终止的一维字符数组。 //字符数组 = 字符串 char str1[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; //自动加入\0 char str2[] = "Hello";字符串操作函数描述strcpy(s1, s2);复制字符串 s2 到字符串 s1。strcat(s1, s2);连接字符串 s2 到字符串 s1 的末尾。strlen(s1);返回字符串

2021-04-14 21:43:46 54

原创 函数名为参数

函数名为参数请看下面这个例子// 声明函数类型typedef int (* test)(int);// 函数要被包裹的位置void startTest(test t, int k){ t(k);}// 编写实际要运行的函数。int kk(int k){ printf("%d", k);}int main() { startTest(&kk, 8); return 0;}先解释void (*func)(int):void func()-&

2021-04-14 21:38:06 168

原创 const和ponit

const和ponitconst char *:修饰值char const *:修饰值char * const:修饰指针char const * const:同时修饰值和指针const 在*后面则修饰指针实验const char *const char * p;// *p = 'c'; 报错char k = 'k';p = &k;可以察觉,const指定了不可以修改值,但可以又该指针地址。char const * char const * p; // *p =

2021-04-14 21:08:43 206

原创 int / long / long long

在C语言中:int:占用字节数: 4long int:占用字节数: 4long long:占用自己数: 8为什么 int和 long int占用的字节数是一致的?long和int在早期16位电脑时候 int 2字节,long 4字节,而计算机发展到现在,一般32、64下,long和int一样。和java类比的话,java的 long 就是 long long 8字节...

2021-04-14 12:20:59 64

原创 shared_ptr / unique_ptr /weak_ptr

智能指针在C++11版本之后提供,包含在头文件中,shared_ptr、unique_ptr、weak_ptr、auto_ptr。shared_ptr可以多个指针指向相同的对象。shared_ptr使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。创建一个智能指针一次,内部的引用计数加1,每析构一次,内部的引用计数减1,减为0时,自动删除所指向的堆内存。shared_ptr内部的引用计数是线程安全的,但是对象的读取需要加锁。unique_ptr“唯一”拥有其所指对象,同一时刻只能有一个un

2021-04-14 08:27:27 169

原创 像素与分辨率

像素与分辨率像素: 一个用来承载色值的度量单位像素面积大小由 硬件 决定,屏幕大的像素不一定大分辨率:描述所承载的像素个数分辨率 = 画面水平方向的像素个数 * 画面垂直方向的像素个数电脑和手机显示的分辨率:就是显示仪器的分辨率,指定 显示图像的区域大小,可修改.图片面积大小 = 像素面积大小 * 自身分辨率像素面积大小 由 显示的仪器 决定图片的分辨率 由 拍摄的仪器 决定图片的内存大小图片内存大小(单位Byte) = 分辨率 * 色深 / 8图片文件大小(单位Byte) =

2021-04-05 20:36:03 255

原创 HTTP 协议结构

HTTP 协议结构HTTP全称: hypertext transfer protocol dfas Request 分为:请求行请求头请求体Response分为:响应行响应投响应体

2021-03-23 23:36:29 74

原创 Base64

Base64将二进制数据转换为由64位字符组成的字符串的编码算法

2021-03-09 20:54:25 55

原创 迪米特原则 - Low of Demeter

迪米特原则-Low of Demeter迪米特原则也称最少知道原则一个类应该对自己需要耦合或者调用的类知道的最少类内部如何实现与调用者或者依赖着没有关系调用者或者依赖者只需啊哟知道它需要的方法即可...

2021-03-09 20:20:16 107

原创 针对接口编程,而不是针对实现编程

针对接口编程,而不是针对实现编程不将变量类型声明为某个特定的具体类,而声明为某个接口客户程序无需获知对象的具体类型,只需要知道对象所具有的具体接口减少系统中各部分的依赖关系,从而实现”高内聚,松耦合“的类型的设计方案...

2021-03-09 20:05:40 311

原创 封装变化点

使用封装来创建对象之间的分界层,让设计者可以分解的一侧进行修改,而不会对另外一侧产生不良反应,从而实现层次直接的耦合

2021-03-09 19:49:42 563

原创 优先使用对象组合,而不是继承

优先使用对象组合,而不是类继承类继承通常称作为”白箱操作“,对象组合被称作为”黑箱组合“继承在某种程度上破坏了封装性,子类父类耦合度高而对象组合则只要求被组合的对象有良好的接口,耦合度低...

2021-03-09 19:46:13 346

原创 单一职责原则-Single Responsibility Principle

单一职责原则 - Single Responsibility Principle一个类应该仅有一个引起它变化的原因变化的方向隐含着类的责任

2021-03-09 19:37:11 76

原创 接口隔离原则-Interface Isolation Principle

接口隔离原则-Interface Isolation Principle不应该强迫客户程序依赖它们不用的方法接口应该小而完备

2021-03-09 19:24:11 80

原创 Liskov替换原则 - LiskovSubstitution Principle

Liskov替换原则 - LiskovSubstitution Principle子类必须能够代替它的基类继承表达抽象如果继承一个类,但不能实现他的方法,那么此时就不应该用继承去实现

2021-03-09 19:13:21 77

原创 开放封闭原则- Open Close Principle

开放封闭原则- Open Close Principle对扩展开放,对更改封闭类模块应该是可扩展的,但是不可修改的

2021-03-09 19:04:40 83

原创 依赖倒置原则-Dependency inversion principle

依赖倒置原则高层模块(稳定) 不能依赖 底层模块(变化),二者都应该依赖抽象抽象(稳定) 不应该依赖具体 实现细节 (变化) ,实现细节(变化) 应该依赖 抽象(稳定)

2021-03-09 18:51:24 277

原创 免费ARP

免费ARP协议介绍

2019-08-24 18:21:48 3138 2

原创 从排序数组中删除重复项

从排序数组中删除重复项文章目录从排序数组中删除重复项题目描述示例 1示例 2说明解题方法一思路代码方法二思路代码方法三思路代码题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地 修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1给定数组 nums = [1,1,2],函数应该返回新...

2019-04-29 01:21:03 217

原创 计算机语言的几种分类

常见的几种分类高级语言和低级语言动态类型和静态类型强制类型和弱类型编译型,解释型,半编译半解释面向对象型和面向过程型

2017-10-31 12:39:18 19878 2

空空如也

空空如也

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

TA关注的人

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