static关键字笔记

一、静态变量

什么时候应该定义静态变量? 当该成员变量的值,每一个对象都一致时,就对该成员变量进行静态修饰。

静态变量和成员变量的区别:

  1. 所属范围不同。静态变量所属于类,静态变量也称为类变量;成员变量所属于对象,成员变量也称为实例变量
  2. 调用不同。静态变量能被对象和类调用;成员变量只能被对象调用
  3. 加载时期不同(这个不同正是静态变量有时候的优势,就是类加载完就一直可以用,不用每次新建对象都占一次内存)。静态变量随着类的加载而加载;成员变量随着对象的加载而加载
  4. 内存存储区域不同。静态变量存储在方法区中;成员变量存储在堆内存中

二、静态代码块

静态代码块

  1. 特点:随着类的加载而执行,仅执行一次
  2. 作用:给类进行初始化

详情可参考下面demo及其注释

class Circle{
	static double pi = 3.14; 
	static{  //静态代码块。随着类加载而执行,且在静态变量显示初始化以后再执行。
		System.out.println("类加载就执行这句"+pi);  
		//因为静态代码块在静态变量显示初始化才执行,因此输出pi的值为3.14
	}
	
	static void show(){
		System.out.println("show run");
	}
}

public class CircleDemo {
	public static void main(String[] args){
		Circle.show();
 		Circle.show();  //这里执行Circle类show方法仅仅是为了加载Circle,执行两次是为了证实代码块只执行一次
	}
}
/*输出
	类加载就执行这句3.14
	show run
	show run */

转载于:https://my.oschina.net/daladida/blog/915844

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值