面向对象
面向对象概念 现实生活: 类:抽象的概念,把具有相同特征和操作的事物归为一类 先有实体,再有类的概念 代码世界: 类:抽象的概念,把具有相同属性和方法的对象归为一类 编写顺序:先有类,再创建对象 类的作用:类相当于一个模板,刻画出具有相同属性和方法的对象 类 类中只有属性和方法 属性也叫做全局变量,属性分为成员变量和静态变量 方法分为成员方法和静态方法 1234567891011121314151617public class 类名{ //属性也叫做全局变量,分为成员变量和静态变量 //成员变量 数据类型 变量名; //静态变量 static 数据类型 变量名; //方法分为成员方法和静态方法 //成员方法 访问修饰符 返回值类型 方法名([参数]){} //静态方法 访问修饰符 static 返回值类型 方法名([参数]){}} 对象 创建对象的语法:类名 对象名 = new...
深入类加载机制
深入类加载机制初识类加载过程使用某个类时,如果该类的class文件没有加载到内存时,则系统会通过以下三个步骤来对该类进行初始化 1.类的加载(Load) → 2.类的连接(Link) → 3.类的初始化(Initialize) 类的加载(Load):将类的class文件读入内存,并为之创建一个java.lang.Class的对象,此过程由类加载器(ClassLoader )完成 类的连接(Link):将类中的数据加载到各个内存区域中 类的初始化(Initialize):JVM负责对类进行初始化 深入类加载过程类的完整生命周期 :加载、连接(验证、准备、解析)、初始化、使用、卸载 加载 通过一个类的全限定名来获取其定义的二进制字节流 将这个字节流所代表的的静态存储结构转化为方法区的运行时数据结构 在堆中生成一个代表这个类的Class对象,作为方法区中这些数据的访问入口 注意:...
集合
集合含义 集合是Java API所提供的一系列类,可以用于动态存放多个对象...
Iterator底层源码
123456public abstract class AbstractList<E>{ //外部操作数 //添加元素、删除元素时会++,因为添加、删除会导致集合中的元素个数发生改变 protected transient int modCount = 0;//4} 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103public class ArrayList<E> extends AbstractList<E> implements List<E>{ //数据容器 transient Object[]...
ArrayList底层源码
12345public abstract class AbstractList<E> extends AbstractCollection<E>implements List<E>{ //外部操作数:记录了数据量变化的次数 //对于数据的更新(添加、删除、清空),modCount就会++ protected transient int modCount = 0;// 2} 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485public class ArrayList<E> extends AbstractList<E> implements List<E>{ //默认容量 ...
LinkList底层源码
123456public abstract class AbstractList<E> extendsAbstractCollection<E>implements List<E> { //外部操作数 protected transient int modCount = 0;//0}public abstract class AbstractSequentialList<E> extends AbstractList<E> {} 12345678910111213141516171819202122232425262728293031323334353637383940414243public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>{ //元素个数 transient int size = 0;//0 ...
Stack底层源码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748public class Vector<E> extends AbstractList<E> implements List<E>{ protected Object[] elementData;//new Object[10]{"杨勇1","杨勇2","杨勇3".....} protected int elementCount;//3 public synchronized void addElement(E obj) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = obj; ...
TreeMap底层源码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>{ //外置比较器 private final Comparator<? super K> comparator; //根节点 private transient Entry<K,V> root;//null //元素个数 private transient int size =...
TreeSet底层源码
123456789101112131415161718192021222324252627public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>{ //外置比较器 private final Comparator<? super K> comparator; public TreeMap() { comparator = null; } public TreeMap(Comparator<? super K> comparator) { this.comparator = comparator; } //key - new Student("麻生希", '女', 25, "2301",...
Vector底层源码
12345public abstract class AbstractList<E> extends AbstractCollection<E>implementsList<E> { //外部操作数 //涉及到元素个数变化(添加、删除、清空)时,外部操作数就会++ protected transient int modCount = 0;//3} 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758public class Vector<E> extends AbstractList<E> implements List<E>{ //数据容器 protected Object[] elementData;//new...