本帖最后由 张向辉 于 2013-1-16 10:49 编辑
//值类型和引用类型的区别,有没有人能给详细解释下!- public class b {
- public static void main(String[] args) {
- int[] a={7,5,3,2,6,8,1};
- int k = 1;
- String str = "bs";
- b b = new b();
- b.print(a,k,str);
- b.selec(a,k,str);
- b.print(a,k,str);
- }
-
- public void selec(int[] b,int k,String str){
- for(int i=0;i<b.length;i++){
- for(int j=i+1;j<b.length;j++){
- if(b[i]>b[j]){
- int temp = b[i];
- b[i] = b[j];
- b[j] = temp;
- }
- }
- }
- k = 10;
- str = "as";
- }
-
- public void print(int[] a,int k,String s){
- for(int i=0;i<a.length;i++){
- System.out.print(a[i]);
- }
- System.out.println();
- System.out.println(k);
- System.out.println(s);
- }
- }
复制代码 我知道值类型是直接在栈中分配了一个空间,而引用类型是在堆中开辟了一个空间,然后把引用给了变量,但是我不明白的是我上面的代码,会出现这样的结果
7532681
1
bs
1235678
1
bs
第一行的输出是数组,属于引用类型,变化了,我可以理解;
第二行是int值类型,没有变化,也可以理解;
第三行的string是引用类型,为什么没有跟第一行的引用类型一样变化呢!这是我所不明白的。
|