代码分析系列 内存执行过程

1、内存执行过程:(六:01:32:08-->)

package primary;

public class Main {
    public static void main(String args[]){
        Main m= new Main();
        int day = 15;
        Birthday b1 = new Birthday(27,11,1988);
        Birthday b2 = new Birthday(23,04,2013);
        m.change1(day);
        m.change2(b1);
        m.change3(b2);    
        b1.Display();
        b2.Display();
        }
    void change1(int num){
        num = 123;
    }
    void change2(Birthday b){
        b = new Birthday(04,01,1989);
    }
    void change3(Birthday b){
        b.setDay(26);b.setMonth(01);b.setYear(2015);
        
    }
}

class Birthday{
    int day;int month;int year;
    Birthday(int _day, int _month, int _year){
        day = _day;month = _month;year = _year;
    }
    void Display(){
        System.out.println("Birthday is:"+year+"-"+month+"-"+day);
    }
    public int getDay() {
        return day;
    }

public void setDay(int day) {
        this.day = day;
    }

public int getMonth() {
        return month;
    }

public void setMonth(int month) {
        this.month = month;
    }

public int getYear() {
        return year;
    }

public void setYear(int year) {
        this.year = year;
    }
    
}

输出:

Birthday is:1988-11-27
Birthday is:2015-1-26

2、涉及知识:

  栈内存和堆内存;引用传递和值传递;栈变量用完就释放,堆内存若干时间后会被GC回收。

  

时间: 03-14

代码分析系列 内存执行过程的相关文章

NodeManager代码分析之NodeManager启动过程

1.NodeManager概述 NodeManager(NM)是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存.CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务. NodeManager整体架构: 2.NodeManager分析 接下来将按照启动NodeManager时代码执行的顺序为主线进行代码分析. 2.1 main函数 打印N

java代码的编译、执行过程

Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码编译机制 类加载机制 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语义分析和生成class文件 流程图如下所示: 最后生成的class文件由以下部分组成: 结构信息.包括class文件格式版本号及各部分的数量与大小的信息 元数据.对应于Ja

Elasticsearch系列---搜索执行过程及scroll游标查询

概要 本篇主要介绍一下分布式环境中搜索的两阶段执行过程. 两阶段搜索过程 回顾我们之前的CRUD操作,因为只对单个文档进行处理,文档的唯一性很容易确定,并且很容易知道是此文档在哪个node,哪个shard中. 但搜索比CRUD复杂,符合搜索条件的文档,可能散落在各个node.各个shard中,我们需要找到匹配的文档,并且把从各个node,各个shard返回的结果进行汇总.排序,组成一个最终的结果排序列表,才算完成一个搜索过程.我们将按两阶段的方式对这个过程进行讲解. 查询阶段 假定我们的ES集群

python随笔系列--import执行过程简单论证

结论:模块在一个python解释器(一次生命周期)中,一个模块只被引入一次验证过程 ins01 site-packages]# echo 'print(11111)' > kai.py ins01 site-packages]# echo -e 'import kai\nprint(2222)' > yun.py ins01 ~]# python3 >>> import yun 1111111 22222 >>> import kai #这里没有执行kai里

iOS设计模式(代码分析系列2:简单工厂模式)

简单工厂模式示例代码下载地址, 1.简述 首先需要说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工作方法模式,是工厂方法模式的特殊实现(也就是说工厂模式包含简单工厂模式).这里对简单工厂模式进行介绍,是为后面的工厂方法和抽象工厂模式做一个引子. 2.定义 "专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类." 世界上就是由一个工厂类,根据传入的参数,动态地决定创建出哪一个产品类的实例. 3.结构图 简要分析结构图: ConcreteProduct

泊松表面重建中主函数中部分代码分析-关于内存设置

1 //总体来看是和内存设置有关的 2 #if defined(WIN32) && defined(MAX_MEMORY_GB) 3 if( MAX_MEMORY_GB>0 ) 4 { 5 //SIZE_T是ULONG_PTR类型又是unsigned __int64类型取值范围为2到2的64次方,貌似和64为操作系统支持的理论内存值有关系 6 SIZE_T peakMemory = 1; 7 peakMemory <<= 30;//peakMemory等于peakMemo

常用 Java 静态代码分析工具的分析与比较

转载自: http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能.特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中. 引言 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代

【转载】常用 Java 静态代码分析工具的分析与比较

摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能.特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中. 引言 在 Java 软件开发过程中,开发团

进程的切换与系统的一般执行过程

进程的调度时机与进程的切换 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 进程调度的时机 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度