JAVA值传递(call by value)
public class Foo {
static void operate(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
public static void main(String args[]){
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a+","+b);
}
}
输出AB , B
JAVA方法调用是通过“传值”,对于原型来说,是把值copy过去,与调用者就不相干了。但是对于引用来说,只是意味着把内存地址传过去,里面存放的“内容”跟调用者是同一个!也即说修改内容会影响调用者
x.append(y);//会使a变成AB,
但是
y = x ;//只是使“这个”方法内的临时变量y指向x,而不会影响此方法外的调用者的引用,
所以b还是含B
相关文档:
windows xp下配置JDK环境变量:
1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
2.安装完成后,右击“我的电脑”,点击“属性”;
3.选择“高级”选项卡,点击“ ......
1, 为什么wait与notify之前必须要加synchronized?
答案其实很简单,也是为了防止等待-通知机制出现race condition
为什么会出现race condition ?
答: 对象在被wait之前已经被另一线程notify , 之后的wait 会永久停止,并导致deadlock(死锁)
理想情况:
1, 第一个线程判断该对象是否要wait
2, 第一个线程将对象wait
3 ......
/*
* @(#)ObjectPoolManager.java 1.00 2005-5-1
*
* Copyright 2005 BeanSoft Studio. All rights reserved.
* PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package  ......
转载:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xuchanghao/archive/2009/01/16/3796276.aspx
一、多种方式读文件内容。
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputS ......
最近需要做一些JAVA底层操作,为了尽可能提高效率做了如下测试。
在同一个类中建立普通的PUBLIC方法和PUBLIC STATIC 方法两种,并使用JUnit进行多次循环。最终证明使用对象的方式调用效率高。
上结果。
起始时间Fri Mar 05 10:15:37 CST 2010结束时间Fri Mar 05 10:15:38 CST 2010时间间隔891
起始时间Fri ......