OutOfMemoryError可以被try-catch吗
偶尔在Android中有看到有一段捕获OutOfMemoryError的代码 (View的buildDrawingCacheImpl方法),不禁想到难道OutOfMemoryError也能被try-catch?其实还真的可以,但是只有在特定场景下捕获OOM才是有意义的,下面主要来看看Java抛出OOM的场景以及何时可以捕获OOM。
偶尔在Android中有看到有一段捕获OutOfMemoryError的代码 (View的buildDrawingCacheImpl方法),不禁想到难道OutOfMemoryError也能被try-catch?其实还真的可以,但是只有在特定场景下捕获OOM才是有意义的,下面主要来看看Java抛出OOM的场景以及何时可以捕获OOM。
这次依旧是通过线性变换来了解逆矩阵、列空间、秩和零空间的概念。注意其中并不会讨论计算方法。首先我们能体会到了用矩阵来描述对空间的线性变换,线性代数不但在计算机图形学和机器人学中非常有用,还能帮助我们求解线性方程组,那就先从恒等变换和线性方程组的关系开始吧!
计算的目的不在于数字本身,而在于洞察其背后的意义。对于行列式也是一样,行列式的背后的意义是什么呢? 之前学习了线性变换,以及用矩阵对线性变换进行数值化的描述。先说结论:线性变换改变的比例被称为这个变换的行列式。看看这条结论是如何得出的?以及行列式的计算方法几何直观推导。
接上一篇文章《线性代数的本质——矩阵与线性变换》, 当看到矩阵的时候,都可以认为是对空间的一种线性变换的数值化表示。本节的内容是矩阵乘法的本质是什么,矩阵乘法推导过程,并且通过矩阵乘法的本质去理解或者证明两个矩阵相乘不满足交换律,却满足结合律的原因。
变换类似于函数,输入参数值,输出结果。为什么习惯性称作为变换而不是函数呢?变换从某种意义来说是从几何直观呈现出变化。比如接收一个向量输入,得到一个向量输出。在几何空间中的可视化表达就是原向量转动、缩放得到输出向量。而线性变换就是这个转动与缩放的过程,此过程可以通过一个矩阵来进行数值化的精确表达。
本篇文章中引用了3Blue1Brown视频中的截图,也是线性代数系列的第一个小总结:理解什么是向量,向量的线性组合,什么是向量张成的空间,向量的线性相关性如何理解。最近更新线性代数的系列文章,强烈推荐 bilibili 上一位叫做 3Blue1Brown 的Up主,讲了很多数学方面的内容,而且讲述的角度非常独特,真正可以让人感觉到数学的魅力。
U8g2是嵌入式设备的单色图形库,主要应用于嵌入式平台,如Arduino、STM32。几乎所有Arduino API的主板都得到U8g2的支持,U8g2支持大多数主流的单色OLED和LCD显示控制器 。上图是ESP8266 NodeMCU通过U8g2在SSD1306(0.96寸 128X64)展示出的效果,物理总线使用的是I2C总线。
本文主要介绍Handle的原理、如何处理Handler可能导致的内存泄漏问题,需要深入理解Handler的机制,当我们在创建Handler的时候,要明白现在用的是哪个Looper?其他线程如何使用Looper进行通信,释放Looper的区别,以及HandlerThread的原理与用法等等内容。