一个进程空间分为:
- 用户空间:数据不可共享,所以用户空间 = 不可共享空间
- 内核空间:数据可共享,所以内核空间 = 可共享空间
很多公司为了节省成本
,基本上是不会要求开发写单元测试的。自己做完的功能,动手点点看看基本流程是否通畅就丢给测试了。
项目小的时候这样也不会有啥问题。随着项目的复杂度越来越高,人员越来越多,不同的人员改动到同一块代码,但彼此对原来的逻辑不是很清楚(因为代码量实在太多,想要一个人弄清楚所有细节已经不太可能)。
这也是为什么大家宁肯写新的代码也不愿意改旧的代码的原因。而如果每个功能在开发的同时配置了单元测试,那么理论上新的功能 开发完之后,所有的单元测试应该都是可以跑通的。这样就能自动帮我们检查出来一些难以发现的bug。
我们在电脑上看到的 png 格式或者 jpg 格式的图片,png(jpg) 只是这张图片的容器,它们是经过相对应的压缩算法将原图每个像素点信息转换用另一种数据格式表示,以此达到压缩目的,减少图片文件大小。而当我们通过代码,将这张图片加载进内存时,会先解析图片文件本身的数据格式,然后还原为位图,也就是 Bitmap 对象,Bitmap 的大小取决于像素点的数据格式以及分辨率两者。
结论:
有时候,线上会出现一些”莫名其妙”的bug,比如用户用的好好的,突然就爆出一个空指针异常,这个异常的提示信息如下:
1 | java.lang.RuntimeException: Unable to start activity |
看上去好像就是一般的空指针,但这个异常发生在启动Activity的时候。ActivityThread的performLaunchActivity方法确实有catch
1 | {} catch (Exception e) { |