随笔分类 - java学习
摘要:1.问题 如何遍历HashMap,以及其中一种遍历方式中,我们为何需要先转为Map.Entry后,再遍历Map呢?而且是比较推荐的方式? 2.解决 参考:关于HashMap遍历,为什么要用entry HashMap中推荐使用entrySet方式遍历Map类集合KV而不是keySet方式遍历 2.1
阅读全文
摘要:1.问题 我们知道Set集合必须要重写HashCode和equals方法,原因是什么呢? 2.解决 最重要的原因是Set集合有不包含重复元素的特性!!! 这个重复元素由谁来定义他是否重复呢?就是由类中的HashCode和equals方法, 先由HashCode判断,但是存在Hash冲突情况,一个桶可
阅读全文
摘要:1.问题 向上转型的意义是什么? 向下转型又有什么条件? 2.解决 参考:聊聊java的向上转型与向下转型 向上转型 向上转型是用来表现新类和基类之间的关系。在传统中,由导出类转型成基类,在继承图中是向上移动的。因此称作向上转型。由于向上转型是从一个较专用类型向较通用类型转换,所以总是安全的。也就是
阅读全文
摘要:1.题目介绍 关于类中加载顺序的说法,以下说法正确的有(A,B,D) A.父类中的静态代码块先于子类中的静态代码块 B.父类中的构造方法先于子类中的构造方法 C.子类中的非静态代码块会执行,而父类不会 D.子类中的构造块先于子类中的构造方法 2.题解 参考链接:Java代码块与构造方法执行顺序 静态
阅读全文
摘要:这里简要说明这四个区域通常用于存储的变量类型: 栈区(Stack): 存放局部变量、方法参数、返回地址等。 变量的生命周期与其所在的方法(函数)的调用周期一致。 堆区(Heap): 主要用于动态分配内存,存放由 new 关键字创建的对象和数组。 变量的生命周期不受方法调用的限制,需要手动释放内存。
阅读全文
摘要:在Java中,父类引用对象调用子类对象的原理涉及到两个关键概念:编译时类型和运行时类型。 编译时类型(Compile-time Type): 编译时类型是指在编写代码时,你所声明的引用的类型。例如,如果你有一个声明为Animal animal的引用,编译时类型就是Animal。 运行时类型(Runt
阅读全文