Java中的值传递和地址传递
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド?スタブ
List li = searchCrdNo();
System.out.print("main method now is :"+((Map) li.get(0)).get("AA"));
}
public static List searchCrdNo() {
List li = new ArrayList();
Map ma = new HashMap();
ma.put("AA", "1");
li.add(ma);
Map crdNoMap = (Map) li.get(0);
crdNoMap.put("AA", "22");
System.out.print("now is :"+((Map) li.get(0)).get("AA"));
return li;
}
}
now is :22main method now is :22
最简单的例子,按值传递的例子!
相关文档:
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
基本类型包括:byte, short, int, long, char, float, double ......
public class Sort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arry = { 19, 10, 5, 45, 100, 30, 35, 29 };
int[] sortArry = mergeSort(arry);
for (int i = 0; i < sortArry.le ......
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离 ......