怎么辨别渴望猫粮真假:java 中指针是怎么定义的?

来源:百度文库 编辑:高校问答 时间:2024/04/28 04:06:30
能举个例子更好

JAVA因为是属于面向对象的语言,注重安全性,所以是没有指针这个概念的,这和C语言是不一样的,而且JAVA里也是不能主动通过代码来及时进行内存回收的,这些东西就是导致JAVA运行的速度比不上C之类那些更底层的语言

Java没有显式的指针。只有引用类型。

JAVA里面,没这个东东呵呵,想用它?其实你一直在JAVA中用它~

Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。
看到这个标题,是不是有点困惑:Java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复杂难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的GOTO语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上每一个new语句返回的都是一个指针的引用,只不过在大多时候Java中不用关心如何操作这个指针,更不用象在操作C++的指针那样胆战心惊。唯一要多多关心的是在给函数传递对象的时候。如下例程:

package reference;
c2.strBuff.append( change strBuff clone);

改成下面这样:

c2.str.substring(0,5);
c2.strBuff.append( change strBuff clone);

去掉了重新赋值的过程,c2.str也就不能有变化了,我们的把戏也就露馅了。但在编程过程中只调用

c2.str.substring(0,5);

语句是没有任何意义的。

应该知道的是在Java中所有的基本数据类型都有一个相对应的类,象Integer类对应int类型,Double类对应double类型等等,这些类也与String类相同,都是不可以改变的类。也就是说,这些的类中的所有方法都是不能改变其自身的值的。这也让我们在编clone类的时候有了一个更多的选择。同时我们也可以把自己的类编成不可更改的类。