java中对象作为参数_java中对象引用,特别作为参数时候注意事项
1、基礎(chǔ)知識
1Byte=8bit
Byte和byte一個是對象,一個是基本數(shù)據(jù)類型而已,都是8bit
2、java中對象引用和值傳遞:
(1)、java中若一對象當作參數(shù)就是相當于,將變量對應(yīng)的指向的地址內(nèi)容傳遞進去了
如下面代碼:
public class Test {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operator(a, b);
System.out.println(a + "," + b);
}
public static void operator(StringBuffer x, StringBuffer y) {
x.append(y); y = x;
}
}
運行結(jié)果為AB,B
operator(a, b);?參數(shù)傳遞其實就是將a引用的內(nèi)容給x引用,b引用的內(nèi)容給y引用,內(nèi)存中有2個緩沖區(qū)“A”、“B”,而執(zhí)行的代碼里是最終將這2個緩沖區(qū)變成了“AB”,“B”
此時x、y都指向了“AB”緩存區(qū),而a依舊指向的是第一個緩存去“AB”,b指向的第二個緩沖區(qū),因此仍是“B”
同理如下面代碼,運行后x,y的指向交換了,但a、b指向的數(shù)組交換不會成功,仍然是原來的結(jié)果。因此想在函數(shù)里改變指向,只有真正改變引用的內(nèi)容,即改變數(shù)組內(nèi)容來交換.
public class test {
public static void main(String[] args) {
int a[]={1,2,3};
int b[]={5,6,7,};
change(a,b);
System.out.println(Arrays.toString(a) );
System.out.println(Arrays.toString(b) );
}
public static void change(int[]x,int[]y)
{
int []c=x;
x=y;
y=c;
System.out.println(Arrays.toString(x) );
System.out.println(Arrays.toString(y) );
}
}
總結(jié)
以上是生活随笔為你收集整理的java中对象作为参数_java中对象引用,特别作为参数时候注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: try…finally与嵌套及自定义异常
- 下一篇: 多线程的全局变量与局部变量