场景:

你们都知道基本的数据类型,int,float等等这种是按值传递的。可是对于String,对象,Integer是怎样传递呢?java

原理知识:

若是参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟以前所谈的传值是同样的。若是在函数中改变了副本的 值不会改变原始的值.函数

若是参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。若是在函数中没有改变这个副本的地址,而是改变了地址中的 值,那么在函数内的改变会影响到传入的参数。测试

若是在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数仍是指向原来的 地址,因此不会改变参数的值。this

测试用例

输出结果为:spa

public class Person {

private int id;

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

public class TestBasicType {

public static void methonInt(int p) {

p =10;

}

public static void methonInteger(Integer p) {

p =10;

}

public static void methonString(String p) {

p ="word";

}

public static void methonStringObject(String p) {

p ="world";

}

public static void methodObj(Person p) {

p.setId(34534);

}

public static void main(String[] args) {

int a =3;

Integer b =4;

String s ="hello";

String sobj = new String("hello");

Person p = new Person();

p.setId(12312);

TestBasicType.methodObj(p);

TestBasicType.methonInt(a);

TestBasicType.methonInteger(a);

TestBasicType.methonString(s);

System.out.println("--int-------->" + a);

System.out.println("--Integer-------->" + b);

System.out.println("--String-------->" + s);

System.out.println("--StringObject-------->" + sobj);

System.out.println("--Object-------->" + p.getId());

}

}

--int-------->3code

--Integer-------->4orm

--String-------->hello对象

--StringObject-------->helloci

--Object-------->34534get

测试说明:

String,基本类型(int等等),包装类型(Integer等等)都是值传递

实际的对象为引用传递。

疑问:

在这里可能会有网友问了,包装类型,String难道不是对象么?说实话这里我也有疑惑,可是无论怎么样仍是以测试结果为准。

java integer 值传递_在java中String,对象,Integer(包装类型的)关于引用传递仍是值传递...相关推荐

  1. Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?...

    <Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?> <Java中的值传递和引用传递> 原理知识: 如果参数类型是原始类型,那么传过来的就是这 ...

  2. java同名变量在list中添加两次_去除集合中自定义对象的重复值(对象的成员变量值都相同)...

    package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; /* * 需求:去除集合中自定义对象的重复值( ...

  3. java中String,int,Integer,char、double类型转换

    java中String,int,Integer,char.double类型转换----https://www.cnblogs.com/kangyu222/p/5866025.html 转载于:http ...

  4. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  5. java开发区块链_使用Java语言从零开始创建区块链

    目前网络上关于区块链入门.科普的文章不少,本文就不再赘述区块链的基本概念了,如果对区块链不是很了解的话,可以看一下我之前收集的一些入门学习资源: 对区块链技术感到新奇的我们,都想知道区块链在代码上是怎 ...

  6. java中String对象作为参数传递问题

    问题 java中将对象作为参数传递究竟是值传递还是引用传递? 1.基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的. 2.对象作为参数传递时,是把对象在内存中的地址拷贝 ...

  7. Java中String是个什么类型?

    Java中String是个什么类型 Java中的八大基本数据类型 String 是个什么类型 String常见的方法 Java中的八大基本数据类型 面试官的套路 Java中的数据类型分为四类 1.整型 ...

  8. java中String对象和String变量

    2019独角兽企业重金招聘Python工程师标准>>> java中String对象和String变量 (2011-12-27 20:40:27) 转载▼ 标签: it 最近在论坛上看 ...

  9. java 堆转储快照_捕获Java堆转储的7个选项

    java 堆转储快照 堆转储是诊断与内存相关的问题的重要工件,例如内存泄漏缓慢,垃圾回收问题和java.lang.OutOfMemoryError.它们也是优化内存消耗的重要工件. 有很棒的工具,例如 ...

  10. java的字符串池_翻译-Java字符串池

    正如名字所示:Java中字符串池存储在堆内存中.我们知道java中String是一个特殊的类,我们可以通过new 操作符或者使用双引号""创建一个String对象. Java里的字 ...

最新文章

  1. Jquery通过Ajax方式来提交Form表单
  2. 静态路由协议的默认管理距离是_距离矢量路由选择协议
  3. python爬虫框架实例项目_python爬虫框架scrapy实例详解
  4. 无法删除当前已连接的用户处理办法
  5. 2020必知的 10 大顶级 python 库
  6. linux下的系统调用函数到内核函数的追踪
  7. Net设计模式实例系列文章总结[转]
  8. 2041. 干草堆(前缀和差分)
  9. boblog任意变量覆盖漏洞(二)
  10. 安泰测试新手教程-泰克数字示波器使用方法
  11. 基于STM32F429,Cubemx的SAI音频播放实验
  12. 国内人工智能行业发展现状
  13. Android Janus漏洞修复
  14. 现代计算机专业版官网,现代计算机期刊_投稿邮箱_杂志_编辑部_审稿_投稿须知...
  15. Java Geometry空间几何数据的处理应用
  16. 【No server address listed in hbase:meta for region XX】
  17. QCC3040---Glossary
  18. Ubuntu系统关闭搜狗输入法Shift切换中英文
  19. [ 数据库原理 ] 函数依赖关系
  20. 小米路由器青春版中继模式后登陆

热门文章

  1. python对象使用
  2. java中的IO操作之File类
  3. 常用软件包和环境配置(机器学习)
  4. C++ Deque(双向队列
  5. Mipmap纹理技术简介
  6. 阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练
  7. 大数据的下一站是什么?服务/分析一体化
  8. 阿里云专属数据库,重新定义云数据库新形态
  9. 五年,时间告诉我只有自己强大才是真的强大!
  10. 数字基础设施开源操作系统欧拉全新发布