zoukankan      html  css  js  c++  java
  • Java static keyword

    Java中static关键字主要用于内存管理(是的,你没听错)。我们可以将它应用到变量、方法、代码块、嵌套类以及导入包中。静态关键字属于类,而不是类的实例。

    1.静态变量

    1. 静态变量可以被视为所有对象通用的属性,例如员工的公司名,学生的学校名
    2. 静态变量只在类加载时在方法区(class area)中获取内存

      优点:节省内存

    2.静态方法

    1. 静态方法属于类而不是类的对象
    2. 静态方法可以被调用在没有类的实例的情况下,言外之意,静态方法可以通过类调用,自然也可以通过类对象调用
    3. 静态方法可以访问静态数据成员并更改他们的值

      限制:主要有两个限制

    1. 静态方法不能使用非静态数据成员或直接调用非静态方法
    2. 在静态上下文中不能使用this或super关键字,因为他们就没有隐式接受this参数

      Q&A:为什么Java的main方法是静态的?

        因为调用一个静态方法不需要一个对象。如果main方法是一个非静态方法,那JVM需要先创建一个对象然后才调用main方法,这将导致额外的内存分配

    3.静态代码块

    1. 静态代码块被用于初始化静态数据成员
    2. 静态代码块在加载main方法之前被执行,可以对比instance initalizer block的执行时间

      Q&A:我们能执行一个没有main方法的程序吗?

      不行。在JDK1.6以前唯一的方式是使用静态代码块,但是自从JDK1.7,他不可能被执行在没有main方法的时候

    4.静态内部类

    1. 静态内部类可以使用外部类的静态数据成员和方法,但不能使用非静态数据成员和方法。不同于非静态内部类,可以使用外部类的所有数据成员和方法
    2. 静态内部类常用于build模式

    5.静态导包

    1. 可以少写包的前缀,让代码更优美
    2. 不建议使用

    原文链接:https://www.javatpoint.com/static-keyword-in-java

  • 相关阅读:
    Nacos微服务部署(超详细)基于Centos7
    Centos7配置Mysql5.7数据库
    django搭建web (一)
    NetFPGA-1G-CML Demo --- reference_router_nf1_cml
    Linux下Java通用安装方法
    NetFPGA-1G-CML Demo --- openflow_switch
    原型设计(结对第一次)
    第二次作业——个人项目实战
    游戏
    python学习笔记-问题
  • 原文地址:https://www.cnblogs.com/boboshenqi/p/9526942.html
Copyright © 2011-2022 走看看