static关键字
关于static关键字的用途有在google上找的,有自己的体会的,在这里做一下汇总。
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
StaticOne.java
public class StaticOne {
static int i = 1; //定义一个静态变量i
int j = 1; //定一个变量j
//定义一个静态方法
static void doSomeThing() {
System.out.println(++i);
}
//定义一个static代码块
static {
int k = 1;
System.out.println(++k);
}
}
当声明一个事务是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例联系在一起。所以,即使从未创建某个类的任何对象,也能访问static域。非static域或者方法必须知道它们一起运作的特定对象。
static前面可以加上访问权限关键字如public、private。来限定该成员变量或者成员方法在其它类的访问范围。
static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,其语法为:
类名.静态方法名(参数列表)
类名.静态变量名
一、static变量
按照是否是静态的对类的成员变量来分,可分为两类,一是静态成员变量又叫类变量、二是实例变量。两者的区别,静态成员变量在类被加载的时候就在内存中分配好了一块自己独立的位置(这个位置是始终存在的)可以通过类名来调用,也可以通过对象调用,但是通过对象调用不推荐。而实例变量是每创建一次就被分配一次内存空间,必须使用对象调用,当不用时自动被垃圾回收机制回收。
二、static方法
静态方法可以通过类名直接调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字。静态方法不用调用类中的任何实例变量和实例方法,只能访问静态变量和静态方法。因为实例变量和实例方法是和对象有关系的。
三、static代码块
静态代码块可以在类的任何位置,数量不限。如果静态代码块有多个JVM会按照顺序执行它们。每个代码块只会被执行一次,并在内存中占有一席之地。
静态的优缺点:
静态的优点:常驻内存执行效率快,显而易见。
静态的缺点:占用的内存不会释放。
所以一般用到static关键字的地方都是常用的,比如说工具类,公共方法等。总之就是常用的地方。
Float.java
public class Float {
//定义一个静态变量
static float f;
float fl;
}
Test.java
public class Test {
/**
* @author 张博
* @time Jun 14, 2012
* @param args
*/
public static void main(String[] args) {
// 为Float分别创建两个对象
Float float1 = new Float();
Float float2 = new Float();
// 分别为静态成员变量赋值(static)
float1.f = 1.5f;
float2.f = 2.5f;
// 由于静态变量只是在堆中分配一块属于自己的空间 因此不同的对象都指向同一个地方,所以值是唯一的
System.out.println("float1.f = "+float1.f);
System.out.println("float2.f = "+float2.f);
// 静态变量又叫类变量可以用类名直接访问 Float.f = 1.1f; ,
// 用对象名访问是不推荐的,为了演示方便在例子里就用对象名代替了
float1.f = float2.f;
System.out.println("float1.f = "+float1.f);
System.out.println("float2.f = "+float2.f);
float1.f = 0.5f;
System.out.println("float1.f = "+float1.f);
System.out.println("float2.f = "+float2.f);
System.out.println("=============悲催的分割线===============");
// 用对象调用非静态变量(实例变量)
float1.fl = 1.5f;
float2.fl = 2.5f;
System.out.println("float1.fl = "+float1.fl);
System.out.println("float2.fl = "+float2.fl);
float1.fl = float2.fl;
System.out.println("float1.fl = "+float1.fl);
System.out.println("float2.fl = "+float2.fl);
float1.fl = 0.5f;
System.out.println("float1.fl = "+float1.fl);
System.out.println("float2.fl = "+float2.fl);
}
}
结果为:
float1.f = 2.5
float2.f = 2.5
float1.f = 2.5
float2.f = 2.5
float1.f = 0.5
float2.f = 0.5
=============悲催的分割线===============
float1.fl = 1.5
float2.fl = 2.5
float1.fl = 2.5
float2.fl = 2.5
float1.fl = 0.5
float2.fl = 2.5
分享到:
相关推荐
"Java 中 static 作用" static 是 Java 语言中一个关键字,表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态代码块。在 Java 语言中,没有全局变量的概念,但是可以使用 static 来实现...
总结来说,`static`修饰方法在Java中起着至关重要的作用,它允许我们定义与对象实例无关的功能。正确理解和使用`static`关键字是成为一名熟练的Java程序员的关键。理解其工作原理并根据需要恰当地在代码中应用,可以...
在Java编程语言中,`static`关键字扮演着至关重要的角色,它被用于声明类成员(如变量、方法)为静态的。静态成员不依赖于任何特定的对象实例,而是与类本身绑定,这意味着无论该类有多少个实例,静态成员只会有一份...
### Java中的Static属性详解 #### 一、引言 在Java编程语言中,`static`关键字扮演着重要的角色。它允许我们创建与类关联而非特定实例关联的数据成员和方法。本文将详细介绍`static`属性的基本概念、静态成员变量...
### 关于static的小结(Java内存溢出) #### 标题和描述中的知识点 在《关于static的小结(Java内存溢出)》这篇文章中,作者主要探讨了与Java中的`static`关键字相关的知识点,以及如何可能导致内存溢出的情况。...
"Java关键字final、static使用总结" 在 Java 编程语言中,final 和 static 是两个非常重要的关键字,它们可以用来修饰类、方法、变量等,了解它们的使用方法和限制非常重要。本文将详细总结 final 和 static 的使用...
在Java编程语言中,`final` 和 `static` 是两个非常重要的关键字,它们分别具有不同的含义和用法,但都对代码的结构和行为产生深远影响。本文将深入探讨这两个关键字,并结合实际示例来解释它们的应用场景。 首先,...
"关于static关键字的总结" static 关键字是 Java 语言中一个非常重要的概念,它可以用来修饰变量、方法、内部类和代码块等。下面我们将详细介绍 static 关键字的由来、作用和用法。 一、static 关键字的由来 在 ...
Java 中的 final 和 static 关键字详解 Java 中的 final 和 static 关键字是两个重要的关键字,它们在 Java 编程中扮演着重要的角色。本文将详细介绍 final 和 static 关键字的使用方法和注意事项。 一、final ...
总结起来,`static`、`this`、`super`和`final`是Java中控制对象生命周期、引用当前对象、访问父类成员以及确保数据不变性的重要工具。理解和熟练使用这些关键字对于编写高质量的Java代码至关重要。在实际编程中,应...
Java 详细总结(精辟版++) Java 概述 Java 是一种面向对象的编程语言,主要应用于桌面程序、控制台程序、企业级开发和嵌入式开发等领域。Java 分为三个主要分类:Java SE、Java EE 和 Java ME。Java SE 主要用于...
### static在Java中的作用 ...总结来说,`static`关键字在Java中有着非常重要的作用,它可以实现类级别的资源共享,提高程序的效率和可维护性。通过正确地使用`static`关键字,可以编写出更加高效、简洁的代码。
Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...
### static在Java语言中的作用 #### 一、概述 `static`关键字在Java语言中具有重要作用,主要用于定义静态成员变量、静态方法、静态代码块以及静态内部类等。使用`static`关键字可以使某些属性和方法独立于类的...
Java static 方法用法实战案例总结 Java static 方法是一种特殊的方法,它可以由类名直接调用,而不需要创建对象。static 方法可以用来声明静态属性变量,也可以用来声明方法。在 Java 中,static 方法可以由类名...
总结起来,`static`关键字在Java中扮演着关键角色,它使得我们可以定义类级别的变量和方法,这些变量和方法不依赖于任何实例,而是由所有类的实例共享。理解并正确使用`static`关键字对于编写高效、清晰的Java代码至...