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

  • 相关阅读:
    收集一些jQueryMobile的插件和案例[转]
    关于美工ps出图table格式的处理
    Sencha Touch 1.1.1 之初接触(一)怎样入手并写一个漂亮的demo[转]
    把Excel文件数据导入数据库,支持多工作表
    批量Excel数据导入Oracle数据库
    关于ASP.NET 中站点地图sitemap 的使用
    视频播放器
    asp.net SqlParameter关于Like的传参数无效问题(转载)
    分页
    告别ASP.NET操作EXCEL的烦恼
  • 原文地址:https://www.cnblogs.com/boboshenqi/p/9526942.html
Copyright © 2011-2022 走看看