Java传值和传引用: 张三和李四的故事
下面开讲故事:
从前有个房间,房间里有份文档,房间还有一把钥匙。 这把钥匙在张三手里。
这时李四来向张三要那份文档。 张三不太喜欢李四,但又怕耽误了
工作不好交代。于是张三就把房间里文档的文档复印了一份,然后把那个复印件交给了李四(这叫传值)。
李四拿到文档后(复印件),胡乱修改一番,心想:张三,这回要你好看。可是他没想到那份原件还好好的在张三的房间里锁着呢。
以上故事对应:
public static void counter(int count) {
count = 2;
}
这个李四不甘心,于是他偷偷地配了一把张三的钥匙(这叫传引用), 准备进入房间修改那份文档。
这事被张三及时发现,他悄悄的把李四配的钥匙换成了另外一个房间的钥匙。
李四去了错误的房间。 张三再次以胜利告终!
以上故事对应:
public static void changeA1(int[] ints) {
ints = temp;
int[] temp = new int[3];
ints[0] = 7;
ints[1] = 8;
ints[2] = 9;
}
李四锲而不舍,他趁张三还沉浸两次胜利的喜悦里,终于成功的配了钥匙(这叫传引用),达到了修改那份文档原件的目的。
以上故事对应:
public static void changeA2(int[] ints) {
ints[0] = 4;
ints[1] = 5;
ints[2] = 6;
}
故事讲完了。 这里需要注意的是无论是传值还是传引用,传的都是复本(文档复印件或配的钥匙)。
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
Thread.currentThread().getName().equals("xxxx") 这条语句返回一个 bool 型的结果。判断当前运行的进程是否和 xxxx 的名字一样。
定义线程的两种方法:class a1 extends Thread{ } a1 xiancheng=new a1();
二是:用接口回调技术。 class a1 implements Runnable{ } a1 ......
import
java.util.Random;
/**
*
排序测试类
*
*
排序算法的分类如下:
*
1.
插入排序(直接插入排序、折半插入排序、希尔排序);
*
2.
交换排序(冒泡泡排序、快速排序);
*
3.
选择排序(直接选择排序、堆排序);
  ......
1. 首先String不属于8种基本数据类型,String是一个对象。
因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
3. String str=”kvill”;
String str=n ......