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 ...
随机推荐
- Alamofire网络库进阶教程
本章节由CocoaChina翻译组成员星夜暮晨(博客)翻译自raywenderlich:Intermediate Alamofire Tutorial,敬请勘误. 欢迎回到我们的 Alamofire ...
- poj2386 Lake Counting(简单DFS)
转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj ...
- Android技术——切换视图(两)随着ViewPage达到Tab幻灯片浏览
Android技术--切换视图(一)~(四)在资源项目:https://github.com/YongYuIT/MeiNv_Liulanqi 一.早期android(android.support.v ...
- MINA2 源代码学习--源代码结构梳理
一.mina总体框架与案例: 1.总体结构图: 简述:以上是一张来自网上比較经典的图,总体上揭示了mina的结构,当中IoService包括clientIoConnector和服务端IoAccepto ...
- 《学习opencv》笔记——矩阵和图像处理——cvMax,cvMaxS,cvMerge,cvMin and cvMinS
矩阵和图像操作 (1)cvMax函数 其结构 void cvMax(//比較两个图像取最大值 const CvArr* src1,//图像1 const CvArr* src2,//图像2 CvArr ...
- HTML5 3D翻书效果(双面效应)
最后使用HTML5翻书效果达到测试,比较简单,它的升级版是 最后一个问题: 1)后,原来的页面连环画将成为一面镜子 2)无法实现双面翻书. 3)明显感觉页面似有近遮挡标志. 这次的升级版本号实现过程比 ...
- RESTful架构详解(转)
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- cocos2d-html5基金会
1 环境结构 版本号Cocos2d-html5-v2.2,tomcat7.0 构造tomcat.然后直接解压Cocos2d-html5-v2.2.zip.解压后根文件访问的文件夹index.html你 ...
- android在当前app该文件下创建一个文件夹
/********************************************************************* * Author : Samson * Date ...
- 基于PaaS人事部门间平台多重身份的技术解决方案
1.系统状态 该系统采用一个范围的省,它包含省总部和各中心.十三市分公司.其中,各县(市)局和办事处城市管理部门:由省级总部部门管理中心,它仅包含主省党部的工作人员.另一种是不在系统中. 系统业务包含 ...