- 博客(45)
- 收藏
- 关注
原创 JAVA 集合进阶 06 - 09 Map 集合的实现类:HashMap、LinkecHashMap
HashMap 是 Map 里面的一个实现类没有额外需要学习的特有方法,直接使用 Map 里面的方法就可以了。特点都是由键决定的:无序、不重复、无索引HashMap 跟 HashSet 底层原理是一模一样的,都是哈希表结构。
2025-06-04 20:19:43
972
原创 JAVA 集合的进阶 泛型的继承和通配符
泛型不具备继承性但是数据具备继承性泛型中不能写基本数据类型指定泛型的具体类型后,传递数据时,可以传入该类型和他的子类类型如果不写泛型,类型默认是Object泛型的通配符:??extend E?super E定义类、方法、接口的时候,如果类型不确定,就可以定义泛型如果类型不确定,但是能知道是哪个继承体系中的,可以使用泛型的通配符集合进阶-09-泛型的通配符和综合练习_哔哩哔哩_bilibili。
2025-05-30 15:57:49
748
原创 JAVA 常用 API 正则表达式
/ \ 转义字符改变后面那个字符原本的含义//练习:以字符串的形式打印一个双引号//此时\表示转义字符,改变了后面那个双引号原本的含义//把他变成了一个普普通通的双引号而已。// \ 表示转义字符// 路径中的\\ :前面的\是一个转义字符,改变了后面\原本的含义,把他变成一个普普通通的\而己。// .表示任意一个字符System.out.println("你".matches(".."));//falseSystem.out.println("你a".matches(".."));
2025-05-29 17:25:58
660
原创 JAVA 常用 API 01- 06
Object是Java中的顶级父类。所有的类都直接或间接的继承于object类。toString():一般会重写,打印对象时打印属性equals():比较对象时会重写,比较对象属性值是否相同clone():默认浅克隆。如果需要深克隆,则需要重写方法或者使用第三方工具类。Objects 是一个对象工具类,提供了一些操作对象的方法equals(对象1,对象2):先做非空判断,比较两个对象isNull(对象):判断对象是否为空nonNull(对象):判断对象是否不是空。
2025-05-28 16:25:39
945
1
原创 JAVA 面向对象进阶 20-23 内部类
匿名内部类:隐藏了名字的内部类,可以写在成员位置,也可以写在局部位置(即方法内)当方法的参数是接口或者类时,以接口为例,可以传递这个接口的实现类对象,如果实现类只要使用一次,就可以用匿名内部类简化代码面向对象进阶-20-初识内部类_哔哩哔哩_bilibili面向对象进阶-21-成员内部类_哔哩哔哩_bilibili面向对象进阶-23-匿名内部类_哔哩哔哩_bilibili。
2025-05-24 20:54:11
312
原创 JAVA 面向对象进阶 19 接口扩展
private 返回值类型 方法名(参数列表){} (服务于默认方法)范例1: private void show() { }private static 返回值类型 方法名(参数列表){} (服务于静态方法)范例2: private static void method() { }JDK7以前:接口中只能定义抽象方法。JDK8:接口中可以定义有方法体的方法。(默认、静态)JDK9:接口中可以定义私有方法。
2025-05-24 16:07:56
827
1
原创 JAVA 面向对象进阶 18 接口和抽象类的综合案例
乒乓球运动员:姓名,年龄,学打乒乓球,说英语篮球运动员:姓名,年龄,学打篮球乒乓球教练:姓名,年龄,教打乒乓球,说英语篮球教练:姓名,年龄,教打篮球。
2025-05-24 15:03:49
199
1
原创 JAVA 面向对象进阶 17 成员特点和接口的各自关系
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。继承关系,只能单继承,不能多继承,但是可以多层继承。
2025-05-23 19:31:06
319
2
原创 JAVA 面向对象进阶 16 接口
public interface 接口名 {}接口不能实例化接口和类之间是实现关系,通过implements关键字表示public class 类名 implements 接口名{}接口的子类 (实现类)要么重写接口中的所有抽象方法要么是抽象类接口和类的实现关系,可以单实现,也可以多实现。public class 类名implements接口名1,接口名2 {}实现类还可以在继承一个类的同时实现多个接口。public class 类名extends父类implements。
2025-05-23 19:06:19
498
1
原创 JAVA 面向对象进阶 15 抽象类和抽象方法
抽象方法的定义格式:public abstract 返回值类型 方法名(参数列表);抽象类的定义格式:public abstract class 类名0抽取共性时,无法确定方法体,就把方法定义为抽象的。强制让子类按照某种格式重写。抽象方法所在的类,必须是抽象类。
2025-05-23 18:38:45
500
1
原创 JAVA 面向对象进阶 14 权限修饰符和代码块
private私有;默认的只能本包使用;protected受保护的即其他包的子类也能用;如果有重复,可以将重复部分写在一个构造函数内,再用 this 去调用,或者抽成方法,去调用方法。:如果方法中的代码是抽取其他方法中共性代码,这个方法一般也私有。实际开发中,一般只用 private 和 public。代码块的分类:局部代码块,构造代码块,静态代码块。提前结束变量的生命周期(已淘汰)
2025-05-23 16:13:49
284
1
原创 JAVA 面向对象进阶 13 包和 final
包就是文件夹。用来管理各种不同功能的 Java 类包名的规则:公司域名反写+包的作用,需要全部英文小写,见名知意。
2025-05-23 15:10:21
370
1
原创 JAVA 面向对象进阶 09 - 11 多态
同类型的对象,表现出的不同形态表现形式:父类类型 对象名称 = 子类对象;即 Fu f = new Zi();多态的好处:使用父类型作为参数,可以接收所有子类对象。
2025-05-22 20:31:30
862
1
原创 JAVA 面向对象进阶 08 继承中的构造方法、this、super
子类不能继承父类的构造方法,但是可以通过 super 调用子类构造方法的第一行,有一个默认的 super();默认先访问父类中无参的构造方法,再执行自己,如果想要方法文父类有参构造,必须手动书写。
2025-05-22 16:35:55
342
原创 JAVA 面向对象进阶 07 继承中成员变量和成员方法的访问特点
现在有三种动物:哈士奇、沙皮狗、中华田园犬。沙皮狗:吃饭(吃狗粮、吃骨头)、喝水、看家。@Override 是放在重写后的方法上。请按照继承的思想特点进行继承体系的设计。哈士奇:吃饭(吃狗粮)喝水、看家、拆家。中华田园犬:吃饭(吃剩饭)、喝水、看家。子类出现了和父类中一模一样的方法声明。建议:重写的方法尽量和父类保持一致!名称、形参列表必须与父类中的一致。暂时不考虑属性,只要考虑行为。只能重写虚方法表中的方法。虚方法表中的父类方法。
2025-05-22 11:08:39
908
原创 JAVA 面向对象进阶 06 子类到底能继承父类中的哪些?
误区1:父类私有的东西,子类就无法继承误区2:父类中非私有的成员,就被子类继承下来了。
2025-05-21 22:23:44
420
1
原创 JAVA 面向对象进阶 01- 03 static
static 表示静态,是 Java 中的一个修饰符,可以修饰成员方法,成员变量静态和类有关(随着类的加载而加载) 非静态和对象有关非静态的普通成员变量、成员方法,他们调用,都需要通过对象去调用而静态由于共享,是没有具体的对象的,那么他就不能调用普通的变量、方法4 重新认识 mainpublic: 被JVM调用,访问权限足够大static: 被JVM调用,不用创建对象,直接类名访问。因为main方法是静态的,所以测试类中其他方法也需要是静态的。
2025-05-21 17:42:19
1074
2
原创 JAVA 字符串 12 字符串相关类的底层原理
如果没有变量参与,都是字符串直接相加,编译之后就是拼接之后的结果会复用串池中的字符串。如果有变量参与每一行拼接的代码,都会在内存中创建新的字符串,浪费内存。如果很多字符串变量拼接,不要直接+。在底层会创建多个对象,浪费时间,浪费性能。所有要拼接的内容都会往 StringBuilder 中放,不会创建很多无用的空间,节约内存默认创建一个长度为16的字节数组添加的内容长度小于16,直接存添加的内容大于16会扩容(原来的容量*2+2)如果扩容之后还不够,以后都会以实际长度为准。
2025-05-19 16:36:35
749
原创 JAVA 字符串 04 字符串的比较
对于基本数据类型:== 比较的是具体的数据值对于引用数组类型:== 比较的是地址值注意:直接赋值的字符串存储在 串池中,new 出来的字符串存储在 堆里边。
2025-05-18 20:41:54
353
原创 JAVA 字符串 01-03 概述
java.lang.String类代表不可变的字符串,定义在java.lang包中,无需导包即可使用。创建String对象有两种方式:直接赋值和new关键字。直接赋值时,系统会检查字符串池中是否存在相同内容,存在则复用,不存在则创建新对象。使用new关键字时,无论字符串池中是否存在相同内容,都会创建新对象,可能导致空间浪费。String对象创建后内容不可更改,但可以通过字符数组或字节数组构造新的字符串对象,适用于修改字符串内容或字节信息转换的场景。
2025-05-18 20:15:27
310
原创 JAVA 面向对象 07 三种情况的对象内存图
从JDK8开始,取消方法区,亲新增元空间,把原来方法区的多种功能进行拆分,有的功能放到了堆中,有的功能放到了元空间中。注意 当栈中的方法执行完毕,没有变量再指向 堆内存 中的对象时,堆中的对象也会被自动回收。stu1 = null 会将地址值赋为空值。右边堆内存中没人用了就会被回收。具体叫元空间还是方法区不重要。两个变量指向同一片内存。方法执行完毕,要出栈。
2025-05-17 15:01:49
501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人