![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 53
嘻嘻作者哈哈
喜欢折腾技术。寒窗苦读无人晓,一朝成名天下知。
展开
-
Java中不能被子类重写的父类结构举例(static、final、private、属性)
一、理论Java中使用static、final、private修饰的方法能被子类继承,但不会重写。此外,属性也能继承,但不能重写。属性和static修饰的方法。在子类中如果又定义了一份,那么从父类继承来的这些结构会被隐藏,存在2份。此时的属性包括普通属性、static修饰、final修饰、private修饰的。隐藏的结构采用静态绑定机制进行调用。在定义对象/变量时,等号左边的是编译类型,等号右边时运行类型。静态绑定机制:在编译期间就能确定调用子类还是父类的结构。等号左边的类型是父类就调用父类的结原创 2022-02-08 19:54:09 · 4040 阅读 · 0 评论 -
Java自定义类创建对象数组并赋值
一、起因 采用下面的代码为对象数组里面的每个元素的字段赋值时报错。public class StudentArray { public static void main(String[] args){ Student[] stuArr = new Student[5]; //创建对象数组,没有显式初始化,stuArr存储地址 for(int i = 0; i < stuArr.length; ++i){原创 2021-12-22 16:54:51 · 7994 阅读 · 1 评论 -
Java集合类使用场景比较(选择对应的类)
一、先判断存储类型(一)单列对象,一组数据:基于Collection接口元素是否重复允许重复:List接口实现类增删业务多:LinkedList查改业务多:ArrayList不允许重复:Set接口实现类无序:HashSet有序:TreeSet插入和取出顺序一致:LinkedHashSet线程是否安全线程不安全,适用单线程:LinkedList、ArrayList、HashSet、TreeSet、LinkedHashSet线程安全,适用多线程:Ve原创 2021-08-05 23:59:34 · 276 阅读 · 0 评论 -
Java中HashSet存储内容相同的对象的一些方法
一、实现代码@SuppressWarnings({"all"})public class Homework06 { public static void main(String[] args) { //第一部分 HashSet hashSet = new HashSet(); Person p1 = new Person(1001, "AA"); Person p2 = new Person(1002, "BB"); ha原创 2021-08-05 23:50:27 · 1314 阅读 · 1 评论 -
Java中HashSet与TreeSet去重机制比较
一、HashSet去重(一)原理描述: hashCode() + equals()。先比较hash值,再比较数据。底层先通过存入对象,进行运算得到hash值,通过hash值找到对应的索引(在table中的位置),如果发现table索引所在的位置没有数据,则直接存入对象;如果有数据,则遍历该位置对应的链表,用equals方法比较新对象的数据与链表的每一个元素对应的数据是否一样,如果不一样就再链表尾部插入,如果一样就不插入。(二)关键代原创 2021-08-05 22:46:07 · 685 阅读 · 0 评论 -
Java中TreeSet插入自定义的数据类型(类)
一、问题引出@SuppressWarnings("all")public class Homework05 { public static void main(String[] args) { TreeSet treeSet1 = new TreeSet(); treeSet1.add(new Person1("jack")); //抛出异常 //异常原因:自定义类Person没有实现Comparable接口,同时TreeSet也是采用无原创 2021-08-05 01:26:04 · 597 阅读 · 1 评论 -
Java中String创建的字符串对象内存分配测试
一、创建String对象的两种常用方法比较举例说明String str1 = "Java天下第一"; //方法1String str2 = new String("Java天下第一"); //方法2System.out.println(str1 == str2); //比较地址,falseSystem.out.println(str1 == str2.intern()); //true区别2.1 方法1中,首先会去JVM的常量池里查找是否有存储"Java天下第一"的地址空间。如果有则直原创 2021-07-27 22:35:47 · 336 阅读 · 4 评论 -
Java匿名内部类
语法:new 类或接口(参数列表){ //匿名内部类代码}一、基于接口的匿名内部类原理:用类来实现接口public class AnonymousInnerClass { public static void main(String[] args) { //测试匿名内部类 Outer04 outer04 = new Outer04(); outer04.method(); }}interface A_ { void cry原创 2021-07-24 11:19:34 · 150 阅读 · 0 评论 -
Java中类创建对象时的代码执行顺序
一、类的五大成员:属性、方法、构造器、代码块、内部类。二、创建对象(一)代码执行顺序{ (1) 父类的静态属性初始化和静态代码块 (2) 子类的静态属性初始化和静态代码块 (3) 父类普通属性初始化和普通代码块 (4) 父类构造器显示代码 (5) 子类普通属性初始化和普通代码块 (6) 子类构造器显示代码}即(1) 先加载类 ① 加载父类:父类的静态 ② 加载子类本身:子类本身的静态(2) 创建对象 ① 加载父类非静态 ② 加载父类构原创 2021-07-24 10:36:52 · 1255 阅读 · 0 评论 -
Java成员方法传参机制理解
一、基本数据类型基本数据类型采用值传递的模式,形参的改变不影响实参。public class MethodParameter01 { public static void main(String[] args){ int a = 10; int b = 20; AA t = new AA(); t.swap(a, b); //基本数据类型,传递的是值(值拷贝),形参的改变原创 2021-07-06 22:08:02 · 190 阅读 · 1 评论