Java常见知识点总结

1 重载 && 重写

重载发生在同一个类中方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。

重写发生在父子类中方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。

2 初始化顺序

1137eafa-f5cc-43da-8eb9-00c46f911c0c

静态属性初始化 静态代码初始化 普通属性初始化 普通方法初始化 构造函数初始化

3 可变参数列表

36fc1a64-13c1-44a6-841c-306ca17a76ee

4 Java 面向对象编程三大特性: 封装 继承 多态

封装

封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

继承

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。

关于继承如下 3 点请记住:

  1. 子类拥有父类非 private 的属性和方法。
  2. 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
  3. 子类可以用自己的方式实现父类的方法。

多态

所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
在 Java 中有两种形式可以实现多态:

继承(多个子类对同一方法的重写)和接口(实现接口并覆盖接口中同一方法)。

5 异常

image-20210613094144676

常见的Exception

image-20210613095619773

6 Java内存模型

image-20210613100000483

7 集合

326682ed-a78a-412a-bdc8-c1d7202728ff

8 泛型

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

泛型类

泛型类加到类上面,表示这个类的类型

常见的集合类都是泛型类

f50f30d7-0a3c-4fd5-b1e7-2c287536280a

泛型接口

31a6d8c4-db8c-419c-b7fd-2bdcaf5d1511

泛型方法

b7488a39-e100-40cf-bfb5-4ea3d72e980f

泛型通配符

65b194ef-9d20-4509-b2ff-0182696a13e7

上界通配符:<? extends ClassType>

下界通配符:<? super ClassType>

9 反射

Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。

Java反射机制主要提供以下几种功能

  • 在运行时判断任意一个对象所属的类
  • 在运行时构造任意一个类的对象
  • 在运行时判断任意一个类所有的成员变量和方法
  • 在运行时调用任意一个对象的方法

Class类

Filed类

Method类

ClassLoader类

10 枚举

11 I/0

image-20210613131336906

根据操作对象区分

image-20210613131418796

12 接口和抽象类的区别

  • 一个类可以实现多个接口,单最多只能继承一个抽象类
  • 抽象类可以包含具体方法,接口的所有方法都是抽象方法
  • 抽象类可以声明和使用字段;接口则不能,但可以创建静态的final常量
  • 抽象类的方法可以是public、private、protected和default,接口的方法都是public
  • 抽象类可以定义构造函数,接口不可以

13 == 与 equals

== : 判断两个对象的地址是否相等。即,判断两个对象是不是同一个对象(基础数据类型比较的是值,引用数据类型比较的是内存地址)

equals():判断两个对象是否相等。分为两种情况

  • 情况1:类没有重写equals()方法。则通过equals()比较该类的两个对象时,等价于通过“==”比较两个对象。
  • 情况2:类重写了equals()方法。则按照重写的逻辑比较该类的两个对象。
posted @   iforeverhz  阅读(189)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示