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
相关文档:
(1)栈
package ChapterOne;
public class Stack {
//栈数组
long stackArr[];
//栈的大小
int maxSize;
//栈的顶部
int top;
//初始化一个大小为size的栈
public Stack(int size){
maxSize = size;
stackArr = new long[size];
top = -1;
}
//出栈操作
public long pop(){
return sta ......
今天遇到一个要生成一个下拉列表框的问题,我的想法是:将数据库内的所有数据都存储到一个List里面,再在前台遍历整个list。
执行效果图:
水果
→苹果
→→苹果系列1
→→苹果系列2
→→苹果系列3
→→苹果系列4
→梨
→桃子
学习用品
→笔
→→铅笔 ......
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大
的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者
在进行抽象类定义时对于abstract class和interface ......
/Download by HTTP
//For other protocol, do it yourself
import java.net.*;
import java.io.*;
public class DonwLoa ......
线程的创建和启动
Java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。
Thread类是实现了Runnable接口的一个实例,它代表 ......