正则表达式的概念和用法
多练习,多使用,才能熟练掌握正则表达式
参考链接
######基本概念
在编写处理字符串的程序或者网页时,需要查找某些复杂规则的字符串。
正则表达式: 描述这些规则的工具
####Python 中正则的使用
Android内存优化是性能优化很重要的一部分,而如何避免OOM又是内存优化的核心。
Android是如何管理应用的进程与内存分配
Android系统的Dalvik虚拟机扮演了内存垃圾自动回收的角色。
Android和java中都会出现由于不良代码引起的内存泄露,为了使Android应用程序能够快速高效的运行,Android每个应用程序都会有专门Dalvik虚拟机实例来运行,也就是每个程序都在属于自己的进程中运行。
这样,某个应用程序内存泄露仅仅只会使自己进程被kill掉不会影响其他进程(如果是system_process等系统进程出现问题,就会造成系统重启),另一方面,系统为每一个应用程序分配了不同的内存上限,如果超过这个上限被视为内存泄露,从而被kill掉。
Dalvik Heap size因不同设备的RAM不同而有所差异,应用占用内存接近这个阀值,在尝试分配内存就会引起outofmemoryError的错误。
出现OOM有几种情况:
解决这些问题,有:
大多数static 数据被mmapped到一个进程中,这样使得同样的数据在进程之间能够共享,而且在需要的时候能paged out.常见static 数据包括Dalvik code ,app resourecs,so 文件等。
大多数情况下,Android通过显示的方式分配共享内存区域(例如ashmem或gralloc)来实现动态RAM区域能够在不同进程之间进行共享的机制。比如,Window Surface在APP和Screen Composition之间使用共享的内存,
Cursor Buffers在Content Provider与Clients之间共享内存。
ActivityManager manager=(Activity)getSystemService(Context.ACTIVITY_SERVICE);
int heapsize=manager.getMemoryClass();
Android系统不会再用户切换应用的时候进行交换内存的操作,而是把不包含Foreground组件的应用进程放到LRUCache中,比如用户启动一个应用,系统会为它创建一个进程,但是当用户离开这个应用,此进程不会背立即销毁而是会放到一个Cache中,当用户切换回来够快速的恢复。
通过不同的内存分配方式对不同的对象(bitmap,etc)进行操作因Android版本差异发生变化。
4.0以上,废除了external的计数器,类似bitmap的分配改到dalvik的Java heap(堆)中申请,只要allocated+新分配的内存>=getMemoryClass()就会发生OOM。(在AS memory monitor查看内存中Dalvik Heap的实时变化)
减少OOM的第一步就是要尽量减少新分配出来的对象占用内存的大小,尽量使用更加轻量的对象。
我去听了半天课
###git add详解
git add. 添加所有文件
git add -u 将所有修改或删除的文件添加到索引库
git add -i 查看所有修改或者删除但是没有被提交的文件
美团IOS工程师(北航)