zoukankan      html  css  js  c++  java
  • Java的引用和c++的指针区别

    1.类型:引用其值为地址的数据元素,java封装了的地址,可以转成字符串查看,长度可以不必关心。C++指针是一个装地址的变量,长度一般是计算机字长,
           可以认为是个int。
    
    2.所占内存: 引用声明时没有实体,不占空间。C++指针如果声明后会用到才会赋值,如果用不到不会分配内存。
    
    3.类型转换:引用的类型转换,也可能不成功,抛异,或者IDE就不能通过。C++指针只是个内存地址,指向那里,对程序来说还都是一个地址,但可能所指的
               地址不是程序想要的!
    
    4.初始值:引用初始值为java关键字null。C++指针是INT,如不初始化指针,那他的值就不是固定的了。
    
    5.计算:引用是不可以计算的。C++指针是INT,所以他可以计算,所以经常用指针来代替数组下标。
    
    6.控制:引用不可以计算,所以他只能在自己程序里,可以被控制。C++指针是内存地址,也可以计算,所以他有可能指向了一个不归自己程序使用的内存地址,
           对于其他程序来说是很危险的,对自己程序来说也是不容易被控制的。
    
    7.内存泄露:JAVA引用不会产生内存泄露。C++指针是容易产生内存泄露的,所以程序员要小心使用,及时回收。
    
    8.作为参数:JAVA的方法参数只是传值,引用做为参数使用时候,回给函数内引用的值的COPY,所以在函数内交换两个引用参数是没意义的,因为 函数只交换
                的参数的COPY值,但在函数内改变一个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象是和引用参数是同一个对象。 C++指针做
                为参数给函数使用,实际上就是他所指的地址在被函数操作,所以函数内用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数,
                等 等)。
    
    9.操作符和声明:java里用"."。C++指针用"->" 用"*"声明指针。(似乎这条没什么用!)
    
    10.本质:java中的引用和C++中的指针本质上都是想通过一个叫做引用或者指针的东西,找到要操作的目标(变量 对象等),方便在程序里操作。所不同的是
             JAVA的办法更安全,方便些,但没有了C++的灵活,高效。
    
    java中的引用和C++中的指针,他们最好不要混在一起,也不要认为是一回事,只不过他们的作用有些相似,总叫人不自觉的对比。但在我们写 JAVA程序的时候
    最好忘记C++的指针,写C++程序的时候,也不要老惦记着JAVA的引用。只要记得 引用无大小,安全,不可计算,强转时要小心就好了。
    
    > 转载于:https://blog.csdn.net/b271737818/article/details/3931913
  • 相关阅读:
    SQL 数据库备份
    压力测试工具WAS
    petshop4.0 详解之八(PetShop表示层设计
    类库生成的dll 添加 注释
    硬盘格式化后 数据全部找回
    petshop4.0 详解之七(PetShop表示层设计)
    JS 显示动态更新时间
    petshop4.0 详解之六(PetShop表示层设计)
    在linux环境下搭建嵌入式开发平台
    收录 Uboot 详解
  • 原文地址:https://www.cnblogs.com/ITHSZ/p/13494837.html
Copyright © 2011-2022 走看看