JAVA中方法的参数传递方式只有一种:值传递。

JAVA内存分配:

1.栈:存放 基本类型的数据、对象的引用(类似于C语言中的指针)

2.堆:存放用new产生的数据

3.静态域:存放在对象中用static定义的静态成员

4.常量池:存放常量

5.寄存器

6.非RAM存储

class BirthDate{
private int day;
private int month;
private int year;
public BirthDate(int d,int m,int y){
day=d;
month=m;
year=y;
}
}

public class Test{
public static void main(String[] args){
int date=9;
Test test=new Test();
test.change(date);
BirthDate d1=new BirthDate(7,7,1970);
} public void change(int i){
i=1234;
}
}

public class TestTransfer{
public static void main(String[] args){
int a=6;
int b=9;
swap(a,b);
System.out.println("交换结束后,a的值是"+a+";b的值是"+b); //a=9,b=6
} public static void swap(int a,int b){
int tmp=a;
a=b;
b=tmp;
System.out.println("swap方法里,a的值是"+a+";b的值是"+b); //a=6,b=9
}
}

​前
​后
public class TestTransfer{
public static void main(String[] args){
DataSwap ds=new DataSwap();
ds.a=6;
ds.b=9;
swap(ds);
System.out.println("交换结束后,ds.a的值是"+ds.a+";ds.b的值是"+ds.b); //a=9,b=6
} public static void swap(DataSwap ds){
int tmp=ds.a;
ds.a=ds.b;
ds.b=tmp;
System.out.println("swap方法里,ds.a的值是"+ds.a+";ds.b的值是"+ds.b); //a=9,b=6
}
} class DataSwap{
public int a;
public int b;
}

来自我的没人看的csdn:
https://blog.csdn.net/qq_41990380/article/details/88669624

Java内存分配与参数传递的更多相关文章

  1. JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配

    Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和mu ...

  2. Java 内存分配(转)

    Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性. 寄存器:JVM内部虚拟寄 ...

  3. java内存分配和String类型的深度解析

    [尊重原创文章出自:http://my.oschina.net/xiaohui249/blog/170013] 摘要 从整体上介绍java内存的概念.构成以及分配机制,在此基础上深度解析java中的S ...

  4. Java内存分配及变量存储位置实例讲解

    Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般 ...

  5. 深入Java核心 Java内存分配原理精讲

    深入Java核心 Java内存分配原理精讲 栈.堆.常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,详细讲解Java内存分配方面的知识. Java内存分 ...

  6. Java深入 - Java 内存分配和回收机制

    Java的GC机制是自动进行的,和c语言有些区别需要程序员自己保证内存的使用和回收. Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC ...

  7. java内存分配原理

    一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ◆堆:存放用new产生的数据 ◆静态域:存放在 ...

  8. Java内存分配

    概述 对从事C和C++的程序员来说,在内存管理方面,他们既是拥有最高权利的人,也是从事最基础工作的“劳动人民”. 而对于Java程序员来说,JVM自动进行内存管理,程序员不再需要为每一个new操作去写 ...

  9. Java 内存分配全面浅析

    本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java.这类文章网上有很多,但大多比较零碎.本文从认知过程角度出发,将带给读者一个系统的介绍. 进入正题前首先要知道的是Java程 ...

随机推荐

  1. Web前端深思

    WEB视图层技术从最初刀耕火种的时代到如今技术框架丛生,其中的感受只有经历过才知道.但到目前为止前端领域还只是整个IT行业比较边缘化的分支,因为目前的前端coder大多都还停留在视图层的处理上,利用前 ...

  2. [BZOJ1083][SCOI2005]繁忙的都市 最小生成树

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1083 由kruskal算法原理可知,我们对一张无向图做普通的最小生成树,连上的最后一条边就 ...

  3. colormap画出的图不是彩色问题

    针对matlab2017渲染出的彩色图是黑白的问题. t=labels; t(tstSet(:,end-))=Relabels; t=reshape(t,,); t=t'; figure imshow ...

  4. Android BitmapFactory.decodeFile(filePath, options) 返回 Null 6.0权限

    今天在做拍照上传的时候遇到个问题,根据路径获取Bitmap 失败,一直返回空,以为这个路径获取Bitmap代码久经考验,不怀疑它,找参数传入是否正确,初步怀疑是 filePath 没传进去,打印 fi ...

  5. Python+Selenium 自动化测试获取测试报告内容并发送邮件

    这里封装一个send_mail()方法,用于测试完成后读取测试报告内容,并将测试结果通过邮件发送到接收人 # coding: utf-8 import smtplib from email.mime. ...

  6. 導出Excel方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  7. 上POJ刷题

    Online Judge系统      Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交给定问题的多种程序(如C.C++.Pascal.Java)源代码,系统对源代码进行 ...

  8. Drop和Truncate与Delete的区别

    1.Drop DROP TABLE test; 删除表test,并释放空间,将test删除的一干二净.(结构也被完全删除) 2.Truncate TRUNCATE test; 删除表test里的内容, ...

  9. Python学习笔记(2)——Python的函数、模块、包和库

    Table of Contents 1. 函数. 2. 模块. 3. 包(package) 4. 库(library) 初识Python,对于没有接触过编程的我,恐怕只能听懂什么是函数,这里介绍一下几 ...

  10. 小a与"204"(牛客)

    原题 公式 中间数字与变量之间乘号bug省略可能看着有点别扭例如8x2为8*x2 首先设扫一遍后0的个数为x0 2的个数为x2 4的个数为x4 ①如果x0=x4 ans=32*x4+4 ②如果x0&g ...