浅谈JAVA内存分配与参数传递

 更新时间:2019年03月21日 08:43:17   作者:Hola World  
这篇文章主要介绍了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;
}

以上所述是小编给大家介绍的JAVA内存分配与参数传递详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • SpringMVC+Mysql实例详解(附demo)

    SpringMVC+Mysql实例详解(附demo)

    本篇文章主要介绍了SpringMVC+Mysql实例详解(附demo),小编觉得挺不错的,现在分享给大家,也给大家做个参考。
    2016-12-12
  • IntelliJ IDEA中properties文件显示乱码问题的解决办法

    IntelliJ IDEA中properties文件显示乱码问题的解决办法

    今天小编就为大家分享一篇关于IntelliJ IDEA中properties文件显示乱码问题的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • java开发分布式服务框架Dubbo调用过程

    java开发分布式服务框架Dubbo调用过程

    这篇文章主要为大家介绍了java开发分布式服务框架Dubbo调用过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • Java中的Rocketmq事务消息详解

    Java中的Rocketmq事务消息详解

    这篇文章主要介绍了Java中的Rocketmq事务消息详解,RocketMQ的事务消息支持在业务逻辑与发送消息之间提供事务保证,RocketMQ通过两阶段的方式提供事务消息的支持,需要的朋友可以参考下
    2023-08-08
  • SpringBoot前后端分离跨域问题:状态码403拒绝访问解决办法

    SpringBoot前后端分离跨域问题:状态码403拒绝访问解决办法

    这篇文章主要给大家介绍了关于SpringBoot前后端分离跨域问题:状态码403拒绝访问的解决办法,403是被服务器拒绝了,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • springboot实现对注解的切面案例

    springboot实现对注解的切面案例

    这篇文章主要介绍了springboot实现对注解的切面过程,首先定义一个注解、再编写对注解的切面只是记录的执行时间和打印方法,可以实现其他逻辑,需要的朋友可以参考一下
    2022-01-01
  • SpringCloud-Config分布式配置代码示例

    SpringCloud-Config分布式配置代码示例

    这篇文章主要介绍了SpringCloud-Config分布式配置代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 浅析final,finally,finalize 的区别

    浅析final,finally,finalize 的区别

    以下是对final,finally,finalize的区别进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-09-09
  • Kylin对接JDBC集成Zepplin的实现方法

    Kylin对接JDBC集成Zepplin的实现方法

    Zepplin是一个非常好用的编辑器工具,通过自定义编码可以实现更多的业务逻辑,接下来通过本文给大家分享Kylin对接JDBC和Zepplin的操作代码,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Java优雅的处理金钱问题(BigDecimal)

    Java优雅的处理金钱问题(BigDecimal)

    本文主要介绍了Java优雅的处理金钱问题(BigDecimal),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论