首页 > 编程语言 >关于Java中值传递和址传递

关于Java中值传递和址传递

时间:2023-04-17 17:22:47浏览次数:35  
标签:arr Java 和址 int 数据类型 传递 实参 拷贝

参数传递在Java中有两种类型 值和址 其实本质都是一份拷贝
在调用函数的时候 进行压栈 传进来的参数会被开辟一份新的空间
传基本类型是把值传过去 传引用数据类型是实例指向实参

void m(int v){
//基本数据类型传值 是一份拷贝 不会影响实参
  v++
}
void m(int[] arr){
//底层 int[] copy=arr
//数组属于引用数据类型 拷贝过来的是一份地址 会影响实参
  arr[0]=2
}
void m(Object obj){
//拷贝过来的是地址 但是重新指向了新地址 obj的操作不会影响原参数/实参
  obj=new Object()
}

标签:arr,Java,和址,int,数据类型,传递,实参,拷贝
From: https://www.cnblogs.com/odfive/p/17326504.html

相关文章

  • Java集合框架
    Java集合框架概述Java集合框架是一个抽象数据类型的框架,它提供了一组接口和类,可用于处理各种类型的数据结构,如列表、队列、集、映射等。Java集合框架的主要特点是:1、可扩展性:Java集合框架提供了一组可扩展的接口和类,可让开发人员根据自己的需要实现新的数据结构和算法。2、高性能:Ja......
  • Java8新特性4_强大的Stream
    StreamAPI了解StreamJava8中有两个比较大的改变Lambda表达式StreamAPI(java.util.stream.*)Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找,过滤和映射数据等操作。使用StreamAPI对集合数据进行操作,就类似于使用SQL执行的......
  • Java8新特性5_并行流
    并行流与顺序流并行流并行流就是把一个内容分成多个数据库,并用不同的线程分别处理每个数据块的流Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,StreamAPI可以声明性的通过parallel()与sequential()在并行流与顺序流之间进行切换Fork/Join框架概念Fork/J......
  • Java8新特性6_Optional容器类
    Optional类概念Optional类是一个容器类,代表一个值存在或者不存在,原来null表示一个值不存在,现在Optional可以更好的表达这个概念,并且可以规避空指针异常常用方法Optional.of:创建一个Optional实例Optional.empty:创建一个空的Optional实例Optional.ofNullable:若t不为null......
  • Java8新特性1_HashMap变化
    Java8新特性主要特性Lambda表达式函数式接口方法引用与构造器引用StreamAPI接口中默认方法与静态方法新时间日期API最大化减少空指针异常(Optional)。。。。HashMap1.7在JDK1.7到JDK1.8的时候,对HashMap做了优化首先JDK1.7的HashMap当出现Hash碰撞的时候,最后插入的......
  • Java8新特性2_Lambda表达式
    Lambda表达式为什么要用Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁、更灵活的代码,作为一个更紧凑的代码风格,使Java语言表达能力得到了提升实例代码Lambda表达式最先替代的就是匿名内部类,假设......
  • Java8新特性3_方法引用和构造器
    方法引用与构造器引用方法引用概念若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用”,可以理解为方法引用是Lambda表达式的另外一种表现形式格式对象::实例方法名类::静态方法名类::实例方法名注意Lambda体中,调用方法的参数列表与返回值类型,要与函数式接口......
  • JavaScript对象
    JavaScript对象的定义无序属性的集合,其属性可以包含基本值、对象或者函数严格来说对象是一组没有特定顺序的值对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。(可以把对象想象成散列表:一组名值对,其中值可以是数据或函数)......
  • Java基础
    1.数据类型1.1基本类型byte/8char/16short/16int/32float/32long/64double/64boolean/~1.2包装类型byte=>Bytechar=>Charactershort=>Shortint=>Integerfloat=>Floatlong=>Longdouble=>Doubleboolean=>Boolean为什么要有Java的包装类型呢,直接使用基本类型不......
  • Java中的goto
    Java中的goto关键字在C/C++中,goto常被用于跳出多重循环。但goto语句的使用往往会使程序的可读性降低,所以Java不允许goto跳转。实际上,自从“goto有害论”提出后,软件开发就不建议使用goto了,但是Java中依然保留了goto这个关键字留作备用,但这个关键字没有任何作用,只是为了将来......