Chinaunix首页 | 论坛 | 博客
  • 博客访问: 106797
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 241
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-10 10:51
个人简介

命有已作,相有心生,祸福无门,惟人自召

文章分类

全部博文(21)

文章存档

2013年(21)

我的朋友

分类: Java

2013-07-02 15:41:55

对于基本数据类型,可以记住是值传递,即传进去的参数做任何修改不会影响外面。

对于类,是引用传递,传进函数的对象,在函数中做的任何动作都会一直生效,能带到外面来。

有个特殊情况:字符串,它是类但它的现象又是值传递,一般人考试就爱考这个!不得不说,有些人就喜欢问茴香的茴字有多少种写法,屁用没有!


点击(此处)折叠或打开

  1. public class Test {
  2.     
  3.     public int a = 0;
  4.     
  5.     public static void testForValue(int i) {
  6.         i++;
  7.     }
  8.     
  9.     public static void testForReferenceTest(Test test) {
  10.         test.a = 10;
  11.     }
  12.     
  13.     public static void testForReferenceString(String str) {
  14.         str = "abc";
  15.     }
  16.     
  17.     public static void main(String[] args) {
  18.         // test value
  19.         int i = 0;
  20.         System.out.println("before value test: i=" + i);
  21.         Test.testForValue(i);
  22.         System.out.println("after value test: i=" + i);
  23.         
  24.         System.out.println("===================================================");
  25.         
  26.         // test reference
  27.         Test test = new Test();
  28.         System.out.println("before normal reference test: test.a=" + test.a);
  29.         Test.testForReferenceTest(test);
  30.         System.out.println("after normal reference test: test.a=" + test.a);
  31.     
  32.         System.out.println("===================================================");
  33.         // test String reference
  34.         String str = "123";
  35.         System.out.println("before String reference test: str=" + str);
  36.         Test.testForReferenceString(str);
  37.         System.out.println("after String reference test: str=" + str);
  38.         
  39.     }

  40. }
输出结果

点击(此处)折叠或打开

  1. before value test: i=0
  2. after value test: i=0
  3. ===================================================
  4. before normal reference test: test.a=0
  5. after normal reference test: test.a=10
  6. ===================================================
  7. before String reference test: str=123
  8. after String reference test: str=123

阅读(1413) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~