• JAVA数据类型(转载)



    JAVA中值类型的只有short,char,byte,int,long,double,float,boolean八大基本类型,其他的所有类型都是引用类型

    首先我们都知道在编程中赋值运算“=”的意思是把右边的值赋给左边。

    1 
    如图所示,当b=a时,实际上就是把a的值赋值给b。


    但是在数组中,可不是这么回事

    2 
    如图所示,先定义一个数组变量a,里面存着1,2,3. 
    再定义一个数组变量b,将b=a,然后遍历循环将b中每一个元素,使每个数加一。这时b中的元素应该是{2,3,4}。最后再输出数组a。 至此,按照我们上面的规则来说,把a的值赋值给b,改变b的值对于a来说应该没有任何影响,a的值应该还是{1,2,3}才对。 
    我们运行一下 
    3 
    a的值改变了! 
    - 在java中,数据类型分为两类,即基本数据类型和引用数据类型 
    基本数据类型如 int,long,byte,操作时本身就是数据; 
    引用数据类型如数组,类,接口。引用数据类型传递的是内存的使用权,是一块内存空间,它可以由多个单位同时使用。 
    而赋值的过程并不是把a数组内的数据传递给b,而是把a数组的内存使用权与b共享。所以当a和b共享同一个数组内存时,不管改变数组a内的值还是改变数组b内的值,该数组都会改变。


    在调用方法时,同理。

    • 一般来说调用方法并不会改变实参的值

    4 
    虽然方法中使用的实参的是i,但是最后结果i的值没有改变,还是5。

    如果实参是数组呢?看一下

    5 
    数组b和数组c的值同时改变了,这就是引用数据类型。传递的永远是内存的使用权,一块内存空间,而不是本身的数据。

    转自:http://blog.csdn.net/sunopar/article/details/50582759

  • 相关阅读:
    .NET Core VS Code 环境配置
    系统架构正交分解法
    面向接口可扩展框架之“Mvc扩展框架及DI”
    发送和接收数据包
    Easticsearch通信方式_API
    Web Api集成Swagger
    NET MVC RazorEngine 解析模板生成静态页
    NET单元测试的艺术
    NET平台机器学习组件-Infer.NET
    ActiveMQ相关背景(转)
  • 原文地址:https://www.cnblogs.com/shixisheng/p/6515322.html
Copyright © 2020-2023  润新知