java的函数参数传递

参数传递

java是:值传递(直接复制一个副本)

  1. 对于基础数据类型,直接复制新的对应基础类型数据。
  2. 对于引用类型,复制的是对象的引用。在不改变对象引用的情况下改变形参的成员变量数据,会影响到实际参数的变化。

知乎 - 第二个回答

实验

package com.company;class User
{String name;int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}public class Main {public static void main(String[] args) {// write your code hereUser olduser = new User();olduser.setName("test information");olduser.setAge(0);if(true) {ana_param(olduser);// Name:new obj change age:100// Name:test information age:0}else {ana_param_2(olduser);// Name:not new obj age:200// Name:not new obj age:200}System.out.println("Name:" +olduser.getName() + " age:" + olduser.getAge());}public static void ana_param(User user){// 改变指向// red lineuser = new User();user.setName("new obj change");user.setAge(100);System.out.println("Name:" +user.getName() + " age:" + user.getAge());}public static void ana_param_2(User user){// 直接使用传入的对象,不给它新的指向// blue lineuser.setName("not new obj");user.setAge(200);System.out.println("Name:" +user.getName() + " age:" + user.getAge());}
}

String作为参数

package com.company;public class Main {public static void main(String[] args) {String oldstr = "const-save";ana_param(oldstr);System.out.println(oldstr+ "\n\n");ana_param_2(oldstr);System.out.println(oldstr+ "\n\n");StringBuilder sb = new StringBuilder("const-save");ana_param_3(sb);System.out.println(sb.toString());}public static void ana_param(String str){// 改变指向str = "change-1";System.out.println(str);}public static void ana_param_2(String str){// 还是变化了指向str = str.concat("not yinyong");System.out.println(str);}public static void ana_param_3(StringBuilder str){// 还是使用StringBuilder的方法直接改变指向的字符串信息str.append("not yinyong");System.out.println(str.toString());}
}-------------------- output ------------------------
change-1
const-saveconst-savenot yinyong
const-saveconst-savenot yinyong
const-savenot yinyong

java函数的参数传递相关推荐

  1. java 方法当参数_如何在Java中将函数作为参数传递?

    如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数                                     14个答案 是否可以将方法作为参 ...

  2. java函数修饰符_Java 函数 面向对象,修饰符,类,构造方法,this

    1.函数 函数就是定义在类中,具有特定功能的一段小程序. 在面向对象编程的语言中,函数也叫方法. 2.函数的格式 修饰符 返回值类型 函数名(参数类型 实际参数,....) { 执行语句; retur ...

  3. Java中的参数传递,到底是值传递还是引用传递?

    文章内容为转载,转载自公众号Hollis关于我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 原文链接:我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 知乎回答链接:Java 到 ...

  4. JavaScript与Java函数的比较

    JavaScript与Java函数的比较 学习了两天的JavaScript,会觉得这是一门和Java类似但又有很大不同的语言.很想将这种感受写下来并举例做一些分享. 函数成为了对象? 你很难想到,在学 ...

  5. 【Groovy】Groovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )

    文章目录 一.Groovy 构造函数中为成员赋值 二.Groovy 函数的参数传递与键值对参数 三.完整代码示例 一.Groovy 构造函数中为成员赋值 Groovy 类没有定义构造函数 , 但是可以 ...

  6. 把接口作为函数的参数,那么任何实现了接口的类的实例都可以作为此函数的参数传递...

    把接口作为函数的参数,那么任何实现了接口的类的实例都可以作为此函数的参数传递 转载于:https://www.cnblogs.com/xiaodangshan/p/9784315.html

  7. android jni 回调 java_android linux线程通过JNI回调java函数 | 学步园

    Linux线程通过JNI回调JAVA函数 最近做的一个小工程需要用到回调函数,由linux层回调到java层,调试的时候会遇到一些问题,免得忘记,在这里记录一下: JNI的各种数据类型和数据结构我就不 ...

  8. 20 Python函数、定义一个函数、参数传递、匿名函数、return语句、变量作用域、

    20Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  9. android JNI层线程回调Java函数

    今天,简单讲讲android的jni如何使用jni回调java函数. 之前,我写了部分jni的博客,讲的都是如何从android的java代码调用jni的函数.最近,需要做一个新的功能,在jni的C函 ...

最新文章

  1. LLVM基础技术图例
  2. rspec 测试页面元素_如何使用共享示例使您的RSpec测试干燥
  3. 关于Git和Github你不知道的十件事
  4. android第一天
  5. 进程间通信的方式(四):信号量
  6. 从frame跳转到一个新的页面
  7. 面试中如何回答“你是否愿意加班”
  8. python读取图片属性_[Python图像处理]三.获取图像属性及通道处理
  9. STL Deque 容器
  10. HttpServletRequest的方法详细说明
  11. ceph 存储 对比_分布式存储系统 Curve
  12. Codeforce 189B——Counting Rhombi
  13. Apache Cassandra static column 介绍与实战
  14. sql 查询所有数据库-表-表结构
  15. vbox设置剪切板共享
  16. Safe handle has been closed异常的原因及解决思路
  17. mybatis开发中遇到的小问题
  18. 赛尔号登录器显示服务器未开启,赛尔号登录界面改版啦!
  19. 【网络安全】SQL注入详细分析
  20. Vue 组件化通信 provide inject ,dispatch ,boardcast

热门文章

  1. 无人驾驶服务器适合部署在哪个位置,手机位置服务器在哪里设置的
  2. 获取日志的等级_进阶之路:Java 日志框架全画传(中)
  3. 怎么将ip地址改成域名访问_什么是域名解析?怎么把域名解析成IP地址?
  4. new file会创建文件吗_Python处理文件—os模块
  5. oracle dg巡检,oracle dg状态检查及相关命令
  6. linux 环境搭建Jenkins
  7. java和js实现电话号码部分隐藏
  8. Maven--部署构件至 Nexus
  9. Linux下部署Kafka分布式集群,安装与测试
  10. JavaScript(JS)常用的正则表达式