• static关键字的作用


    1、static是Java语言中的一个关键字,单词本身的含义是静态的。

    2、使用static修饰的成员为静态成员,是属于某个类的;而不使用static修饰的成员为实例成员,是属于类的每个对象的。

    3、一个类的成员包括变量、方法、构造方法、代码块和内部类。static可以修饰除构造方法外的所有成员。

    1、static修饰变量:

    static属性属于这个类所有,即由该类创建的所有对象共享同一个static属性。static变量和非static变量都是成员变量。主要区别是:

    1)在内存中的份数不同

    不管有多少对象,static变量只有一份。对于每个对象,实例变量都会有单独的一份。

    2)在内存中的位置不同

    静态变量在方法区中,实例变量在堆内存中。

    3)访问的方式不同

    实例对象:对象名.变量名。

    静态变量:类名.变量名(推荐使用),也可以使用【对象名.变量名(不推荐使用)】。

    4)在内存中分配空间的时间不同

    实例变量:创建对象的时候才分配空间。

    静态变量:第一次加载类的时候。

    2、static修饰方法:

    可以通过对象名.方法名和类名.方法名两种方式来访问。

    3、static修饰代码块

    当类被第一次加载时(可能是调用static属性和方法,或者创建其对象)执行静态代码块,并且只被执行一次,主要的作用是实现static属性的初始化。

    4、static修饰内部类

    属于整个外部类,而不是属于外部的每个对象。不能访问外部类的非静态成员(变量或方法),可以访问外部类的静态成员。

    5、静态导入

    import static java.lang.Math.*;

    非导入类和接口,而是导入类和接口的静态成员。

    注意:局部变量不可以使用static修饰

    其他:

    1)java中Math、Arrays、Collections等工具类中大量的static属性和方法,通过类名可以直接调用。

    2)Class.forName("com.mysql.jdbc.Driver");的作用是第一次加载类的时候调用该类的静态代码块,实现驱动注册。

    3)JDK1.8之后在接口中可以出现static方法,但不能是抽象方法。JDK1.7之前是不可以的。

  • 相关阅读:
    Sales Portal遇到问题及解决
    LYOA 遇到的问题及解决方案
    ERS遇到的问题及solution
    ehr遇到问题及解决方法
    dropdownlist中的Checkbox,可控制是否postback
    javascirpt
    【spring boot】idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到(转)
    SpringBoot2.1整合finereport10(帆软报表)
    Windows下MyCat配置MySql读写分离
    Windows下MySQL主从同步
  • 原文地址:https://www.cnblogs.com/sinoaccer/p/12047755.html
Copyright © 2020-2023  润新知