zoukankan      html  css  js  c++  java
  • 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之前是不可以的。

  • 相关阅读:
    hdu1285 确定比赛名次(拓扑排序多种方法)
    软件配置管理中的SVN
    Maven实战(插件管理)
    oracle 数据库中,应用程序里的连接探測语句的正确使用
    2014百度之星资格赛第四题
    android制作闪动的红心
    程序猿生存定律-借势的价值与力量
    [SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演
    机器学习:神经网络之表达
    【JavaScript】在同一个网页中实现多个JavaScript特效
  • 原文地址:https://www.cnblogs.com/sinoaccer/p/12047755.html
Copyright © 2011-2022 走看看