zoukankan      html  css  js  c++  java
  • [Java]Java类和对象内存分配详解

    描述

    代码说明:
    一.当Person p1 = new Person();第一次被调用时需要做两件事:
    1.先判断类加载器是否加载过Person类,如果没有则加载到Person类型到方法区
    2.在堆中开辟内存空间,在栈中对象名引用(指向)堆的相应内存空间
    二. p1.name = '皓皓': 将堆中name赋值为‘皓皓’;
    三. Person p2 = new Person(): 此时方法区中已经存在Person类,所以不需要再次加载
    四. p2.name = 'john'; 将堆中name赋值为‘john’;

    类和对象代码

    // 创建类
    public class Person{
    	// 编写属性
    	String name;
    	int age;
    	doubel height;
    	// 编写方法
    	public void eat(){
    
    	}
    } 
    
    
    // 类的实例化
    public static void main(String[] args) {
    	Person p1 = new Person();
    	p1.name = '皓皓':
    	Person p2 = new Person():
    	p2.name = 'john';
    }
    

    类和对象内存分配详解图

    image

    总结

    栈:对象的引用、局部变量
    堆:对象、全局变量
    方法区:类信息

  • 相关阅读:
    hdoj 2586 How far away?(最近公共祖先)
    poj 1330 A-Nearest Common Ancestors
    心形图
    B1928 日期差值
    B1022 D进制的A+B
    B1009 说反话
    hihocoder 1498 签到
    51Nod 1082 与7无关的数
    51Nod 1015 水仙花数
    51Nod 1283 最小周长
  • 原文地址:https://www.cnblogs.com/skyell/p/10075556.html
Copyright © 2011-2022 走看看