11 2017 档案
摘要:一、Java集合框架简介及其关系图 Java集合框架的作用:为了方便高效操作对象,将对象放入容器中,统一管理。数组也是一种简单的容器,集合框架的容器是比较复杂的容器。 其中包含的具体的集合类,对于特定类型的操作具有不同的效率,选择那个容器类型,要根据具体的操作选择。 注意:位于java.util包里
阅读全文
摘要://定义一个默认的长度10 private static final int DEFAULT_CAPACITY = 10; //定义空的数组 private static final Object[] EMPTY_ELEMENTDATA = {}; //定义数组用来存储放入ArrayList的元素 private transient Object[...
阅读全文
摘要:一、泛型的引入原因 在操作集合的时候,之前方法的定义都是Object类型,向集合中添加对象,都自动向上转型,加入的元素可以是任何类型 但是,在取出元素的时候,通常想要使用对象的特有功能,就必须向下转型,此时就可能出现类型转换异常,存在安全隐患。 在JDK1.5时候提出一个解决方案:泛型。 二、泛型的
阅读全文
摘要:1 import java.lang.reflect.Constructor; 2 import java.lang.reflect.*; 3 4 /*Class:代表一个字节码文件的对象,每当有类被加载进内存,JVM就会在堆上给 5 * 该类创建一个代表该类的对象。每个类的Class对象是的。 6 *Class类没有构造方法,获得类对应的Class方...
阅读全文
摘要:上面是一种模拟的反射机制的使用,真实使用反射机制的一个比较常见的例子是Tomcat--web服务器,Tomcat服务器的作用:就是处理浏览器的请求 和给予合适的应答,但是浏览器的请求类型通常不一样,为了提高服务器的扩展性,通常在Tomcat编写时就对外提供一个公共的接口--Servlet,要进行怎样
阅读全文
摘要:1 /*希尔排序:对插入排序的改进,其排序是按照一个增量序列来进行 2 *增量序列的个数就是排序的趟数。在任意增量K下,保证a[i] 0){ 25 //控制每个增量的循环 26 for(outer = h; outer h - 1 && arr[inner - h] >= temp){ 31 arr...
阅读全文
摘要:1 /*插入排序--是基本排序里面性能比较好的(比较适合基本有序的排序) 2 *排序的思想:一个序列,前边是有序的,后边是无序的,拿出一个元素进行插入到已经有序 3 * 的部分(这里就涉及移动的操作)--先找到位置,再移动 4 *特点:一趟排序下来每个元素的位置可能不是固定的 5 *时间复杂度:O(N2) 6 *排序的稳定性:稳定的 7 *使用场景:...
阅读全文
摘要:1 /*通过递归实现归并排序 2 * 具有思路:将要排序的数组不断划分,直到只有一个元素的时候停止; 3 * 这是递归的基准条件,返回进行排序。 4 * 归并排序的时间复杂度:O(NlogN):考虑的是复制数据到workarr和workarr到arr的次数 5 * 6 * */ 7 public class MergeWithRecursion { 8 sta...
阅读全文
摘要:一、虚拟机字节码执行引擎概述 虚拟机字节码执行引擎主要就是研究字节码指令具体怎样被执行。对于物理机器,指令的执行是直接建立在OS和硬件的基础上 对于字节码指令的执行就是直接建立在JVM上,然后通过JVM完成具体的字节码指令到机器指令的过程。一般来说虚拟机的执行的 字节码指令是基于栈的不是采用寄存器,
阅读全文
摘要:一、虚拟机类概加载概述 虚拟机将描述类的Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以直接被虚拟机使用的Java类型 Java语言支持动态加载和动态连接。 二、虚拟机加载类的具体过程 1.类加载总的流程 加载-->连接(验证、准备、解析)-->初始化,需要注意的是每个阶段
阅读全文
摘要:编译其本质是将一种语言规范转换成另一种语言规范,即将Java语言规范转换为JVM虚拟机语言规范。结果就是.java文件到.class文件。 对于C/C++编译直接将高级语言转换为机器语言,Java语言不是采用这种策略,而是将高级语言编译成一种中间态的语言--与平台无关,其执行 过程是依靠对应平台的J
阅读全文
摘要:一、Class文件的结构概述: 是一连串的字节流(以自节为基本单位划分),里面包含的数据项按照固定的次序依次排列组成Class文件,文件内部不含分割符 当数据项的长度大于1B时候,按照高位在前的方式存储数据项。数据项是被严格定义的不允许被修改。 整个字节码文件由两种数据结构组成: 1.无符号数:用来
阅读全文
摘要:1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件 被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在运行的过程中 将字节码指令转换为具体平台的机器指令。JVM运行在用户态,操作系统将JVM看作是一个特殊的
阅读全文
摘要:执行结果: Top disk from A to CTop disk from A to BTop disk from C to BTop disk from A to CTop disk from B to ATop disk from B to CTop disk from A to C
阅读全文
摘要:执行过程和结果 Enter(3 disks,A B C) Enter(2 disks,A,C,B) Enter(1disk,A B C) Base case-->disk1 from A C //Disk 1 from A to C Return(1disk A B C) move disk 2 f
阅读全文
摘要:内核IO 操作系统对于IO的职责 1.对文件和设备命名空间的管理 2.文件和设备访问的控制 3.IO操作控制 4.文件系统的空间分配 5.设备分配 6.IO缓冲管理 7.IO调度方式 8.设备状态控制,错误管理 9.设备驱动程序配置和初始化 IO设备的分类 1.按照传输数目分:字节,块 2.按照IO
阅读全文
摘要:1.临界资源:一次仅允许一个进程使用的资源称为临界资源。 2.临界区:对临界资源进行访问或修改的代码。 3.临界区问题:多个进程并发的对临界区进行访问或修改(至少有一个修改),导致数据不一致。 解决临界区问题思路:相关的进程在访问自己的临界区的时候,不允许其他的进程进入自己的临界区。保证修改操作是原
阅读全文
摘要:1.线程引入的原因? 1.1 对于现实世界存在的一个问题:MP3播放--大的任务可以划分为3个子任务 先读数据(属于IO绑定),解压数据(属于CPU绑定),最后播放;想提高 程序的并发性,可以通过使用多进程实现,每个进程负责一个任务,但是这样开销大,而且还要考虑资源共享,和进程之间的协作,所以操作系
阅读全文
摘要:1.评价调度算法的主要指标 周转时间:进程进入就绪队列直到进程执行结束所用的时间。 响应时间:进程进入就绪队列后被到被CPU调度所用的时间。 2.常见的调度算法 FIFO:先来先服务算法--基本思想按照作业进入就绪队列的顺序,选择先到的作业被CPU调度。假如作业的长度比较平均,效果不错,但是 如果长
阅读全文
摘要:1.进程概念 进程:一个正在执行的程序;操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态。而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切。程序代码被加载进内存后就以进程的形式存在。 2.进程的组成 逻辑地址空间:这个概念是由操作系统提出来的,目的是为了程序员更方便的
阅读全文
摘要:1.操作系统是什么? OS是用户、用户程序与底层硬件的媒介;属于是一种特殊软件 主要目标:就是为用户提供一个方便的安全的操作环境(提供对底层硬件的抽象);为用户提供所有可能的服务,确保用户程序的正常运行以及错误处理。 注意:实现这些目标操作系统需要底层硬件提供支持。 OS具体的功能:管理计算机资源(
阅读全文
摘要:1.总线的作用:计算机中数据,信号,地址传输的通路(载体)。 2.总线的传输方式 串行传输:传输的过程是一个bit的传输,适合于远距离传输。 并行传输:存在多条总线,同时进行传输,一次可以传送多个bit,适合近距离传输。 3.计算机体系结构中总线使用的历史 单总线:单总线结构,所有的部件都挂在一条总
阅读全文