博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
应聘学习法开创者之二java中只有值传递是否是谣言?(ainusers原创)
阅读量:2177 次
发布时间:2019-05-01

本文共 1228 字,大约阅读时间需要 4 分钟。

定义:值传递:在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数引用传递:在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数共享传递:(个人感觉没啥用)共享传递是传递对象的引用的副本,不会修改原值
java代码:@Test    void contextLoads() {        String name = "Scott";        int age = 5;        User user = new User();        user.setName(name);        user.setAge(age);        System.out.println("before change user = " + user);        change(user, name, age);        System.out.println("name = " + name);        System.out.println("age = " + age);        System.out.println("after change user = " + user);    }    public static void change(User user, String name, int age) {        name = "Tom";        age = 20;        user.setName(name);        user.setAge(age);    }    static class User {        private String name;        private int age;    }
js代码:值传递:var value = 1;function foo(v) {    v = 2;    console.log(v); //2}foo(value);console.log(value) // 1引用传递:var obj = {    value: 1};function foo(o) {    o.value = 2;    console.log(o.value); //2}foo(obj);console.log(obj.value) // 2共享传递:var obj = {    value: 1};function foo(o) {    o = 2;    console.log(o); //2}foo(obj);console.log(obj.value) // 1
小结:java和js都是相同的,虽然js的底层引擎是c++基本数据类型+String是值传递引用数据类型(对象)是引用传递共享传递,个人感觉确实挺不太适合存在

 

转载地址:http://lkdkb.baihongyu.com/

你可能感兴趣的文章
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
几个简单的SQL例子
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>