-
HashMap
构造函数 HashMap有4个构造函数.分别为:/** * Constructs an empty <tt>HashMap</tt> with the default initial capacity * (16) and the default load factor (0.75). */public HashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACT...…
-
Android应用前后台事件判断
extern 可以声明变量a是一个整数,这符合上面的逻辑。但这就产生了一个矛盾:这段代码有足够的信息让编译器为整数a分配空间,而且编译器也确实给整数a分配了空间。要解决这个矛盾,对于C/C++需要一个关键字来说明“这只是一个声明,它的定义在别的地方”。这个关键字就是extern,它表示变量是在文件以外定义的,或在文件后面部分才定义。 在变量定义前加extern关键字表示声明一个变量但不定义它,例如:…
-
C++Review
进程调度是确保进程能有效工作的一个内核子系统extern 可以声明变量a是一个整数,这符合上面的逻辑。但这就产生了一个矛盾:这段代码有足够的信息让编译器为整数a分配空间,而且编译器也确实给整数a分配了空间。要解决这个矛盾,对于C/C++需要一个关键字来说明“这只是一个声明,它的定义在别的地方”。这个关键字就是extern,它表示变量是在文件以外定义的,或在文件后面部分才定义。 在变量定义前加extern关键字表示声明一个变量但不定义它,例如:extern int a; exter...…
-
Linux进程管理
进程调度是确保进程能有效工作的一个内核子系统多任务 能同时并发地交互执行多个进程的操作系统叫做多任务操作系统。 多任务系统分为:非抢占式多任务和抢占式多任务。linux提供了抢占式的多任务系统。在此模式下,由调度程序来决定什么时候停止一个进程的运行,以便其他进程能够得到执行机会。这个强制的挂起动作就叫抢占。进程在被抢占之前能够运行的时间时预先设置好的,而且有一个专门的名字,叫进程的时间片。时间片实际上时分配给每个可运行进程的处理器时间段。Linux的进程调度 从2.5开发系列的内...…
-
Linux进程管理
进程 进程就是处于执行期的程序(目标码存放在某种存储介质上)。但进程并不仅仅局限于一段可执行程序代码。通常进程还要包括其他资源,像打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址控件及一个或多个执行线程(thread of execution),当然还包括用来存放全局变量的数据段等。实际上,进程就是正在执行的程序代码的实时结果。内核需要有效而又透明地管理所有细节。 执行线程,简称线程,是在进程中活动的对象。每个线程都拥有一个盾立的程序计数器、进程栈、...…
-
Linux内核编译
源码下载1.登录官网(https://www.kernel.org/)下载最新版2.git下载git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gitgit pull源码安装官网下载的直接解压,git同步的不用源码编译设置默认配置$ make defconfig减少编译的垃圾信息$ make > .. /detritus使用以下命令可以把无用的输出信息重定向到永无返回值的黑洞/dev/nu...…
-
Linux内核简介
操作系统和内核简介 用户界面时操作系统的外在表象,内核才是操作系统的内在核心。系统其他部分必须依靠内核这部分软件提供的服务,像管理硬件设备,分配系统资源等等。内核有时候被称作是超级管理者或者是操作系统核心。通常一个内核由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址控件的内存管理程序和网络、进程间通信等系统服务程序共同组成。对于提供保护机制的现代系统来说,内核独立于普通应用程序,它一般处于系统状态,拥有受保护的内存空间和访问硬件设备的所有权限。...…
-
设计模式总结
一直在看设计模式,断断续续看了一年多。由于在平时开发中鲜有用到,看了的基本都忘了。最近再次捡起来,总结一下。 套用大家熟知的话就是:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。ps:HeadFirst书中读书要点 设计模式 我看的书时HeadFirst设计模式。...…
-
策略模式
定义 定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。案例 公司做了一套相当成功的模拟鸭子游戏。游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫。此系统的内部设计使用了标准的OO技术,设计了一个鸭子超类,并让各种鸭子继承此超类。(P7-P8) 现在要求鸭子能飞,如果在基类中加入fly()方法,并非所有的鸭子都会飞,比如橡皮鸭子。设计原则 1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。(在此案例中变化的部...…
-
Android apk打包过程
##Android资源管理框架(Asset Manager)简介Android应用程序主要由两部分内容组成:代码和资源。资源主要是指那些与UI相关的东西,如UI布局,字符串和图片等。代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样的好处就是应用程序只需要编译一次,就可以支持不同的UI布局。这种特性使应用程序在运行时可以适应不同的屏幕大小和密度,以及不同的国家和语言。Android应用程序资源可以分为两大类,分别时assets和res:#####1.assetsassets...…
-
Java集合
基本概念Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的顺序相同)。2)Map。一组成对的“键值对”对象,允许你使用键来查找值。ArrayList允许你使用数字来查找值,因此在某种意义上讲,它将数组与对象关联在一起。映射表允许我们使用另一个对象来超找某个对象,它被称为“关联数...…
-
二叉树遍历
二叉树简介二叉树:是每个结点最多有两个子树的有序树,在使用二叉树的时候,数据并不是随便插入到节点中的,一个节点的左子节点的关键值必须小于此节点,右子节点的关键值必须大于或者是等于此节点,所以又称二叉查找树、二叉排序树、二叉搜索树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2...…
-
Android 进程保活招式大全
本文转载自腾讯Bugly目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以及这些组件...…
-
SetContentView源码阅读
在Activity和FragmentActivity中都会用到setContentView(R.layout.activity_main);进入SetContentView方法可以看到:/*** 从布局资源中设置activity内容。资源被加载,然后添加所有顶级views到activity中。 * * @param layoutResID Resource ID to be inflated. * * @see #setContentView(android...…