美文网首页
Java基础知识--static关键字

Java基础知识--static关键字

作者: aldonk | 来源:发表于2018-11-28 16:53 被阅读0次

好记性不如烂笔头,记自己容易忘记的部分基础内容。
本文内容引用自(勿转):

static

  • 静态修饰符,被修饰后成员被该类所有的对象所共有,可以直接通过类名调用。

  • 可以用来修饰:成员变量,成员方法,代码块,内部类等。

  • 当一个事物为static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起,所以从未创建某个类的任何对象,也可以调用其static方法或访问其static域。

static作用

  • 方便在没有创建对象的情况下来进行调用(方法/变量)
  • static修饰变量或方法占用内存小,但大量使用也会增加内存负担

static变量

  • 被static修饰的变量属于类变量,称之为静态变量,访问方式为:ClassName.propertyName

  • 静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且 JVM 也只会为它分配一次内存,同时类所有的实例都共享静态变量,即一处变、处处变,可以直接通过类名来访问它。

  • 但是实例变量则不同,它是伴随着new实例化的,每创建一个实例就会产生一个实例变量,它与该实例同生共死。

static方法

  • 被static修饰的方法属于类方法,我们称之为静态方法,访问方式为: ClassName.methodName()

  • 由于他在类加载的时候就存在了,它不依赖于任何实例,所以 static 方法必须实现,也就是说他不能是抽象方法 abstract。

static代码块

  • 用于初始化一个类的时候做操作用的,和静态变量、静态方法一样会随着类的加载一块执行

  • 静态代码块定义在类中方法外,静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)

  • 该类不管创建多少对象,静态代码块只执行一次

static内部类

  • static修饰类的话只能修饰内部类
  • 静态内部类与非静态内部类之间存在一个最大的区别:
    非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围内,但是静态内部类却没有。没有这个引用就意味着:1.它的创建是不需要依赖外围类的创建。2.它不能使用任何外围类的非static成员变量和方法。

面试题目

  1. ”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

  1. 是否可以在static环境中访问非static变量?

static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

  1. 静态方法能不能引用非静态资源?

不能,new的时候才会产生的东西,对于初始化后就存在的静态资源来说,根本不认识它。

  1. 静态方法里面能不能引用静态资源?

可以,因为都是类初始化的时候加载的,大家相互都认识。

  1. 非静态方法里面能不能引用静态资源?

可以,非静态方法就是实例方法,那是new之后才产生的,那么属于类的内容它都认识。

相关文章

  • Java基础系列-static关键字

    原创文章,转载请标注出处:《Java基础系列-static关键字》 一、概述 static关键字是Java诸多关键...

  • Static关键字

    C语言中的static关键字和Java的static关键字意义不一样。 1 用static修饰函数 static用...

  • Java 面向对象2

    Java 面向对象 1. static 和 final static关键字---修饰成员变量 用static修饰的...

  • 1.3 static 关键字

    static 关键字 《Java编程思想》 中:static方法就是没有this的方法 static 修饰的方法或...

  • Java static关键字

    声明static属性 static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可...

  • 代码查错

    Something1.java 5。 static关键字 static修饰成员变量 用static修饰的成员变量不...

  • Java基础知识汇总(一)

    Java基础知识 一.final 与 Static public static final 类常量,在类内部多个方...

  • Java基础知识--static关键字

    好记性不如烂笔头,记自己容易忘记的部分基础内容。本文内容引用自(勿转): Java进阶02-static关键字 0...

  • Java static关键字

    Java之美[从菜鸟到高手演变]之Java中static关键字

  • Java:3分钟带你全面了解Static静态关键字

    前言 在Java中,静态 Static关键字使用十分常见 本文全面 & 详细解析静态 Static关键字,希望你们...

网友评论

      本文标题:Java基础知识--static关键字

      本文链接:https://www.haomeiwen.com/subject/ezqzqqtx.html