`

了解值传递和引用传递

    博客分类:
  • java
 
阅读更多
Java中,String、Date、基本类型和基本类型的封装类都是以值的方式参数传递,而其他类型都是以引用的方式参数传递。
值参数传递示例:
//基本类型
public static void main(String[] args) {
int i = 5;
counter(i);
System.out.println(i); //5
}
static void counter(int t) {
t = 23;
}

//基本类型封装类
public static void main(String[] args) {
Integer age = new Integer(12);
counter(age);
System.out.println(age); //12
}
static void counter(Integer age) {
age = 27;
}

//String类
public static void main(String[] args) {
String str = new String("First");
counter(str);
System.out.println(str); //First
}
static void counter(String str) {
str = "Second";
}

//Date类
public static void main(String[] args) {
Date now = new Date();
counter(now);
System.out.println(now); //Fri Mar 06 22:15:14 CST 2009
}
static void counter(Date date) {
date = null;
}

引用参数传递示例:
//StringBuffer类
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("First");
counter(sb);
System.out.println(sb); //FirstSecond
}
static void counter(StringBuffer sb) {
sb.append("Second");
}

//String数组
public static void main(String[] args) {
String[] sa = new String[1];
sa[0] = "A";
counter(sa);
System.out.println(sa[0]); //[B]
}
static void counter(String[] alias) {
alias[0] = "B";
}

//List类
public static void main(String[] args) {
List list = new ArrayList();
list.add("A");
counter(list);
System.out.println(list); //[A, B]
}
static void counter(List alias) {
alias.add("B");
}
分享到:
评论

相关推荐

    java通过实例了解值传递和引用传递

    主要介绍了java通过实例了解值传递和引用传递,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    深入理解python中函数传递参数是值传递还是引用传递

    主要介绍了深入理解python中函数传递参数是值传递还是引用传递,涉及具体代码示例,具有一定参考价值,需要的朋友可以了解下。

    JS是按值传递还是按引用传递

    按值传递 VS. 按引用传递 按值传递(call by value)是最常用的求值策略:函数的形参是被调用时所传实参的副本。...我们先看一个C的例子来了解按值和引用传递的区别:  代码如下: void Modify(int p

    JavaScript中的值是按值传递还是按引用传递问题探讨

    在分析这个问题之前,我们需了解什么是按值传递(call by value),什么是按引用传递(call by reference)。在计算机科学里,这个部分叫求值策略(Evaluation Strategy)。它决定变量之间、函数调用时实参和形参之间值是...

    Python函数中参数是传递值还是引用详解

    主要介绍了深入了解Python函数中参数是传值还是传引用,在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的,需要的朋友可以参考下

    PHP数组传递是值传递而非引用传递概念纠正

    在调用函数时通过将PHP数组作为实参赋给形参,在函数中修改,并不会影响到数组本身,说明此过程中的传递为值传递,数组变量并非是指向此数组本身的引用,感兴趣的朋友可以了解下,或许对你有所帮助

    C#中的DateTime是值类型还是引用类型

    近期遇到了DateTime到底是值类型还是引用类型的疑惑,顺势较深入地了解一下DateTime相关的内容 结论:DateTime是值类型,因为DateTime是结构体,而结构体继承自System.ValueType,属于值类型 一、DateTime是值类型...

    简单了解vue中父子组件如何相互传递值(基础向)

    首先,你需要知道vue中父组件和子组件分别指的是什么? 父组件:vue的根实例——用new Vue()构造函数创建的vue实例(实例会有一个挂载点,挂载点里的所有内容可理解为父组件的内容)   这里以root为挂载点,root里...

    为方法传递对象参数&对象数组.pptx

    理解并掌握Java中参数传递方式—值传递 掌握对象数组的创建,理解对象数组元素中的值 掌握对象数组的使用 了解不可变对象和类的概念 ;给方法传递一个对象,是将对象的引用传递给方法的形参(也是同类型的引用变量);...

    Rust的教程.txt

    函数定义与调用:掌握Rust中函数的定义、参数传递和返回值处理。 模块与包:了解如何组织代码到模块和包中,实现代码的复用和封装。 四、数据结构 元组与枚举:学习使用元组来组合多个值,以及使用枚举类型来...

    C#中的方法应用PPT

    1)理解使用方法的优点; 2)掌握方法的定义; 3)掌握方法的调用,了解方法的调用过程; 4)掌握方法嵌套调用和递归调用; 5)理解并掌握方法间的两种参数传递方式(值传递、引用传递);

    通过实例了解js函数中参数的传递

    先看一道JS的笔试题: var setObj=function(o){ o.name="xiaoming";...函数传递值类型: 代码实例如下: function addNum(num){  num+=10;  return num; } var num=10; var result=addNum(num); console

    wdi_6_js_demo_intermediate

    了解“按值传递”和“按引用传递”之间的区别,以及“副作用”何时以及如何发生。 了解如何构造和使用变量作用域,即执行上下文。 了解 IFFE 模式。 了解如何从函数传递和返回函数。 理解闭包。 原始类型。 有...

    汇编语言教程 了解机器底层运作

     9.1 宏的定义和引用  1 宏的定义  2 宏的引用  3 宏的参数传递方式  4 宏的嵌套定义  5 宏与子程序的区别  9.2 宏参数的特殊运算符  1 连接运算符  2 字符串整体传递运算符  3 字符转义运算符  4 ...

    python进行参数传递的方法

    在分析python的参数传递是如何进行的之前,我们需要先来了解一下,python变量和赋值的基本原理,这样有助于我们更好的理解参数传递。 python变量以及赋值 数值 从几行代码开始 In [1]: a = 1 In [2]: b = a In [3...

    javascript文档

    |= 运算符 对变量和表达式的值执行按位“或”运算,结果赋给变量。 || 运算符 对两个表达式执行逻辑或运算。 ^ 运算符 对两个表达式执行异或运算。 ^= 运算符 对变量和表达式的值执行按位异或运算,结果赋给变量...

    C#中struct和class的区别详解

    本文详细分析了C#中struct和class的区别,对于C#初学者来说是有必要加以了解并掌握的。 简单来说,struct是值类型,创建...● 类作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值 ● 类没有默

    Python参数传递实现过程及原理详解

    在分析python的参数传递是如何进行的之前,我们需要先来了解一下,python变量和赋值的基本原理,这样有助于我们更好的理解参数传递。 python变量以及赋值 数值 从几行代码开始 In [1]: a = 1 In [2]: b = a In [3...

    零起点学通C++多媒体范例教学代码

    9.2.1 按值传递 9.2.2 按址传递 9.2.3 按别名传递 9.2.4 让函数返回多个值 9.3 传递对象 9.3.1 按值来传递对象 9.3.2 利用指针来传递对象 9.3.3 利用cost指针来传递对象 9.3.4 利用引用来传递对象 9.3.5 到底是使用...

Global site tag (gtag.js) - Google Analytics