
JavaSE
文章平均质量分 83
Java基础学习笔记。
暗中映秀
这个作者很懒,什么都没留下…
展开
-
Java 接口
修饰符 ] interface 接口名称 extends 父接口 1 , 父接口 2 , . . . {// 静态常量 // 抽象的实例方法(普通方法) // 内部类、内部接口、内部枚举(都是静态的) // 默认方法(实例方法,由接口的实现类的实例来调用)、类方法(静态方法) // 私有方法(java 9 提供) }修饰符:public / 省略(包权限)接口名称和类名遵循相同命名规则类是单继承:一个类的直接父类只能有一个接口是多继承:一个接口的直接父类可以有多个。原创 2023-02-20 08:55:02 · 347 阅读 · 0 评论 -
Java 内部类
当静态内部类对象存在时,并不存在一个被它寄生的外部类对象,静态内部类对象只持有外部类的类引用,没有持有外部类对象的引用。在非静态内部类里可以直接访问外部类的私有成员,是因为在非静态内部类的对象里保存了一个它所寄生外部类对象的引用。当调用非静态内部类的实例方法时,必须有一个非静态内部类的实例,非静态内部类实例必须寄生在外部类实例里。如果把一个内部类放在方法里定义,那这个内部类就是一个局部内部类,局部内部类仅在方法里有效。把 A 类定义在 B 类的内部,A——内部类(嵌套类),B——外部类(宿主类)。原创 2023-02-20 08:52:13 · 1506 阅读 · 0 评论 -
Java 抽象类
抽象方法和抽象类的学习原创 2023-02-12 18:06:18 · 511 阅读 · 0 评论 -
Java 初始化块
与实例初始化块类似的是,系统在类初始化阶段执行类初始化块时,不仅会执行本类的类初始化块,而且还会一直上溯到 Object 类的类初始化块(如果有),先执行 Object 的类初始化块(如果有),然后执行其父类的类初始化块 ……,而且系统会先执行其父类中的实例初始化块(如果有)和构造器,一直追溯到祖宗类 Object 类,先执行 Object 类的实例初始化块(如果有)、构造器,最后才执行该类的实例初始化块(如果有)和构造器,返回该类的对象。实例初始化块负责对对象执行初始化。类初始化块负责对类初始化。原创 2023-02-12 12:10:04 · 1047 阅读 · 0 评论 -
Java 四种权限修饰符
能用 private 就用 private,不行就放大一级,用 package(default),再不行就用protected,最后用 public。权限大小:private < (default) < protected < public。public:公共访问,权限最大,无论同不同包,是不是子类都能访问。3、会被子类继承重写的方法,通常使用 protected。protected:子类才能访问,无论同不同包。一个原则:该暴露的就暴露,该隐藏的就隐藏。(default):本包下的才能访问。原创 2023-02-11 19:11:44 · 264 阅读 · 0 评论 -
Java 多态
多态(Polymorphism)按字面意思理解就是“多种形态”,即一个对象拥有多种形态。即同一种方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。多态存在的条件有继承(基类)或 实现 (接口) 关系子类重写父类的方法父类引用变量指向子类对象==注:==多态是针对实例方法的多态,不是属性的多态,也不是类方法的多态。java 引用变量分为两种类型,一种是编译时类型,一种是运行时类型。编译时类型由声明该变量时使用的类型决定;原创 2023-02-11 19:11:13 · 882 阅读 · 0 评论 -
Java 自动装箱与拆箱
上面的代码中 i1 和 i2 的数值为 100,因此会直接从 cache 中取已经存在的对象,所以 i1 和 i2 指向的是同一个对象,而 i3 和 i4 则是分别指向不同的对象。从反编译得到的字节码内容可以看出,在装箱的时候自动调用的是 Integer.valueOf() 方法。装箱过程是通过调用包装类的 valueOf 方法实现的,而拆箱过程是通过调用包装类的 xxxValue方法实现的(xxx 代表对应的基本数据类型)。Double、Float 的 valueOf 方法的实现是类似的。转载 2023-02-09 21:32:59 · 191 阅读 · 0 评论 -
Java 继承(扩展)
什么是继承?extends 其实是扩展的意思继承是类与类之间的一种关系,对某一批类中共有的方法和属性进行共性抽取,抽取出来的这个类也就是被继承的类称之为:父类 / 基类 / 超类;继承的类称之为:子类 / 派生类为什么要使用继承?(或者说使用继承解决了什么问题?提高代码复用率继承是多态的前提,没有继承即没有多态。继承设计规范子类们相同特征(共性属性、共性方法)放在父类中定义,子类独有的属性和行为应该定义在子类自己里面。为什么这样做?原创 2023-02-09 17:02:52 · 1164 阅读 · 0 评论 -
Java构成覆盖重写的条件(图文)
子父类之间具有继承关系必须保证子父类之中的方法名称、参数列表都要相同与方法重载相区别子类方法的返回类型和父类的返回类型一样,或者是父类返回类型的子类。子类方法的权限必须大于等于父类方法的权限。小扩展提示:public > protected > (default) > private备注:(default) 不是关键字 default,而是什么都不写,留空。重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。原创 2023-02-05 11:19:50 · 421 阅读 · 0 评论 -
为什么重写了 equals 还要重写 hashCode
对于引用类型来说,如果不重写 equals 方法,即使调用 equals 方法,默认还是是通过 == 来比较两个对象的地址。两个对象的 hashCode 值如果相同,则对象可能相同,也可能不同,需要用 equals 去比较。Set 集合中存储三个同名的对象,输出查看集合的大小以及存储对象的内容。期待的应该存储是一个对象,但却存储了三个,HashSet 没有去重。这样就如我们所期待的那样,向集合中存储多个相同的对象,只保留一个。两个对象的 hashCode 值如果不同,则对象一定不同。原创 2023-02-04 22:01:21 · 577 阅读 · 0 评论 -
Java 基础语法
Java是强类型语言——变量的使用要严格符合规定,所有的变量都要先定义后才能使用。基本数据类型(四类八种)整数:byte、short、int(默认)、long浮点数:float、double(默认)布尔:boolean字符(单个):char引用数据类型类接口数组拓展// 整数扩展 进制 int num1 = 0b10;// 二进制 0b int num2 = 010;// 八进制 0 int num3 = 0x10;// 十六进制 0x int num4 = 10;原创 2023-02-02 21:24:38 · 880 阅读 · 0 评论 -
Java基础:交换两数的方法
文章目录1、【错误示范】1.1、直接交换1.2、包装类交换2、【正确示范】2.1、数组 + 临时变量2.2、数组 + 加减计算2.3、数组 + 异或运算2.4、成员变量3、总结Java基础:交换两数的方法Java 在有参函数调用时,如果参数传递的是基本类型,进行的是 值传递,而不是 地址 或 引用传递。1、【错误示范】1.1、直接交换public class SwapNumber { public static void swap(int a, int b) { int原创 2020-09-17 20:26:38 · 7178 阅读 · 1 评论