java中的对象  变量  变量的引用  变量引用的实体  变量引用 都是什么意思  期待通俗的解答 ?最好能举例说明~~
谢谢~~

解决方案 »

  1.   

    下面的程序中   为什么y的值没有变 而zhang.money变了  
    最好能指出程序中的对象  变量的引用    变量引用的实体这些概念   变量引用跟变量的引用  相同吗?
    class People{
        int money;
        void setMoney(int y){
           money=y;
        }}
    class A{
        void f(double y,People p){
           y=y+1;
           p.setMoney(100);
           System.out.println("参数y的值是:"+y);
           System.out.println("参数对象p的money是:"+p.money);    }
    }
    public class Example{
         public static void main(String args[]){
             double y=0.8;
             People zhang=new People();
             zhang.setMoney(8888);
             A a=new A();
             System.out.println("在方法f调用前对象zhang的money值为:"+zhang.money+"y的值是:"+y);
             a.f(y,zhang);
             System.out.println("在方法f被调用之后main方法中y的值仍然是:"+y);
             System.out.println("在方法f被调用之后main方法中对象zhang的money是:"+zhang.money);
         }}
      

  2.   

    java中的对象  变量  变量的引用  变量引用的实体  变量引用 对象: A a = new A();   new了一个对象 A
    变量   A a = new A()    a是对象的变量名
    变量的引用:  一个变量指向了一块内存区 
    变量引用的实体: A a   
      

  3.   

    建议去看看C(还是C++?)中关于程序在运行时的内存就会明白了.
    比如说:如果想在内存中存放一个字符串,CPU会怎么做?为什么会这样?就是因为有编译器.还有解释器,JVM等.
    String str="aa";
    经过编译后,会生成一些字节码,因为约定好,在JVM里运行的时候,JVM就会翻译成相对的机器指令,比如:开辟内存空间,让空间的值是多少....
    CPU就会按照这些生成的指令去执行.
    CPU知道开辟空间,让空间的内容变成什么,或者让哪些空间内容与哪此空间内容进行计算等.....
    CPU只知道操作内存.
    我们写程序就按照规范写好,编译器就会生成相约的字节码,而JVM就会去让CPU执行些什么操作...
    说引用,对象,就是为了让我们人看得更清楚,而编译器可以正确的编译成我们想要的执行顺序~~~~
    int i=1;
    就这么程序里的一句,编译之后,JVM就是告诉CPU,开辟个32位的空间,让它的值为1.我们写的程序为了更好的去理解,就说变量等词汇.
    String str="aaa";
    JVM可能会告诉CPU,去到指定的一段空间内,查询这样的一串字符,如果没有找到,那么就在那个创建这样一段空间,让它的内容是"aaa",这时候如果要深入了解那么就要理解内存当中如何存放"aaaa"?这就涉及到二进制的东东了.
    在Java程序里,就说str是一个对象.这个对象在内存中会是什么样的,是不是只开辟32位的空间呢?这就要根据String这个类的相关信息了.糊里糊涂说了一堆,也不知道说到点子上没有
      

  4.   

    对象: A a = new A();  new了一个对象 A 
    变量  A a = new A()    a是对象的变量名 
    变量的引用:  一个变量指向了一块内存区 
    变量引用的实体: A a