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
相关文档:
Android_1.0_eBook_by_tom_kao_2008_10_15.pdf
《Android应用框架原理与程序设计36技》
本書完整範例程式碼請到網站下載:
www.misoo1.com 或 tom-kao.blogspot.com
高煥堂 著(2008 年10 月第三版)
misoo.tw@gmail.com
&n ......
1, 为什么wait与notify之前必须要加synchronized?
答案其实很简单,也是为了防止等待-通知机制出现race condition
为什么会出现race condition ?
答: 对象在被wait之前已经被另一线程notify , 之后的wait 会永久停止,并导致deadlock(死锁)
理想情况:
1, 第一个线程判断该对象是否要wait
2, 第一个线程将对象wait
3 ......
JavaScript是一种通用的、基于原型的、面向对象的脚本语言,而脚本语言就是指可以和Html语言混合使用的语言
1.JavaScript与Java的区别
A. JavaScript是解释型的语言,当程序执行的时候,浏览器一边解释一边执行。而Java是编译型的语言,必须经过编译才能执行
B. 代码 ......
<%
//header.jsp
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Scheme: " + request.getScheme() + "<br>");
out.println("Server Name: " + request.getServerName() + "<br>" );
out.println(&quo ......