🗒️ jdk的版本切换

type
status
date
slug
summary
tags
category
icon
password
本文的所有操作均在Macos 14.4.1下完成。

0、管理jdk版本的时候的一些常用操作

查看当前Java运行时环境(JRE)版本
🗒️ Javadoc

type
status
date
slug
summary
tags
category
icon
password

简介

Javadoc是专为Java语言设计的文档生成工具。它从Java源代码文件中的注释自动生成HTML格式的API文档,可以让没参与该项目的人快速上手这个项目。Javadoc是Java开发工具套件(JDK)的一部分。
【注意】
只有纯的Java项目(项目中的代码都是Java代码)才会用到javadoc生成API文档。javadoc 生成的文档帮助开发者理解和使用 API,而不需要深入研究源代码。
🗒️ 下载工具时的常见问题

type
status
date
slug
summary
tags
category
icon
password

案例1:

下图是log4j的下载页面
notion image

binary与source

🗒️ 配置文件:xml、properties

type
status
date
slug
summary
tags
category
icon
password
特性
.xml文件
.properties文件
结构
树形结构(可以容纳更复杂的配置和层次结构)
键值对结构
灵活程度
较灵活,支持多种操作
较简单,只能赋值,不能够进行其他的操作
🗒️ 数值处理: Math、Biginteger、 BigDecimal

type
status
date
slug
summary
tags
category
icon
password

什么是Math类?

Math 类提供了一系列静态方法用于执行基本的数学运算,使得进行科学计算和常规数值处理变得更加方便。
以下是对 Math 类提供的关键功能的详细介绍:
🗒️ java异常处理

type
status
date
slug
summary
tags
category
icon
password

异常体系结构

在Java的核心类库中,异常处理机制的体系结构基于几个关键类,它们分别是ObjectThrowableErrorException。这个体系结构不仅支持错误的捕获和处理,也是Java语言健壮性特征的一个重要组成部分。
  • Object:位于Java类层次结构的顶部,Object是所有Java类的根类。它提供了一些基本方法,这些方法对所有Java对象都是可用的。虽然Object类本身与异常处理直接相关性不大,但由于Throwable类继承自Object,因此它是整个异常体系结构的基础。
  • Throwable:是Java中所有错误和异常的超类。Throwable确保只有那些继承自它的类型才能被Java虚拟机(JVM)抛出和捕获。它有两个主要的子类:ErrorException,它们分别代表了不同类型的异常情况。
🗒️ 重写toString()

type
status
date
slug
summary
tags
category
icon
password

什么是toString()?

toString()方法在Java中是一个特殊的方法。它被定义在Object类中,而Object类是所有Java类的父类。这意味着每个Java对象都有一个toString()方法。此方法的主要用途是返回一个代表对象的字符串。当您尝试打印一个对象或者以字符串的形式表达一个对象时(例如,在字符串连接操作中),Java自动调用该对象的toString()方法。

重写toString()

重写toString()指的是在自定义类中提供toString()方法的一个新的实现版本。通过重写toString()方法,当对象被打印时(例如使用System.out.println()),可以返回一个包含对象属性值和其他重要状态信息的字符串,这使得对象的状态在打印或记录时更容易被人理解。这对于调试非常有帮助,因为你可以快速看到对象的当前状态而不是仅仅一个哈希码。此外,这也使得对象在日志记录、消息传递或简单的输出时更加直观。
🗒️ static关键字

type
status
date
slug
summary
tags
category
icon
password

static存在的主要意义

static的主要意义在于创建独立于具体对象的域变量或者方法,这意味着即使没有创建对象,也能使用属性和调用方法。如果一个变量没有static,又不是局部变量,那么它就是成员变量。原则上,每一个实例都有一份成员变量的拷贝。static存在的意义就在于打破这种(成员)变量对实例的依赖,从而独立于实例而存在,成为静态变量。静态变量在需要统计实例数量的情况下常用(比如单例模式和多例模式),因为静态变量独立于实例存在,所以各个实例可以共享一个(静态)变量,用作实例的计数器。
static关键字的另一个关键作用是用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序执行每个static块,并且只会执行一次。static块用来优化程序性能的原因在于它的特性:只会在类加载的时候执行一次。因此,很多时候会将需要进行一次性初始化操作的代码放在static代码块中执行。
static常见的应用场景包括:修饰成员变量、修饰成员方法、修饰代码块(静态代码块)、修饰类(仅限静态内部类)、静态导入(import static)。
🗒️ 辨析:成员变量、静态变量、局部变量

type
status
date
slug
summary
tags
category
icon
password
通过一个具体的例子可以说明成员变量、局部变量和静态变量之间的区别:
在这个例子中,我们定义了三种类型的变量:

【成员变量(Instance Variables)】

🗒️ 代码块

type
status
date
slug
summary
tags
category
icon
password
在Java中,代码块是一种被大括号 {} 包围的代码片段。
【❖ 代码块≠方法】
代码块不是方法。在Java中,方法是具有名称、返回类型、可能的参数以及围绕这些参数的一组语句,用于执行特定的操作。相比之下,代码块通常是指一组被大括号 {} 包围的语句,它们可以存在于方法内部,但本身并不构成一个完整的方法。
【❖ try { ... } catch { ... }不算是代码块】
🗒️ 向上转型与向下转型

type
status
date
slug
summary
tags
category
icon
password
Java中的向上转型(Upcasting)和向下转型(Downcasting)是面向对象编程中类型转换的两个概念。

向上转型(Upcasting)

定义: 向上转型是将子类的引用赋给父类对象的过程。这是一种自动类型转换,也可以称为隐式类型转换。
notion image
🗒️ 理解「多态」

type
status
date
slug
summary
tags
category
icon
password
所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样以来,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变。不修改代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

多态的实现

在 Java 语言中,实现多态机制主要依赖于三个必要条件:继承、重写和向上转型。
  1. 继承(Inheritance):多态性要求必须存在有继承关系的子类和父类。只有存在这样的继承关系,子类才能继承父类的方法,并有机会重写它们。
More