[java]static关键字的四种用法,关于java中static关键字的说法错误的是

  [java]static关键字的四种用法,关于java中static关键字的说法错误的是

  00-1010 1.静态是什么意思?2.为什么使用static关键字?3.在Java中有可能覆盖私有或静态方法吗?4.有可能在静态环境中访问非静态变量吗?5.静态方法可以引用非静态资源吗?6.静态资源可以在静态方法中引用吗?7.静态资源可以在非静态方法中引用吗?8.java静态变量、代码块、静态方法的执行顺序是怎样的?

  

目录

static关键字表示成员变量或成员方法可以在没有其所属类的实例变量的情况下被访问。

 

  例如

  主类

  包com.xiao/* * * * @作者:肖骁* @日期:创建于2022/3/11 12:37 */public class main { public static Int f=10;公共静态void show () {system.out.println(静态方法调用:f的值为 f );}}测试方法

  导入com . Xiao . main;public class test { public static void main(string[]args){ system . out . println( static variable: main . f));main . show();}}输出结果

  静态变量:10

  静态方法调用:f的值是10。

  通过上面的例子可以发现,我们可以在不创建对象实例的情况下,调用主类中由static修饰的变量和方法。所以static关键字表示可以在没有成员变量或成员方法所属类的实例变量的情况下访问该成员变量或成员方法。

  00-1010在下面两种情况下,静态关键字,满足我们的需求。

  一般来说,当一个类的对象用new创建时,数据存储空间被分配,方法可以被外界调用。但是有时我们只想为一个特定的域分配一个存储空间,而不管我们想要创建多少对象或者根本不创建任何对象。然后我们想在不创建对象的情况下使用变量和调用方法。

  00-1010 Java中的静态方法是不能被覆盖的,因为方法覆盖是基于运行时动态绑定的,而静态方法是在编译时静态绑定的(即Java虚拟机加载一个类时,静态方法会加载同类,所以静态方法属于该类,在编译时静态绑定)。静态方法与该类的任何实例都不相关,因此它在概念上不适用。

  

1、static是什么意思?

静态变量属于Java中的类,其值在所有实例中都是相同的。当Java虚拟机加载该类时,静态变量将被初始化。如果您的代码试图访问没有实例的非静态变量,编译器将报告错误,因为这些变量尚未创建,也没有与任何实例关联。

 

  00-1010不能。当Java虚拟机加载一个类时,静态方法会和同一个类一起被加载和初始化,所以静态方法属于这个类。如果资源不是静态的,那么只有在创建了相应的实例之后才会创建它。但是,加载和初始化类的过程发生在创建实例对象之前,因此如果静态方法引用了根本不存在的非静态资源,它将报告一个错误。

  00-10:10是的。因为当Java虚拟机加载一个类的时候,静态的静态方法和静态的资源会和同一个类一起被加载和初始化,那么这个时候静态方法就可以访问对应的静态资源了。因此,静态资源可以在静态方法中引用。

  00-10:10是的。因为当Java虚拟机加载类时,静态资源将是可用的。

  起被加载和初始化好,而非静态方法是当实例对象被创建的时候才会被创建和初始化,所以当非静态方法被创建和初始化的时候对应的静态资源已经存在了。所以非静态方法里面能引用静态资源。

  

 

  

8、java静态变量、代码块、和静态方法的执行顺序是什么?

代码块执行顺序:静态代码块——> 构造代码块 ——> 构造函数——> 普通代码块 继承中代码块执行顺序:父类静态块——>子类静态块——>父类构造代码块——>父类构造器——>子类构造代码块——>子类构造器。Main类

 

  

package com.xiao;/** * @author :小肖 * @date :Created in 2022/3/11 12:37 */public class Main { private Integer a; //静态代码块 static { System.out.println("静态代码块...."); } //无参构造器 public Main(){ System.out.println("无参构造器...."); } // 有参构造 public Main(Integer a){ this.a = a; System.out.println("有参构造器...."); } // 构造代码块 { System.out.println("构造代码块...."); } //普通初始化块 public void method(){ System.out.println("普通初始化块...."); }}

测试类

 

  

import com.xiao.Main;public class Test { public static void main(String[] args) { Main main = new Main(); main.method(); }}

测试结果

 

  

静态代码块....

 

  构造代码块....

  无参构造器....

  普通初始化块....

  

到此这篇关于Java 梳理总结关于static关键字常见问题的文章就介绍到这了,更多相关Java static关键字内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: