对static关键字的认识

        1、static关键字是一个修饰符,用于修饰成员(成员变量和成员函数)。

        2、static修饰的成员变量存在于内存中的方法区(又称共享区或数据区,用来存放类中方法和类中共享数据)中。

        3、static的特点:

                                ①、随着类的加载而加载,随着类的消失而消失;

                                ②、优先于对象存在;

                                ③、被所在类创建的所有对象共享;

                                ④、可以直接被类名所调用。

        4、实例变量与类变量的区别:

                                                    ①、存放位置不同:实例变量随着对象的建立而存在于对内存中,而类变量随着类的加载而存在于方法区中;

                                                    ②、生命周期不同:实例变量随着对象的消失而消失,而类变量生命周期最长,随着类的消失而消失;

                                                    ③、调用方式不同:实例变量只能通过类创建的对象来调用,类变量除了可以使用类创建的对象来调用外,还可以直接使用类名来调用。

        5、静态使用的注意事项:

                                             ①、静态方法只能访问静态成员,非静态方法既可以访问静态成员也可以访问非静态成员;

                                             ②、静态方法方法中不可以定义this或super关键字,因为静态先于对象存在。

        6、静态利弊:

                          利:对对象的共享数据进行单独空间的存储,节省空间——没有必要每一个对象中都存储一份;方便了调用;

                          弊:生命周期过长;访问存在局限性——静态只能访问静态的。

        7、什么时候使用该关键字:

                                                ①、什么时候定义静态变量(类变量):当对象中出现共享数据时,该数据出于节省内存的考虑易定义为静态变量(对象中的特有数据要定义成非静态变量存在于对内存中);

                                                ②、什么时候定义静态函数:当该函数内部没有访问到非静态的成员(成员变量和成员方法)时,该函数易定义为静态函数。

你可能感兴趣的:(java)