java传值和通过引用传递
第一次使用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传值和通过引用传递的更多相关文章
- java对象Integer不能引用传递
java对象Integer不能引用传递 /** * The value of the <code>Integer</code>. * * @serial */ private ...
- Java中参数的引用传递和值传递
1.一些定义 值传递:把实际传入参数的值,在内存中赋值一份 引用传递:传入的是实际参数的地址 2.传递基本类型的参数 因为Java是值传递,那就不难理解下面的代码不交换任何值 swap(Type ar ...
- java传值和传引用区别
1. 在java中所有的参数都是传值的,引用符号&的传递是C++中才有的:2. 在java传参中,基本类型(byte--short--int--long--float--double--boo ...
- java传值与传引用
一.传值与传引用 1.不管java参数的类型是什么,一律传递参数的副本. 在thinking in java中,明确指出,如果java是传值,那么传递的是值的副本,如果java传递的是引用,那么传递的 ...
- Java基础_0310:引用传递
引用传递 引用传递是Java之中最让初学者费解的概念,而在实际的开发之中,引用传递又有着非常重要的作用: 引用传递的核心在于同一块堆内存空间被不同的栈内存所指向: 范例:第一道引用传递范例 class ...
- php函数的传值如果需要引用传递注意的细节
Strict standards: Only variables should be passed by reference 网上查到资料有这么一句话: 在php5.3以上版本会出这个问题,应该也和p ...
- Java中String是“引用”传递
如题,在java中这是一个典型的问题. 在stackoverflow上已经有很多相似的问题被提问,并且有很多不正确或不完整的答案.如果你不往深处想,这是一个很简单的问题.但如果深入思考,它却很让人迷惑 ...
- Java学习---- 数组的引用传递
1. public class ArrayRefDemo01{ public static void main(String args[]){ int temp[] = {1,3,5} ; // 利用 ...
- Java中String的 "引用" 传递
1.来看一段有趣但又让人困惑的代码片段 public static void main(String[] args){ String x = new String("ab"); c ...
随机推荐
- 左右db_block_size了解和实验
关于db_block_gets了解和实验 实验 一. 自己手动创建的小表 创建一个区大小为 40k SYS@ORCL>show parameter db_block_size NAME ...
- MySQL InnoDB数据库备份与还原
备份 进入cm黑窗口 输入下列命令 mysqldump -u 用户名 -p 数据库名称> c:\11.sql 回车执行 恢复 进入cm黑窗口 输入下列命令 mysql>use dbtest ...
- toString()和String.valueof()比较
toString()和String.valueof()比较 做项目时常常会用到类型转换,比较常用的是toString(),但其实还是用String.valueof()比较好.看源码后他们的区别就更加 ...
- Swing中耗时任务需要另起新线程,这个新线程中更新GUI的操作仍需由EDT来做(转)
最近调试程序时发现,点击某个界面时会出现卡死的情况,出现的频率还是比较频繁的. 再次出现卡死的情况后,利用jvisualvm查看线程的运行情况,dump操作之后发现线程间出现了死锁:Found one ...
- RFC 协议下载方法
rfc官方网站:http://tools.ietf.org 举例说明: RFC7230是HTTP 1.1协议,此文档的URL为:http://tools.ietf.org/html/rfc7230 你 ...
- android Intent.createChooser 应用选择
在微博案例: 1.public void onClickShare(View view) { 2. 3. Intent intent=new Intent(Intent.ACTION_SEND); 4 ...
- JavaScript之三:jQuery插件开发(一)
在早期的开发中,正如前面闭包中所提到的那样,人们一开始并没有意识到要开发出插件这么个玩意儿,都是遇到啥写啥.在长期的工作中,人们发现很多代码是重复的,写了一遍又一遍,以登录页面为例,每写一次都需要重新 ...
- Android: ADT 23.0.2
http://pan.baidu.com/s/1gdnBUUJ 版权声明:本文博主原创文章.博客,未经同意不得转载.
- 【C语言】reverse_string(char * string)(递归)
递归reverse_string(char * string)性能. 逆转 原始字符串 更改 相反,打印出的. /* 编写一个函数reverse_string(char * string)(递归实现) ...
- Websocket实例
C#版Websocket实例 websocket有java.nodejs.python,Php等等版本,我使用的是C#版本,服务器端是Fleck,github地址:https://github.com ...