zoukankan      html  css  js  c++  java
  • Java中的基本类型和引用类型变量的区别

    Java中的基本类型和引用类型变量的区别

     
    学了一年多,说实话你要我说这些东西我是真说不出来是啥意思
     
     

    基本类型:

    基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。

    引用类型:

    是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。 

    举例说明:   

     int  a;  
     a=250; //声明变量a的同时,系统给a分配了空间。

    引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么,整数,字符?我们看一个错误的例子:

    MyDate today;

    today.day = 4; //发生错误,因为today对象的数据空间未分配。

    那我们怎么给它赋值?引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。举个例子:

    MyDate today;            //将变量分配一个保存引用的空间

    today = new MyDate();     //这句话是2步,首先执行new MyDate(),给today变量开辟数据空间,然后再执行赋值操作

    //引用变量赋值

    MyDate a,b;                    //在内存开辟两个引用空间

    a  =  new MyDate();     //开辟MyDate对象的数据空间,并把该空间的首地址赋给a

    b  =  a;                               //将a存储空间中的地址写到b的存储空间中

    如下图示

    引用传递 和 值传递

    引用类型:除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。

    值传递:基本类型的传递都属于值传递,和C语言一样,当把Java的基本数据类型(如 int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函 数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值 传递"。

  • 相关阅读:
    for循环原来是这样
    C#中属性的作用
    腾讯、百度、阿里、微软面试题精选(不断更新)
    不容易:社会保险法历时3年终获通过 事关亿万百姓利益
    Oracle操作大对象BLOB示例
    Oracle操作大对象CLOB
    设计模式的分类和每种类型的作用
    LinkedList、ArrayList和Vector集合类型的区别和联系?
    hashmap,hashtable,TreeMap, WeakHashMap的区别和联系?
    hdu 2551
  • 原文地址:https://www.cnblogs.com/www123----/p/7797256.html
Copyright © 2011-2022 走看看