java中的关键字 -- static

基本介绍

static关键字通常来注明一个class内的某个field或者某个方法是不依赖于对象的建立的。换句话说,无论我们是否创造了该class的一个具体的实例, static的值或者方法都可以被我们调用:

ClassName.field;
ClassName.method();

需要注意的是,由于一个值被注明了static,程序在运行时也只会为这个值安排一个特定且唯一的空间。如果多个class的实例中的一个修改了这一值,那么其他的class object都会得到同样的被修改后的值。

class Test {
    static int i= 0;
}

Test t1 = new Test();
Test t2 = new Test();

t1.i ++;
System.out.println(t2.i); // 1

所以通常我们会在这样的值上加上final关键字, 表示不可被修改。关于final的介绍会在另一篇中单独出现。

同static的变量一样,static method也可以通过class直接访问或者对象访问。

public class Test {
    static int i = 0;

    static void increment() {
        i ++;
    }
    public static void main(String[] args) {
        Test t1 = new Test();
        Test t2 = new Test();
        Test.increment();
        t2.increment();
        t1.i ++;
        System.out.println(t2.i); // 3
    }
}

工程实践

通常static被用作一些特定的变量,通常和final一起修饰,使得该变量实际成为一个常量被其他的class引用。

public class XXXConstants {
    public static final String XXX = "XYZ";
    public static final String YYY = "YZX";
    public static final String ZZZ = "ZXY";
}

而一些helper method也可以被标注成static,例如常见的:

Integer.parseInt(String intString);

也可以自己定制不依赖于具体的实例的static method。

时间: 2024-10-13 12:32:26

java中的关键字 -- static的相关文章

java中的关键字static(静态变量)和final定义常量

1 package point; 2 3 class Point { 4 5 int x = 0; 6 int y = 0; 7 static int z = 100; // 定义静态变量z,类变量 8 static final double PI = 3.1415926;// final定义常量,它的值在运行时不能被改变 9 10 Point(int a, int b) { 11 //PI=3.1415926; 12 /* 13 * 当使用静态常量的时候,不能在构造函数中初始化, 因为静态时,

Java中this和static关键字及代码块

this: 可以使用this表示类中的属性------this.name=name 可以使用this强调调用的是本类的方法 可以使用this调用本类的构造方法------this();调用本类中无参构造方法 可以使用this表示当前对象(调用方法的对象)----最重要的用途 static: 声明属性---------属性则为全局变量 声明方法---------Person.setName("Tom");使用类名称调用static方法 普通代码块:直接在方法或是语句中定义的代码块 pub

Java中this、static关键字的内存图解

Java中的关键字有很多,abstract  default  goto*  null  switch  boolean  do  if  package  nchronzed  break  double  implements  private  this  byte  else  import  protected  throw  throws  case  extends  instanceof  public  transient  catch  false  int  return 

转:java中volatile关键字的含义

转:java中volatile关键字的含义 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制. synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用 sync

Java中native关键字

Java中native关键字 标签: Java 2016-08-17 11:44 54551人阅读 评论(0) 顶(23453) 收藏(33546) 今日在hibernate源代码中遇到了native关键词,甚是陌生,就查了点资料,对native是什么东西有了那么一点了解,并做一小记. native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言

慕课网-安卓工程师初养成-2-1 Java中的关键字

来源:http://www.imooc.com/code/1176 Java 中常用关键字: 问:这么多,记不住啊......-_-|| 答:现在不需要你记住所有,混个眼熟即可,在学习的过程中,你会逐步找到感觉并记住他们 对了,差点忘了大事,Java 关键字是区分大小写的哦!所以 void 是关键字,但 Void 就不是了~~ 任务 是否理解 Java 中的关键字了呢?一起验证一下吧! public class HelloWorld { public static voiD main(Strin

【转】java中volatile关键字的含义

java中volatile关键字的含义 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制. synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用 synchr

关于Java中final关键字的用法总结

用于数据 永不改变的编译时常量,必须是基本类型,static final常量定义时必须赋值 一个运行时被初始化却又不希望被改变的值 空白final,确保使用前必须被初始化,但有更大的灵活性 final参数,用于对象引用,对象不可改变,用于基本类型,值不可以改变 用于方法 防止方法的行为被改变,不可覆盖 private方法默认为final的 曾经使用final方法可以提高效率,现已不提倡 用于类 表示该类不可以被继承 final类方法默认指定为final的 关于Java中final关键字的用法总结

Java中transient关键字的应用

今天跟JDK源码的时候发现transient ,感觉从来没见过,于是用google查了一下. Java语言的关键字,用来表示一个域不是该对象串行化的一部分.当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的. 下面我们查创建一个LoginFile的类: public class LoginFile implements Serializable{ private static final long serialVersio