码迷,mamicode.com
首页 > 编程语言 > 详细

java 静态static

时间:2016-05-13 02:33:50      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

静态:static
用法:是一个修饰符,用于修饰成员(成员变量和成员函数)
当成员被静态修饰后,就多了一个调用方法,即除了可以被对象调用以外,还可以直接被类名调用。
调用形式:类名.静态成员
          类名.静态函数

static的特点:
1,随着类的加载而加载。
  也就是说:静态会随着类的消失而消失。说明它的生命周期最长。
2,优先于对象的存在
明确一点:静态是先存在的,对象是后存在的。
3,静态成员或静态变量被所有对象所共享
4,可以直接被类名调用

实例变量:也称成员变量
类变量:静态成员变量、也称静态变量


实例变量(成员变量)和类变量(静态变量)的区别:
1,存放位置不同
成员变量随着对象的建立而存在堆内存中;
静态变量随着类的加载而存在于方法区中;方法区也被称为共享区、数据区。
2,生命周期不同
类变量的生命周期最长,随着类的加载而加载,随着类的消失而消失。
成员变量的生命周期随着对象的消失而消失。


静态使用注意事项:
1,静态方法只能访问静态成员,因为静态产生的比较早,对象产生的比较晚,非静态变量随着对象地产生而产生;
   非静态方法既可以访问静态也可以访问非静态。但是当确定某一对象已经建立后,可以访问该对象的成员和方法。
2,静态方法中不可以定义this,super关键字。
因为静态优先于对象存在,而this和super关键字都是代表某一对象的,所以静态方法中不能出现this和super关键字。
3,主函数是静态的。


静态的利弊:
利:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中存储一份;可以直接被类名调用。
弊:生命周期过长,访问出现局部性(局部虽好,只能访问静态。)
class Person 
{
	String name;
	static String country="CN";
	public static void show(){
		System.out.println(country+"::::");
	}
}
class StaticDemo
{
	public static void main(String[] args) 
	{
		//System.out.println(Person.country);
		//Person.show();
		Person p1 = new Person();
		System.out.println(p1.name);
	}
}

java 静态static

标签:

原文地址:http://blog.csdn.net/iemdm1110/article/details/51344575

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!