1、静态方法:
1)静态方法代表一种不依靠实例变量也就不需要对象的行为。
2)静态方法通过直接使用类名调用(最常用),非静态方法通过对象的引用变量来调用。
3)可以通过对象的引用变量代替类名调用静态方法(容易造成误解,不常用)。
4)带有静态方法的类通常(虽然不一定是这样)不打算被初始化。
5)静态的方法不能调用(访问)非静态的变量。
原因:因为非静态的变量(实例变量)是归属于某个实例(对象)的,所以尝试在静态方法中访问实例变量时,编译器会抱怨说:“我是属于类的,我可不知道你说的是哪个实例(对象)的变量!”。
6)静态的方法不能调用非静态的方法(原因类似以上第4点)。
7)静态方法中不能使用this关键字(因为this与特定实例相关)。
2、静态变量:
1)静态变量的值对于同类的所有实例都是相同的,即同类的所有实例(对象)都共享同一份静态变量。
2)静态变量:每个类一份;实例变量:每个实例一份。
3)静态变量是在类被加载的时候初始化的。
注:通常Java虚拟机会加载某个类是因为第一次有人尝试创建该类的实例或使用该类的静态方法或变量。
4)静态变量会在该类的任何对象创建之前就完成初始化。
5)静态变量会在该类的任何静态方法执行之前完成初始化。
3、静态常量
1)静态常量:静态的final变量。
2)静态常量的初始化(必须初始化)。
a)在声明的时候:如public static final int PI=3.14。
b)在静态初始化程序(静态代码块)中:如static{...}。
注:静态初始化程序是一段在加载类时会执行的程序代码,他会在其他程序可以使用该类之前执行,所以很适合用来初始化静态的final变量,另外其中只能访问类的静态成员。
c)静态常量的初始化和静态代码块的执行级别是一样的,所以根据他们在代码中的顺序执行。
4、非静态的final变量
1)final变量可以修饰实例变量、局部变量及方法参数。
2)关于不可变性的说明:
a)修饰基本数据类型变量,则变量值不可改变。
b)修饰对象引用类型变量,则该引用不能改变(指向其他对象),但指向的对象内容可以改变。
5、final方法:final修饰的方法表示你不能覆盖掉该方法。
6、final类:final修饰的类表示你不能继承该类,即创建它的子类。
相关推荐
Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...
本文将深入探讨Java中的静态方法和静态变量,揭示它们的工作原理和实际应用。 #### 二、静态特性的概述 在Java中,静态(static)关键字被用来修饰类的成员变量和方法,表示这些成员属于类本身而非类的某个具体...
java学习java中的常量和静态变量
总的来说,静态方法在Java中扮演着重要的角色,尤其在工具类、常量定义和与对象无关的操作中。它们允许我们在不创建对象的情况下执行某些功能,比如`Math.random()`生成随机数,或者`Arrays`类提供的各种数组操作。...
静态成员包括静态变量、静态方法和静态初始化块。 1、静态变量 静态变量是指属于类的变量,它们的值是共享的,所有实例都可以访问到同一个静态变量。在上面的代码中,`static int z;`就是一个静态变量。静态变量是...
在Java中,可以通过`import static`语句来直接导入一个类中的静态成员(包括静态变量和静态方法)。这种方式可以避免重复输入类名,使得代码更加简洁易读。例如,在给定的代码片段中: ```java import static java....
Java中的变量有三种类型:局部变量、成员变量(包括实例变量和静态变量)和全局变量。 1. **局部变量**:在方法、构造器或块内部定义的变量,仅在该范围有效。 2. **实例变量**:属于类的每个对象实例,每个实例都...
3. **静态类**:静态类,也称为工具类,通常包含静态方法和静态变量。它们不能包含非静态成员,也不能被实例化。静态类中的方法可以通过类名直接调用,无需创建对象。 类中的方法也有多种类型: 1. **私有方法**...
// 静态变量 public static int id = 1; // 普通变量 public int usualId = 2; // 静态常量 public static final int finalNextId = 3; // 静态方法 public static void A(){ // 静态方法只能访问静态字
- 静态变量常用于表示类级别的常量,如`public static final`声明的常量。 2. **静态方法(Static Methods)**: - 静态方法属于类,而不是类的实例。它们不能访问非静态成员(因为它们在没有实例的情况下被调用...
- **方法区(Method Area)/元空间(MetaSpace)**:包含类的结构信息,如类名、方法信息、常量池以及静态变量。在Java 8之后,方法区被元空间取代,元空间主要存储类的元数据,使用的是 native 内存。 4. **加载...
下面我们将深入探讨静态方法、静态变量以及静态类等相关的知识点。 1. 静态方法 静态方法是与类关联,而不是与类的实例关联的方法。这意味着我们不需要创建类的实例就可以调用静态方法。它们在内存中只有一份,且在...
- **枚举类型**:Java的枚举类型实际上是一类特殊的类,其中包含了一系列的静态常量,每个常量都是该枚举类型的实例。枚举类中也可以定义类方法和类变量。 - **工具类**:如Collections类,提供了很多静态方法用于...
在这个Java入门教程中,我们将专注于类变量,也就是静态变量,这是在类中使用`static`关键字声明的变量。 类变量(静态变量)的特性: 1. **声明位置**:静态变量必须在类的主体中声明,但不能在方法、构造器或...
静态变量也称为类变量,静态方法也称为类方法。静态变量和静态方法可以直接通过类名调用,不需要通过对象去调用。 一、静态变量的定义和使用 静态变量是属于类的成员变量,它可以被所有对象共享。静态变量的定义...
- 静态变量常用于定义常量或全局变量,例如在程序中设置固定的数值或字符串。 - 如果静态变量前有`private`修饰,那么它只能在本类中访问,不能通过类名在外部直接访问。 2. **静态方法(Static Methods)**: -...
在这个简单的实例中,我们将探讨如何使用反射来获取Java类中的静态变量名及其对应的变量值。这个例子主要涉及到`java.lang.reflect.Field`类和`Class.forName()`方法。 首先,我们要了解`Class.forName()`方法。它...