摘要:
一、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.类加载总的流程 加载-->连接(验证、准备、解析)-->初始化,需要注意的是每个阶段 阅读全文