
Java基础
HaoZz_96
这个作者很懒,什么都没留下…
展开
-
给HashMap存放相同hash的元素,多少个才会使数组变成红黑二叉树
HashMap底层是数组+链表的方式HashMap具有唯一性每个链条默认情况下在放入第九个元素后,该链条就会自动从Node变成TreeNode但情况真的是这样吗?实际测试public class TextMap { public static void main(String[] args){ HashMap<User, User> map = new HashMap<User, User>(); for(int i = 1; i &转载 2020-07-27 16:23:13 · 584 阅读 · 0 评论 -
Java集合之HashMap源码解析【面试题】
前言在比较ArrayList和LinkedList的区别时,我们知道:数组,元素顺序存放,查找快,删除慢,插入慢。双向链表, 元素随机存放,查找慢,删除快,插入快HashMap就是综合以上两种数据结构的优点,即数组+单向链表的方式实现,它是一种K-V键值对的存储结构HashMap的数据结构Node<K,V>是HashMap的基本元素单位,Nodeshi是一个静态内部类,源码如下:static class Node<K,V> implements Map.En原创 2020-07-27 15:36:29 · 183 阅读 · 0 评论 -
Java基础之克隆方法
什么是克隆方法对象复制:简单的对象赋值语句“=”只是简单的传递地址值,并没有实现创建新对象并复制内容。因此要实现这一功能需要使用克隆方法。根据对象是否有引用类型分为深克隆和浅克隆。1.浅克隆克隆必须实现Cloneable接口,并重写clone()方法public class StudentImpl implements Cloneable{ private String name; private int id; @Override public Object clo原创 2020-06-15 15:00:54 · 342 阅读 · 0 评论 -
什么是动态代理,一起来认识
代理模式是常见的一种设计模式。它为一个对象提供了一个“替身”,程序可以通过代理对象间接访问被代理对象。同时还可以在目标对象的基础上增加额外功能。根据代理对象创建时间的不同,分为静态代理和动态代理。1.静态代理静态代理类在编译前就已经生成,它和被代理类实现了同一接口。其内部声明了一个成员属性存放被代理对象,重写了被代理类方法代替其完成行为。示例如下:public interface Person { //交班费 void giveMoney();}public class Stude原创 2020-06-15 14:11:04 · 437 阅读 · 0 评论 -
Java反射机制的理解
一. 基础反射可以理解为是Java一种间接操作目标对象的机制,其核心是Java允许动态加载类,即在程序运行时获取类信息并操作内部属性。举个例子,在创建一个Student类对象时,JVM会先去磁盘找到Student.class文件并加载到内存,会在内存中创建一个class对象,该对象就可以用于访问Student类信息和操作类对象。因此反射的本质就是在获取class对象后反向获取Student对象二.应用1.获得Class(1) 对象.getClass()Student stu1 = new Stu原创 2020-06-15 11:43:56 · 557 阅读 · 0 评论 -
String的底层机制
1.源码●初始化public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[]; public String(){ this.value = new char[0]; } }可以看见String类和属性值被声明为final,不可被修改。本质上是一个字符数组。●实例化public String(St原创 2020-06-13 08:44:01 · 636 阅读 · 0 评论