移动开发

JS高级—call(),apply(),bind()

call() 介绍 通过提供一个新的this值给当前调用的函数/方法,从而改变this指向。 语法 fn.call(this.Arg, arg1, arg2,...) thisArg:当前调用函数this指向的对象 arg1, arg2:传递的其他参数(直接传给形参可不写) 特点 可以直接调用函数—fn.call() 可以改变被调用函数的this指向为指定的— fn.call(this.

mac安装navicat及使用

0.删除旧的 sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/c

22. 多态

Java三大特性有封装、继承、多态。 前面我们已经学过了封装和继承,今天学习多态,如需前面内容的可自行查看。 1、多态的引入 多态是继封装、继承之后,面向对象的第三大特性 生活中,比如交通工具的种类可以分为飞机、汽车、轮船 再比如交通工具的运行方式飞机运行方式是飞在天上、汽车是在马路上开、轮船是在海上行驶 可见,同一行为,通过不同的事物,可以体现出来的不同的形态 多态,描述的就是这样的状态。 2、

Flutter基础知识

0、Dart是值传递还是引用传递? Dart是值传递。每次调用函数,传递过去的都是对象的内存地址,不是对象的复制。 知识点扩展:Swift的struct是值类型,class是引用类型;意思是:声明一个新的变量指向这个结构体,改变某个属性,原本的结构体属性不会发生变化;而类会随着改变 1、Flutter的核心树 Widget: 1、使用配置和状态,描述view的样子 2、当一个Widget发生改变时

iOS重学之启动优化(三)- Clang插桩

写在前面 在 上一篇文章iOS重学之启动优化(二)- 二进制重排 最后我们提出了一个问题:如何精确获取应用启动时刻的符号调用顺序,本篇文章我们就来详细介绍如何通过Clang插桩来对所有的符号进行100%的Hook。 Clang插桩 LLVM内置了一个简单的代码覆盖率检测(SanitizerCoverage)。它在函数级、基本块级和边缘级插入对用户定义函数的调用,并提供了这些回调的默认实现。在认为启

Python安装与环境配置全程详细教学(包含Windows版和Mac版)

Windows版Python的安装与环境配置1.下载PythonPython下载地址:Download Python | Python.org可以在这里直接点击下载,就会下载你电脑对应的最新版本如果你要是不想下载对应的最新版或者因为某些原因你想安装某一特定版本的Python你可以在上面的Downloads中点击Windows你就可以看到所有版本的Python&#xff0

Android layer-list 使用,并设置item的size(大小)

现在我们正在做一个简单的聊天功能,那必然我们会对每一句的聊天内容设计一个聊天气泡作为背景,设计稿如下: design-bubble.png 基于设计稿,很自然的我们会想到直接问UX要.9图,但是我们公司由UX部门不再同一个办公楼,本想让UX提供,沟通下来换来的是UX说已经提供了可以下载。但找来找去只发现设计稿提供了气泡的Tail。本来.9应该拿过来就可以用,但目前只提供Tail,不过

Android USAP 进程启动流程

从Android Q(10)开始,Google引入了一种新的机制,加快了app的启动时间,具体请看Android Framework | 一种新型的应用启动机制:USAP,本篇将会详细介绍USAP 进程启动的流程。 从Activity启动流程 上篇(Android 10),我们得知在Activity启动过程中,我们会调用到\frameworks\base\core\java\android\os\

set/map(ES6)

set与map理解 ES6中新增,set集合和map集合就是一种数据的存储结构(在ES6之前数据存储结构只有array,object),不同的场景使用不同的集合去存储数据 set集合 Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。 语法: //创建一个set集合,传参为一个可迭代的对象 const s1 = new Set(iterable); API 名