大家都知道,static修饰的变量在类实例之前就已经分配内存,
昨天去某公司面试,突然遇到此问题,心里有些发虚,回来测试了一下
public class StaticTest {
public static byte a1;
public static short a2;
public static int a3;
public static long a4;
public static char b;
public static double c;
public static float d;
public static boolean e;
public static String f;
public static Object g;
public static int[] a_h;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("static byte a1------"+a1);
System.out.println("static short a2-----"+a2);
System.out.println("static int a3-------"+a3);
System.out.println("static long a4------"+a4);
System.out.println("sstatic char b------"+b);
System.out.println("static double c-----"+c);
System.out.println("sstatic float d-----"+d);
System.out.println("static boolean e----"+e);
System.out.println("static String f-----"+f);
System.out.println("static Object g-----"+g);
System.out.println("static int[] a_h-----"+a_h);
}
}
打印结果为:
static byte a1------0
static short a2-----0
static int a3-------0
static long a4------0
sstatic char b------
static double c-----0.0
sstatic float d-----0.0
static boolean e----false
static String f-----null
static Object g-----null
static int[] a_h-----null
若变量前无static修饰,并且没有对变量进行初始化,例如:
public class noStaticTest {
public byte a1=1;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("static byte a1------"+a1);
}
}
编译器会编译不通过:Cannot make a static reference to the non-static field a1
分享到:
相关推荐
Java中的`static`关键字是编程中的一个重要概念,它在Java语言中扮演着多个角色,尤其在处理类和对象时起到关键作用。`static`关键字可以用来修饰成员变量、方法、代码块以及内部类,每种情况都有其特定的含义和用途...
final 关键字在 Java 中有多种用法,包括修饰变量、方法、类等。下面是 final 关键字的各种用法: 1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成了一个常量。注意,系统不会默认为...
本文详细介绍了Java中的`static`属性,包括静态成员变量、静态方法以及静态语句块的概念和使用方法。通过具体的代码示例,我们不仅了解了`static`关键字的基本用法,还深入探讨了静态成员变量如何在整个类之间共享,...
Java中的`static`关键字是用来声明静态变量或静态方法的,它是面向对象编程中非常关键的一个概念。静态变量属于类,而不是类的实例,这意味着它们在内存中只有一份拷贝,所有的类实例共享这个相同的变量。当我们声明...
Java中的成员变量在定义时可以有默认的初始值,如下所示: - 整型(int, byte, short, long):0 - 浮点型(float, double):0.0f, 0.0d - 字符型(char):'\u0000' (空字符) - 布尔型(boolean):false - 引用...
final 关键字在 Java 中用于修饰变量、方法和类,final 关键字可以用于: 1. 修饰变量:final 变量的值不能被修改 2. 修饰方法:final 方法不能被子类 override 3. 修饰类:final 类不能被继承 例如,我们可以使用...
Java中的`static`关键字在编程中扮演着至关重要的角色,它是Java类定义的一部分,用于修饰类的成员变量、成员方法以及代码块。下面我们将详细探讨`static`变量、`static`方法以及`static`代码块的作用和用法。 1. *...
`static`可以修饰变量、方法和嵌套类。 1. `static`变量:这些变量被称为静态变量或类变量,它们是所有对象共享的,只有一份存储。在类加载时初始化,可以通过类名直接访问,无需创建对象。 2. `static`方法:静态...
在Java中,某些修饰符可以组合使用,如`public static`、`protected final`等,以达到更精细的控制效果。例如,`public static`方法表示该方法是公共的且与类实例无关,而`protected final`变量则表示受保护的且不可...
在Java编程语言中,`static`、`this`、`super`和`final`是四个非常重要的关键字,它们各自有着特定的用途和含义。 1. **static**: 静态关键字`static`用于声明类级别的变量和方法,即静态变量和静态方法。静态变量...
`static`是Java语言中的一个关键字,主要用来修饰类成员(变量、方法或代码块),其核心功能在于定义类级别的共享属性。通过使用`static`,可以实现对类属性和方法的共享访问,而无需创建类的实例。这在实际编程中...
总结起来,`static`关键字在Java中用于创建类级别的变量和方法,允许在不创建对象的情况下访问和操作它们,从而提高代码的效率和灵活性。理解和正确使用`static`关键字是编写高效、可维护的Java代码的关键。
这些块通常用于设置`static`变量的初始值: ```java public class MyClass { static int value; static { value = 42; System.out.println("Static block executed."); } } ``` 在这个例子中,`static`代码块...
Java中的关键字`static`是一个非常重要的概念,它用于创建类级别的变量和方法,而不是局限于对象实例。理解`static`的用法和含义是提升Java编程技能的关键。 首先,`static`意味着“全局”或“静态”。在Java中,...
1. **静态变量**:`static`修饰的变量称为静态变量,它们属于类,而不是类的任何实例。所有实例共享同一个静态变量的值。 ```java class MyClass { static int count = 0; // 类级别的计数器 } ``` 2. **静态...
static 关键字是 Java 中的一种访问修饰符,用于修饰变量、方法和块,下面是 static 关键字的详细解释: 1. static 变量 static 变量是属于类的变量,而不是实例变量。static 变量只有一份拷贝,所有实例共享同一...
Java 编程中常用修饰词使用方法 Java 语言中定义了 11 个常用的修饰词,每个修饰词都有其特定的使用场景和作用。下面对这 11 个 Java 修饰词进行详细的介绍: 1. public 修饰词 修饰对象:类、接口、成员 介绍:...
Java static 关键字是 Java 语言中一个非常重要的概念,它可以修饰变量、方法、代码块和导入包等。下面我们将详细介绍 Java 中 static 关键字的使用和特点。 静态变量 Java 中的静态变量是指使用 static 关键字...
`static`关键字用于修饰变量、方法以及嵌套类,它使得这些元素可以在不创建对象的情况下被访问。 首先,我们来看一下`static`修饰的静态变量。静态变量,也被称为类变量,它们在内存中只有一个副本,所有该类的对象...