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

    总结

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

  • 相关阅读:
    [Luogu]小Z的AK计划
    [POI2006]OKR-Periods of Words
    [NOI2014]动物园
    [NOI2009]管道取珠
    [IOI2005]河流
    [国家集训队]Crash的文明世界
    [HDU5382]GCD?LCM!
    [AGC027E]ABBreviate
    [CF]Round510
    [NOIp2005]篝火晚会
  • 原文地址:https://www.cnblogs.com/skyell/p/10075556.html
Copyright © 2011-2022 走看看