032_面向对象_05_程序执行过程的内存分析_02

一、实例代码  

package edu.aeon.test;
/**
 * [说明]计算机类
 * @author aeon
 */
public class Computer {
    /**计算机品牌*/
    public String brand;
    /**计算机cpu速度*/
    public int cpuSpeed;
}
package edu.aeon.test;
/**
 * [说明]学生类
 * @author aeon
 * 类包括静态的属性和动态行为
 */
public class Student {
    /**学生证号*/
    private  int stuId;
    /**学生姓名*/
    private String stuName;
    /**学生性别 0(false)-女  1(true)-男*/
    private boolean sex;
    /**学生电脑*/
    private Computer computer;
/**
 * 动态行为:学习
 */
 public void stard(){
    System.out.println(stuName+"正在学习!");
 }
 public static void main(String[] args) {
    /**创建学生对象(实例)*/
    Student student=new Student();
    System.out.println("==================默认初始化==================");
    System.out.println("学生证号:"+student.stuId);
    System.out.println("学生姓名:"+student.stuName);
    System.out.println("学生性别:"+student.sex);
    student.stard();
    System.out.println("==================程序初始化==================");
    student.stuId=10010;
    student.stuName="张三";
    student.sex=true;
    System.out.println("学生证号:"+student.stuId);
    System.out.println("学生姓名:"+student.stuName);
    System.out.println("学生性别:"+(student.sex==true?"男":"女"));
    student.stard();

    Computer computer=new Computer();
    computer.brand="联想";
    student.computer=computer;
    System.out.println(student.computer.brand);
 }
}

二、内存分析图

  

原文地址:https://www.cnblogs.com/aeon/p/9951570.html

时间: 2024-11-07 09:20:18

032_面向对象_05_程序执行过程的内存分析_02的相关文章

面向对象编程(三)——程序执行过程中内存分析

阅读目录 内存分析(SxtStu.java)对于java 和内存之间的注意事项 内存分析(SxtStu.java) Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性.所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提.  一个完整的Java程序运行过程会涉及以下内存区域: 寄存器: JVM内部虚拟寄存器,存取速度非常快,程序不可控制. 栈: 保存局部变量

程序执行过程的内存分析

1 当类第一次加载时,会将类的信息加载到堆中,以后就直接调用. 加载到堆中的类信息包含如下: (1)   成员属性 (2)   类中定义的方法 (3)   Static变量 (4)   常量 2  Java中除8种基本数据类型外,其他的变量类型都称之为引用类型

程序运行过程的内存分析。

栈:自动分配连续的空间,后进先出.用于存放局部变量 Example:s1(局部变量.new出来以后放到堆里保存) s1中存放一个地址,指向堆中保存的对象,对象中的各种属性也各自存放一个地址,指向堆内方法区中所保存的代码.static变量以及常量池等.图例如下 堆:空间不连续.用于放置new出的对象 方法区:存放类的信息(代码).static变量.常量池(字符串常量)等. Example:student类信息:1.代码(属性.方法).2.static变量.3.常量池(字符串常量--等) .

java程序执行过程&基本数据类型

1. 程序load到内存. 2. 找到程序入口方法(main())开始执行. 3. 程序在内存中的存放 3.1 代码段(code segment)--------存放代码 3.2 数据段(data segment)--------存放静态变量,字符串常量 3.3 栈(stack)                ----------存放局部变量 3.4 堆(heap)                -----------存放new出来的东西 ----------------------------

【计算机原理】程序执行过程

本章主要介绍程序执行过程中操作系统.CPU都干了什么 运行前 程序在运行前,只是在硬盘上待着,此时就是一堆二进制代码而已,没有任何作用. 程序只有进入了内存才能运行,但是要进入内存,则需要服从操作系统的调度. 一个程序在运行的时候可能需要很大的空间,比如3G,但是操作系统不可能为每个程序都分配那么大,因为同时加载入内存的程序可能很多. 所以操作系统想了个办法,它和CPU一起"欺骗"了程序,它可以把硬盘的部分空间当作内存展示给程序,这就是虚拟内存技术,这种欺骗手段能实现的原因在于,程序的

MFC程序执行过程剖析

一 MFC程序执行过程剖析 1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数.而在MFC程序当中我们不在能找到类似WinMain这样的程序入口,取而代之的是一系列派生类的声明和定义以及一个冲CWinApp类派生而来的类的全局对象.CWinApp类被称之为应用程序对象,在一个MFC程序当中只允许有一个应用程序对象.由于CWinApp的派生对象是全局的,因此这个对

Windows程序执行过程

Windows应用程序: WinMain函数(入口函数): 1. 设计窗体类,注冊窗体类.WNDCLASS 2. 创建窗体,显示及更新窗体. 3. 消息循环. 窗体过程函数(回调函数):WindowProc PS:Dos程序入口函数为main,Windows程序入口为WinMain,都是由系统直接调用. windows程序执行过程 #include<windows.h> #include<stdio.h> LRESULT CALLBACK WinSunProc( //窗体过程函数(

MFC学习之程序执行过程梳理

*首先利用全局变量对象theApp启动应用程序.这是由于这个全局对象,基类CWinApp中this的指针才干指向这个对象.假设没有这个全局对象,程序在编译时不会出错,但在执行时就会出错. *调用全局应用程序对象的构造函数,从而就会先调用其基类CWinApp的构造函数.后者完毕应用程序的一些初始化工作,并将应用程序对象的指针保存起来. *进入WinMain函数.在AfxWinMain函数中能够获取子类(对Test程序来说就是CTestApp类)的指针,利用此指针调用虚函数:InitInstance

深入了解Java面向对象之程序执行顺序

Java中main方法,静态,非静态的执行顺序详解 Java程序运行时,第一件事情就是试图访问main方法,因为main相等于程序的入口,如果没有main方法,程序将无法启动,main方法更是占一个独立的线程,找到main方法后,是不是就会执行mian方法块里的第一句话呢?答案是不一定  看看下面两种最常见的情况: 第一种情况: main方法在一个具有其他方法或属性的类中: public class Test1 { public static String name; public Test1(