现在的位置: 首页 > 综合 > 正文

Static 详细介绍

2013年10月10日 ⁄ 综合 ⁄ 共 1177字 ⁄ 字号 评论关闭

package com.lean3;
/**
 * 有方法出现,必然有对象
 * static 静态方法:
 * 1  在静态方法里只能直接调用同类中其他的静态成员,包括静态变量和方法,而不能直接访问
 *    同类中的非静态成员,这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才
 *    可以使用,而静态方法在使用前不用创建任何对象。
 * 2  静态方法不能以任何形式引用this和super关键字,因为静态方法在使用前不用创建任何实例
 *    对象,当静态方法被调用时,this所引用的对象根本就没有产生
 * 3  main方法是静态的,因此JVM在执行main方法时不创建main所在类的实例对象,因而在main方法中
 *    我们不能直接访问该类中的非静态成员,必须创建该类中的一个实例对象后,才能通过
 *    这个对象去访问类中的非静态成员
 * 静态代码块:
 * 一个类中可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码快被执行,
 * 且被执行一次,静态块经常用来进行类属性的初始化
 * 类中的静态代码快被自动执行,尽管我们产生了类的多个实例对象,但其中的静态代码块只被
 * 执行了一次,当一个程序中用到了其他的类,当程序中用到了其他的的类,类是在第一次被使用
 * 的时候才能被装载,而不是在程序启动时就装载程序中所有可能要用到的类。   
 *
 * 静态的成员变量放置到方法区,或者叫共享区,数据区
 * 静态方法中不能new内部类的实例对象
 * static的特点
 * 静态变量和方法属于全局的,大家共享
 * 1,随着类的加载而加载
 *    也就是说:静态会随着类的消失而消失。说明它的生命周期最长。
 * 2,优先于对象存在   
 *
 * 实例变量和类变量的区别:
 * 1 , 存放位置:
 *     类变量随着类的加载而存在于方法区中。
 *     实例变量随着对象的建立而存在于堆内存中。
 * 2 ,生命周期:
 *     类变量生命周期最长,随着类的消失而消失。
 *     实例变量生命周期随着对象的消失而消失    
 *     
 * 静态有利有弊
 * 利处:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份
 *       可以直接被类名调用。
 * 弊端: 生命周期过长
 *       访问局限性,静态虽好,只能访问静态          
 * @author Administrator
 *
 */
public class Person1 {

    String name;//成员变量,实例变量
    static String country = "CN";//静态成员变量,类变量
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}





抱歉!评论已关闭.