反射
反射 简介 动态创建对象和编译,但对性能有影响(解释型操作) Class本身也是一个类 Class对象只能由系统建立对象 一个加载的类在jvm中只会有一个Class实例 一个Class对象对应的是一个加载到jvm中的一个.class文件 每个类的实例都会记得自己是由哪个Class实例所生成 通过CLass可以完整的得到一个类中的所有被加载的结构 Cl...
反射 简介 动态创建对象和编译,但对性能有影响(解释型操作) Class本身也是一个类 Class对象只能由系统建立对象 一个加载的类在jvm中只会有一个Class实例 一个Class对象对应的是一个加载到jvm中的一个.class文件 每个类的实例都会记得自己是由哪个Class实例所生成 通过CLass可以完整的得到一个类中的所有被加载的结构 Cl...
值传递:当一个参数按照值的方式在两个方法之间传递时,调用者和被调用者其实是用的两个不同的变量——被调用者中的变量(原始值)是调用者中变量的一份拷贝,对它们当中的任何一个变量修改都不会影响到另外一个变量 引用传递: 当一个参数按照引用传递的方式在两个方法之间传递时,调用者和被调用者其实用的是同一个变量,当该变量被修改时,双方都是可见的 public static ...
浅克隆 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原来的对象和它的副本之间共享。浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。 class Score { private int Math; private int Engli...
// 手动装箱 Integer integer = new Integer(10); // 手动拆箱 int i = integer.intValue(); // 自动装箱,通过 Integer.valueOf() 完成 Integer integer = 10; // 自动拆箱,通过 Integer.intValue() 完成 int i = integer; Integer...
Comparable 实现了 Comparable 接口,重写 compareTo() 方法,就可以按照自己制定的规则将由它创建的对象进行比较 public interface Comparable<T> { // 返回值可能为负数,零或者正数,代表的意思是该对象按照排序的规则小于、等于或者大于要比较的对象 int compareTo(T t); } ...
TreeMap 由红黑树实现,可以保持元素的自然顺序,或者实现了 Comparator 接口的自定义顺序 红黑树(英语:Red–black tree)是一种自平衡的二叉查找树(Binary Search Tree),结构复杂,但却有着良好的性能,完成查找、插入和删除的时间复杂度均为 log(n)。 自然顺序 默认情况下,TreeMap 是根据 key 的自然顺序排列的。 ...
HashMap 是无序的,LinkedHashMap 是可以维持插入顺序的 LinkedHashMap 继承了 HashMap,内部追加了双向链表,来维护元素的插入顺序 // LinkedHashMap.Entry 继承了 HashMap.Node static class Entry<K,V> extends HashMap.Node<K,V> { ...
PriorityQueue 是 Java 中的一个基于优先级堆的优先队列实现,它能够在 O(log n) 的时间复杂度内实现元素的插入和删除操作,并且能够自动维护队列中元素的优先级顺序。 // 传入比较器 PriorityQueue<String> priorityQueue = new PriorityQueue<>(Comparator.reverseOrde...
ArrayDeque 又实现了 Deque 接口(Deque 又实现了 Queue 接口) public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable {}...
自定义泛型 class MyArrayList<E> { private Object[] elementData; private int size = 0; public MyArrayList(int initialCapacity) { this.elementData = new Object[initialCapacity]...