Java基础知识
文章平均质量分 69
Java基础知识
Coudy Hou
这个作者很懒,什么都没留下…
展开
-
Java基础01-封装、继承、多态、重载和重写、泛型
就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。new 出来的对象只是在内存重开辟了一个存储空间,可以存储任何类型对象,而真正设计类型检查的是它的引用,实质上是使用它引用来调用它的方法。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数。在步创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。类型检查是针对引用的,用这个引用调用泛型方法,就会对这个引用调用的方法进行类型检测,而无关它真正引用的对象。原创 2023-09-22 17:43:39 · 74 阅读 · 0 评论 -
Java基础02-equals&hashCode&引用&拷贝&异常类
Java基础-equals&hashCode&引用&拷贝&异常类原创 2023-09-25 09:17:49 · 31 阅读 · 0 评论 -
Java基础03-String、StringBuilder和StringBuffer对象比较
String是不可变的对象,内部维护的char[]数组长度不可变,为final修饰,不存在扩容。在每次对String对象进行更新时,都是生成一个新的String对象,然后将指针指向新的String对象。StringBuilder类内部维护的是可变长度的char[]数组,初始化数组容量为16,存在扩容;由于在调用append方法拼接字符串和扩容时,没有用synchronize关键字修...原创 2020-01-20 18:01:20 · 211 阅读 · 1 评论 -
Java基础04-集合类
如果扩容后的集合长度,大于最大的数组长度分配值 (Integer.MAX_VALUE - 8),则,大容量扩容到Integer.MAX_VALUE长度。a>b,则调用grow()进行扩容。当多个线程put值时,假如同时去获取同一位置上链表的头节点,当线程A写入新的头节点后,线程B写入新的头节点;主要原因是在于进行扩容时,会将数据从旧的Hash表迁移到新的Hash表中,同时会调转数组中链表的顺序。拉链法解决冲突:创建一个数组链表,数组中元素是一个链表,若遇到哈希冲突,则将冲突的值加到链表中即可。原创 2023-09-28 09:49:04 · 27 阅读 · 0 评论 -
Java基础05-类加载过程
使用java.lang.reflect 包的方法对类进行反射时(如:Class.forName("...").newInstance()),如果类未初始化,需先初始化。如果父类加载器还存在其父类的加载器,则进一步向上委托,一直递归,直到请求到达顶层的启动类加载器。在JVM生命周期中,由JDK自带的类加载器负责加载的JDK提供的类,是不会被回收的。负责加载Java的扩展库(加载JAVA_HOME/jre/ext/*.jar中的类)。通过类的加载器,使用类的完全限定名,查找和导入class文件,加载到内存中;原创 2023-10-07 09:12:57 · 24 阅读 · 0 评论 -
Java基础06-反射和代理
Java反射和代理原创 2023-09-22 18:15:18 · 85 阅读 · 0 评论 -
Java基础07-多线程
Java 多线程,线程池,四种线程池,ThreadPoolExecutor,ThreadLocal,TransmittableThreadLocal原创 2023-10-09 09:15:19 · 25 阅读 · 0 评论