类 对象 对象实例

终于通了!!!

类、对象、对象实例

  1. 类(Class)
  • 类可以看作是创建对象的模板或蓝图。它定义了构成特定类型对象的属性和方法。
  • 类是抽象的,不能直接操作它,而是通过它来创建对象。
  • 例如,一个Person类定义了人的属性(如姓名、年龄)和方法(如说话、行走)。
  1. 对象(Object)
  • 对象是类的实例化结果,根据类的定义创建的具体实体。
  • 每个对象都有自己独立的属性值,但共享相同的方法结构。
  • 例如,根据Person类创建的对象可能代表具体的张三,拥有自己的姓名和年龄。
  1. 对象实例(Instance)
  • 对象实例通常是指特定的对象,有时这两个词可以互换使用。
  • 在更严格的语境下,实例可能强调的是某个类的一个具体表现或具体化的结果。
  • 例如,张三这个Person对象就是一个Person类的实例。

基本类型 —— 代码示例

​ *局部变量 —— 栈中;成员变量 —— 堆中;被 static 修饰的变量存放在堆中,它属于类,不属于对象

public class Test {
    // 成员变量,存放在堆中
    int a = 10;
    // 被 static 修饰,也存放在堆中,但属于类,不属于对象
    // JDK1.7 静态变量从永久代移动了 Java 堆中
    static int b = 20;

    public void method() {
        // 局部变量,存放在栈中
        int c = 30;
        static int d = 40; // 编译错误,不能在方法中使用 static 修饰局部变量
    }
}

详细介绍

类的元数据:类型信息、运行时常量池等通常存储在方法区(jdk之前叫永久代)

静态变量:属于类的(不是与类的实例相关联),由所有对象实例共享。静态变量在JDK8之前通常存储在方法区,而在JDK8及以后版本中则存储在堆中

对象实例:即通过new关键字创建的具体的对象,存储在Java堆中。每个对象实例都有自己的成员变量,这些成员变量随对象存储在堆中。当创建一个新的对象时,会在堆上分配相应的内存空间来存储对象的状态。

成员变量 :是对象的状态表示,存储在每个对象实例中。所以jdk8之前就在堆中

类的Class对象:它也是存在于中的。Class对象是类的运行时表示,包含了与类相关的元数据,如方法代码、变量名、方法名、访问权限等。这些信息是在类加载过程中由类加载器从类文件中提取并创建的Class对象的。

好记忆 tips:原本位于方法区的永久代(PermGen)被移除,取而代之的是元空间(Metaspace)。但这个变化主要是针对类的元数据,即类的信息、运行时常量池等。对于普通的对象实例而言,它们的存储位置并没有改变,依然存放在Java堆中。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值