一文读懂之java关键字static - Go语言中文社区

一文读懂之java关键字static


static:java 的一个关键字。中文意思:静态的。
了解static,首先提出几个问题:
static 的内存空间在哪?何时分配?如何访问?哪些属性可以使用static?
一、修饰成员变量
1:静态修饰成员变量:静态成员变量。
特点:
==静态成员变量的内存在方法区中。==被所有的该类的对象所共享使用。不在堆中,不在对象中。
当我们第一次使用一个类的时候,jvm会使用类加载器将该类进行类加载,类加载被分成了三步(装载(将class字节码装载到方法区)、链接、类的初始化(给类的静态成员变量分配内存,并执行默认初始化,如果有显式的赋值,还要执行赋值的操作))。
静态成员变量是不依赖于任何对象的,依赖于所在的类,所以java对静态成员提供了另外一种直接访问的方式,通过类名来直接访问: 类名.静态成员。

2:哪些属性可以作为静态成员变量定义。
如果需要所有的对象共享的数据,就可以定义为静态的,只希望变量具有一块内存区域的,也可以定义为静态的。

static变量是依赖于所在的类,不依赖于对象,所以也称为类变量,非static 修饰的 叫实例变量。

二、修饰成员方法
1、:static 修饰方法:静态成员方法。
特点:静态方法不依赖于某一个对象,依赖于类,类加载之后,就可以调用了,不需要创建对象就可以直接调用、直接使用类名调用即可(本类直接写方法名就可以直接用了,连类名都不用写)。

2、static 的使用:
(1)作为工具方法,方便调用。一般可以声明成静态方法。
例:封装成自定义的工具类,其他类想使用该方法时,直接(类.方法名)

public class Util {
    /**
     * @param min 随机数最小值
     * @param max 随机数最大值
     * @return 随机数
     */
    public static int getRandomNumber(int min, int max) {
        return (int) (Math.random() * (max - min) + min);
    }
}

测试类

public class Test {
    public static void main(String[] args) {
        int s = Util.getRandomNumber(10, 20);//直接用类.方法名
        System.out.println(s);
    }
}

(2)用于访问本类的其他的静态成员变量(在该静态方法中)。
例:MAX静态变量报错。
在这里插入图片描述
在这里插入图片描述
详细通过上文的讲解,答案不言而喻。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_42859864/article/details/103148799
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-19 14:03:17
  • 阅读 ( 814 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢