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程 ... 
随机推荐
- es6核心特性-数组扩展
			1. Array.from() : 将伪数组对象或可遍历对象转换为真数组 如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,称为伪数组.典型的伪数组有函数的argu ... 
- 如何安装sql server2005   windows 8
			如何安装sql server2005 windows 8 1 从网上下载到本地文件 ,这里使用的是cs_sql_2005_dev_all_dvd 安装版. 2. 点击下图所表示进行安装 3. ... 
- jquery 微信端 点击物理返回按钮,弹出提示框
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- CAD参数绘制椭圆(网页版)
			在CAD设计时,需要绘制椭圆,用户可以设置椭圆的基本属性. 主要用到函数说明: _DMxDrawX::DrawEllipse 绘制椭圆.详细说明如下: 参数 说明 DOUBLE dCenterX 椭圆 ... 
- Learning Discriminative and Transformation Covariant Local Feature Detectors实验环境搭建详细过程
			依赖项: Python 3.4.3 tensorflow>1.0.0, tqdm, cv2, exifread, skimage, glob 1.安装tensorflow:https://www ... 
- Jenkins总结(ant+jmeter+java)
			1.jdk与ant都需要在Jenkins-->系统管理-->全局工具配置里面配置各自的安装目录 2.修改Jenkins配置文件后,通过命令行重启: source /etc/profile ... 
- 富文本编辑器复制Wod字体问题
			目前常用的富文本编辑器:百度版UEditor,wangEditor,ckeditor,kindeditor,TinyMCE.当Word复制文本粘贴到编辑器时,几乎都无法保证字体大小完全一致的问题. 想 ... 
- 第2节 hive基本操作:11、hive当中的分桶表以及修改表删除表数据加载数据导出等
			分桶表 将数据按照指定的字段进行分成多个桶中去,说白了就是将数据按照字段进行划分,可以将数据按照字段划分到多个文件当中去 开启hive的桶表功能 set hive.enforce.bucketing= ... 
- CSS Paint API绘制透明格子背景实例页面
			CSS代码: .box { width: 180px; height: 180px; background: paint(transparent-grid); } HTML代码: <div cl ... 
- 漫谈WEB前端学习路线
