ZKX's LAB

Java引用和C++指针的区别 java 引用类型 指针

2020-07-20知识7

java引用数据类型与C指针有什么区别啊?? 关于指针问题,赞同一楼说法!在方法中能不能改变要看声明数组的类型:如果是final类型的就不可以改变;如果是非final类型的就可以改变;仅供参考!java引用与C语言指针的区别?最好详细点! 首先,在Java中,不存在引用传递(也就是地址传递)一说,全部都是值传递,自然,在使用对象时实际上都是使用的引用Java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复杂难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的\"GOTO\"语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上每一个new 语句返回的都是一个指针的引用,只不过在大多时候Java中不用关心如何操作这个\"指针\",更不用象在操作C++的指针那样胆战心惊。非也,基本类型数据存放在Stack中,存放的是数据。而产生对象时,只把对象的reference存放在stack中,用于指向某个对象,对象本身存放在Heap中。还有,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。另外,依赖于具体的编译器/JVM,局部变量还可能得到进一步优化。从实现上来讲,引用可以理解为一种受限的指针,引用底层可以采用指针来实现,也可以采用句柄的方式实现。早期jvm一般采用句柄的方式,现在的jvm,比如sun的,IBM的,一般就是用。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,所以在函数内。java中引用类型的变量与c中指针变量的区别?java是值传递,c传的是地址指针。也就是说,引用类型的变量又被复制了一份,传递的时候,你可以放心的操作这个变量,他的原值是。java引用类型和C++的关系 准确的说,C++中的引用的概念借鉴了java的引用的概念,本质上在C++中,引用就是指针,只不过编译器自动为你完成了指针操作而已

#指针变量#指针#c++#引用类型#c语言指针

随机阅读

qrcode
访问手机版