zoukankan      html  css  js  c++  java
  • 检验 java 基础数据类型参数传递方式


    测试证明,java基础数据类型参数传递值虽是引用传递但是值不会改变。对象是引用传递,值会改变。
    为什么?找到一段话来解释这个问题。
    "对于字符串对象来说,虽然在参数传递的时候也是引用传递,但是java虚拟机在函数内部对字符串对象进行了特殊处理--视String对象为常量(final) 所以对传进来的引用地址所引用的String对象比能直接进行修改,而是产生一个副本对其进行操作,对其进行的操作不会影响原来的值。"
     
     
    参考sun官方认证试题,以String,Long,Double作例子。测试基本数据类型参数传递值是引用传递还是值传递:

           public static void a1() {
                String s = new String("Hello" );
                 modify1(s);
                System. out.println(s);
          }
          
           public static void modify1(String s) {
                s += "world!";
          }
          
           public static void a2() {
                Double d = new Double("1.0" );
                 modify2(d);
                System. out.println(d);
          }
          
           public static void modify2(Double d) {
                d = 2.0;
          }
          
           public static void a3() {
                Long d = new Long("1" );
                 modify3(d);
                System. out.println(d);
          }
     
           public static void modify3 (Long d) {
                d = 2L;
          }
          
           public static void main(String[] args) {
                 a1();
                 a2();
                 a3();
          }

  • 相关阅读:
    [计算机网络-传输层] 无连接传输:UDP
    [BinaryTree] 最大堆的类实现
    [OS] 生产者-消费者问题(有限缓冲问题)
    [剑指Offer] 64.滑动窗口的最大值
    [剑指Offer] 63.数据流中的中位数
    [剑指Offer] 62.二叉搜索树的第k个结点
    [OS] CPU调度
    [剑指Offer] 60.把二叉树打印成多行
    MySQL数据库实验二:单表查询
    数据库实验:基本表的定义与修改
  • 原文地址:https://www.cnblogs.com/svennee/p/4082940.html
Copyright © 2011-2022 走看看