java static关键字_Java static 关键字

java 中, static 关键字修饰的方法或者变量不需要实例就可以访问,只要类被加载了,就可以通过类名去进行访问。

static 修饰变量

static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。

非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

static成员变量的初始化顺序按照定义的顺序进行初始化。

这里直接粘代码:

public class TestStaicVariable {

private static String name = "ll";

public void setName(String value){

name = value;

}

public String getName(){

return name;

}

public static void main(String[] ages){

System.out.println(TestStaicVariable.name);

TestStaicVariable t = new TestStaicVariable();

TestStaicVariable t1 = new TestStaicVariable();

t.setName("lijingou");

System.out.println(TestStaicVariable.name);

System.out.println(t1.getName());

}

/*运行输出的结构lllijingoulijingou*/

}

这里用一句话来形容一下 静态变量:牵一发而动全身 。

static修饰方法

static 方法一般称为静态方法,静态方法不依赖于任何类的实例就可以进行访问,即通过类就可以执行方法。静态方法中不能访问 this 的,因为它不需要实例就可以执行。静态方法需要记住两点:在静态方法中不能访问类的 非静态成员变量和 非静态成员方法。

非静态成员方法中是可以访问 静态成员方法/变量的

粘下代码大家体会一下:

public class TestStaticFunction {

private static String name="lilong";

private int age= 10;

public void ShowName(){

System.out.println(name);

System.out.println("调用静态方法");

Show();

}

public static void Show(){

System.out.println("我是静态方法");

// System.out.println(age); # 报错了 ,静态方法中访问非静态变量 }

public static void main(String[] args){

TestStaticFunction t = new TestStaticFunction();

t.ShowName();

t.Show();

}

/*输出结果:lilong调用静态方法我是静态方法我是静态方法*/

}

static 修饰代码块

static 可以形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。static 代码块的特性:只会在类加载的时候执行一次。代码如下:

public class TestStaticKuai {

static {

System.out.println("我是static 代码块");

System.out.println("只会执行一次在类加载的时候");

}

public static void main(String[] args){

TestStaticKuai t = new TestStaticKuai();

TestStaticKuai t1 = new TestStaticKuai();

TestStaticKuai t2 = new TestStaticKuai();

TestStaticKuai t3 = new TestStaticKuai();

}

/*我是static 代码块只会执行一次在类加载的时候*/

}

关于 static 关键字的介绍就到这里,希望大家可以理解。

下一篇文章我们将讲解如何使用 static 关键字 实现单例模式。

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值