Java_断点调试/类变量/类方法/main语法

本文探讨了JDK8之前静态变量在方法区的存储方式,以及JDK8之后的堆内存分配。重点讲解了静态变量的共享性与类加载时机。同时,解释了静态方法为何只能访问静态成员,并介绍了`main`方法的用法和命令行参数的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
右下角那个圈里写的是“类加载”
总结:在JDK8以前,静态变量存放在方法区里;
在JDK8以后,存放在堆里面的这个类对应的对象的最后。


静态变量是被所有的对象所共享的,在类加载时就已经生成了。


在这里插入图片描述


在这里插入图片描述


注意:类变量 和 实例变量 是两个东西,类变量是类的一个变量,每一个对象都可以用这个变量;
而实例变量是针对每一个对象而言的,它不属于类,属于每一个对象,它们互不干扰。

在这里插入图片描述

package com.test;

public class Static {
    public static void main(String[] args) {
        // 类变量是随着类的加载而创建的,所以没有实例化对象也可以访问
        System.out.println(A.name);
    }
}

class A {
    // 创建一个类变量
    public static String name = "小白";
}

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
Math是一个类,sqrt是Math中的类方法,我们不用实例化一个Math的对象,直接就能够使用当中的sqrt方法了,非常方便。
在这里插入图片描述


在这里插入图片描述
Q:为什么静态方法只能访问静态成员?
A:静态的内容是随着类的加载而加载的,而非静态的内容是实例化对象后才产生的。


main语法

在这里插入图片描述
public static void main(String[] args)中的名为args(argue-争论 + ment-表n. -> n.变量)的字符串数组,这是专门用于接收命令行参数的。
应用场景:运行该软件的时候必须要提供用户名和密码。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值