Java内存分配与参数传递
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内存分配与参数传递的更多相关文章
- JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和mu ...
- Java 内存分配(转)
Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性. 寄存器:JVM内部虚拟寄 ...
- java内存分配和String类型的深度解析
[尊重原创文章出自:http://my.oschina.net/xiaohui249/blog/170013] 摘要 从整体上介绍java内存的概念.构成以及分配机制,在此基础上深度解析java中的S ...
- Java内存分配及变量存储位置实例讲解
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般 ...
- 深入Java核心 Java内存分配原理精讲
深入Java核心 Java内存分配原理精讲 栈.堆.常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,详细讲解Java内存分配方面的知识. Java内存分 ...
- Java深入 - Java 内存分配和回收机制
Java的GC机制是自动进行的,和c语言有些区别需要程序员自己保证内存的使用和回收. Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC ...
- java内存分配原理
一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ◆堆:存放用new产生的数据 ◆静态域:存放在 ...
- Java内存分配
概述 对从事C和C++的程序员来说,在内存管理方面,他们既是拥有最高权利的人,也是从事最基础工作的“劳动人民”. 而对于Java程序员来说,JVM自动进行内存管理,程序员不再需要为每一个new操作去写 ...
- Java 内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java.这类文章网上有很多,但大多比较零碎.本文从认知过程角度出发,将带给读者一个系统的介绍. 进入正题前首先要知道的是Java程 ...
随机推荐
- php中 mysql 插入特殊字符(手机端的emoji表情)出现异常
今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F 的错误. 最终在网上查了一下,有 ...
- 4 Visual Effects 视觉效果 读书笔记 第四章
4 Visual Effects 视觉效果 读书笔记 第四章 Well, circles and ovals are good, but how about drawing r ...
- VB6程序中NULL注意事项
VB6中从数据库中取出栏位值进行操作,若栏位值为Null,则必须小心处理,否则极易导致程序出错退出. 通常我们从recordset中取出栏位值采用Fields方法,加上栏位名称,如 rsMoney.F ...
- webpack3整理(第二节/满三节)
消除未使用的CSS:安装PurifyCSS-webpack插件 cnpm i purifycss-webpack purify-css -D const glob = require('glob'); ...
- IE和DOM事件流、普通事件和绑定事件的区别
IE和DOM事件流的区别 IE采用冒泡型事件 Netscape(网络信息浏览器)使用捕获型事件 DOM使用先捕获后冒泡型事件 示例: <body> <div> <butt ...
- PowerShell让系统可以执行.ps1文件,开机,关机,在线时间 , Function自定义函数
Function Get-ComputerUptimeHistory { $q=' <QueryList> <Query Id="0" Path="Sy ...
- vs code 格式化 美化 html js css 插件 Beautify
安装 Beautify 插件 然后 F1 输入 Beautify file 回车即可
- windows SDK创建一个窗体
#include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, U ...
- react.js工程结构
1.index.html :UI界面入口.挂在点: 2.manifest.json:应用说明 3.package.json:工程说明.依赖说明等 4.source : 代码源文件
- sklearn.metrics.roc_curve
官方网址:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics 首先认识单词:metrics: ['mɛ ...