第一次使用int实验:

public class TTEST {
private static List<UserEntity> mList = new LinkedList<UserEntity>();
public static void main(String[] args) {
int a = 0;
changeA(a);
System.out.println("a = "+a);
} public static void changeA(int a){
a = 1;
}
}

输出:a = 0

这说明对于int值是按值传递。其它几个基本类型也是如此。

再使用自定义的类UserEntity来实验:

public class UserEntity {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
public class TTEST {
public static void main(String[] args) {
UserEntity userEntity = new UserEntity();
userEntity.setName("猿猴");
changeName(userEntity);
System.out.println("name = "+userEntity.getName());
} public static void changeName(UserEntity userEntity){
userEntity.setName("忽必烈");
}
}

输出:name = 忽必烈

我们再来使用一个linkedList<Object>来实验:

import java.util.LinkedList;
import java.util.List; public class TTEST {
private static List<UserEntity> mList = new LinkedList<UserEntity>();
public static void main(String[] args) {
UserEntity userEntity = new UserEntity();
userEntity.setName("石头");
addUser(userEntity);
System.out.println("name = "+userEntity.getName());
} public static void addUser(UserEntity userEntity){
mList.add(userEntity);
mList.get(0).setName("猿猴");
}
}

输出:name = 猿猴

这说明在使用我们自定义的类时,是按引用传递的。

接着。再来使用String实验:

public class TTEST {
public static void main(String[] args) {
String str= "開始的";
changeStr(str);
System.out.println("str = "+str);
} public static void changeStr(String str){
str = "改变的";
}
}

输出:str = 開始的

用Integer做实验也会发现没有改变。

说明我们依照java内置的对象也是值传递。因此我们能够做例如以下总结:

仅仅要我们自定义的类创建的对象。都是引用传递,系统内置基本类型和对象是通过转移。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

java传值和通过引用传递的更多相关文章

  1. java对象Integer不能引用传递

    java对象Integer不能引用传递 /** * The value of the <code>Integer</code>. * * @serial */ private ...

  2. Java中参数的引用传递和值传递

    1.一些定义 值传递:把实际传入参数的值,在内存中赋值一份 引用传递:传入的是实际参数的地址 2.传递基本类型的参数 因为Java是值传递,那就不难理解下面的代码不交换任何值 swap(Type ar ...

  3. java传值和传引用区别

    1. 在java中所有的参数都是传值的,引用符号&的传递是C++中才有的:2. 在java传参中,基本类型(byte--short--int--long--float--double--boo ...

  4. java传值与传引用

    一.传值与传引用 1.不管java参数的类型是什么,一律传递参数的副本. 在thinking in java中,明确指出,如果java是传值,那么传递的是值的副本,如果java传递的是引用,那么传递的 ...

  5. Java基础_0310:引用传递

    引用传递 引用传递是Java之中最让初学者费解的概念,而在实际的开发之中,引用传递又有着非常重要的作用: 引用传递的核心在于同一块堆内存空间被不同的栈内存所指向: 范例:第一道引用传递范例 class ...

  6. php函数的传值如果需要引用传递注意的细节

    Strict standards: Only variables should be passed by reference 网上查到资料有这么一句话: 在php5.3以上版本会出这个问题,应该也和p ...

  7. Java中String是“引用”传递

    如题,在java中这是一个典型的问题. 在stackoverflow上已经有很多相似的问题被提问,并且有很多不正确或不完整的答案.如果你不往深处想,这是一个很简单的问题.但如果深入思考,它却很让人迷惑 ...

  8. Java学习---- 数组的引用传递

    1. public class ArrayRefDemo01{ public static void main(String args[]){ int temp[] = {1,3,5} ; // 利用 ...

  9. Java中String的 "引用" 传递

    1.来看一段有趣但又让人困惑的代码片段 public static void main(String[] args){ String x = new String("ab"); c ...

随机推荐

  1. win8.1 usb3 速度慢的解决方法

    我买的金士顿u盘 驱动也装了,口业插对了 速度还是很慢 30m左右 解决方法 1 搞定了·,主板驱动问题.卸了主板驱动usb3.0的速度立马上100m/s,即使装了联想官方的驱动也会影响USB3.0的 ...

  2. Chapter 1 Securing Your Server and Network(4):使用虚拟服务帐号

    原文:Chapter 1 Securing Your Server and Network(4):使用虚拟服务帐号 原文出处:http://blog.csdn.net/dba_huangzj/arti ...

  3. Apache 2.4虚拟主机配置

    托管它指的是多个站点的执行一台机器上 (例如 company1.example.com 和 company2.example.com) . 机能够"基于 IP",即每一个 IP 一 ...

  4. ExtJS4 表格的嵌套 rowExpander

    今天做一个grid,里面的数据须要带明细,思来想去还是搞个表格嵌套吧!看下图 对于grid中每一条记录点击左边的+号能展开一个明细的子表格 全部数据包含列名均从后台获得,子表格的数据临时在本地以做測试 ...

  5. 《Hadoop》对于高级编程Hadoop实现构建企业级安全解决方案

    本章小结 ●    理解企业级应用的安全顾虑 ●    理解Hadoop尚未为企业级应用提供的安全机制 ●    考察用于构建企业级安全解决方式的方法 第10章讨论了Hadoop安全性以及Hadoop ...

  6. WebStorm的compass配置

    在webstorm中配置compass WebStorm是功能强大的前端开发专用IDE,拥有即时编辑(chrome).自动完成.debugger.Emmet.HTML5 支持.JSLint.Less. ...

  7. js 自己容易搞混的笔记查询

    相似的操作 var str2 = "0123456789"; console.log(str2.slice(4,7)); //------------"456" ...

  8. bash no such file or directory in ubuntu 1404

    我在我的今天macbook pro retina 里面安装的虚拟机ubuntu 1404. 当我试图执行cadence ncverilog时间.ubuntu终端错误"bash no such ...

  9. iOS coreData

    static int row=0; static const NSString *kStoryboardName = @"LRCoreDataViewController"; st ...

  10. Lazy<T>延迟初始化

    延迟初始化:Lazy<T> 1. 概述 我们创建某一个对象需要很大的消耗,而这个对象在运行过程中又不一定用到,为了避免每次运行都创建该对象,这时候延迟初始化(也叫延迟实例化)就出场了. 延 ...