「java能实现指针吗」java可以用指针吗

博主:adminadmin 2023-01-04 19:42:09 968

本篇文章给大家谈谈java能实现指针吗,以及java可以用指针吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java为什么没有指针

1: java有指针,在java中称为 引用。 所谓的引用就是内存地址的值。拿到该引用就相当 于得到了该内存处的对象。

2: java中可以使用指针(我们称之为引用),但不能修改引用。

如C++中可以 进行pointer++; 在java中是错误的。(Integer,Float等包装类除外,因为java有自动封箱、解箱特性)。

这就好比:在java中可以坐飞机到指定的目的地,但是你不能开飞机(安全)。但是在C++中可以自己开飞机(操作飞机)--具有危险性。

java中有没有指针

首先,指针用于指向某一块内存的地址,在C、C++中有明确的指针的概念,而在Java中,同样会有指向某一块内存地址的存在,但是不叫指针,在Java中称之为 引用(reference),你可以理解为智能指针。可以这么说Java其实处处皆为指针,但是我们开发人员却感觉不到而已。

Java语言没有指针,怎样实现链表?

Java语言中的对象引用实际上是一个指针(这里的指针均为概念上的意义,而非语言提供的数据类型),所以我们可以编写这样的类来实现链表中的结点。

private static class EntryE {

E element;  // 当前存储元素

EntryE next;  // 下一个元素节点

EntryE previous;  // 上一个元素节点

Entry(E element, EntryE next, EntryE previous) {

this.element = element;

this.next = next;

this.previous = previous;

}

}

将数据域定义成Object类是因为Object类是广义超类,任何类对象都可以给其赋值,增加了代码的通用性。为了使链表可以被访问还需要定义一个表头,表头必须包含指向第一个结点的指针和指向当前结点的指针。为了便于在链表尾部增加结点,还可以增加一指向链表尾部的指针,另外还可以用一个域来表示链表的大小,当调用者想得到链表的大小时,不必遍历整个链表。

链表的数据结构我们可以用类List来实现链表结构,用变量Head、Tail、Length、Pointer来实现表头。

存储当前结点的指针时有一定的技巧,Pointer并非存储指向当前结点的指针,而是存储指向它的前趋结点的指针,当其值为null时表示当前结点是第一个结点,因为当删除当前结点后仍需保证剩下的结点构成链表,如果Pointer指向当前结点,则会给操作带来很大困难。如何得到当前结点呢?我们定义了一个方法cursor(),返回值是指向当前结点的指针。类List还定义了一些方法来实现对链表的基本操作,通过运用这些基本操作我们可以对链表进行各种操作。

例如reset()方法使第一个结点成为当前结点。insert(Object d)方法在当前结点前插入一个结点,并使其成为当前结点。remove()方法删除当前结点同时返回其内容,并使其后继结点成为当前结点,如果删除的是最后一个结点,则第一个结点变为当前结点。

Java里有没有指针啊,我怎么没见过啊?

若读者是从某些特殊的程序设计环境中转移过来的,那么一般都会问到:“Java有指针吗?”有些人认为指针的操作很困难,而且十分危险,所以一厢情愿地认为它没有好处。同时由于Java有如此好的口碑,所以应该很轻易地免除自己以前编程中的麻烦,其中不可能夹带有指针这样的“危险品”。

然而准确地说,Java是有指针的!事实上,Java中每个对象(除基本数据类型以外)的标识符都属于指针的一种。但它们的使用受到了严格的限制和防范,不仅编译器对它们有“戒心”,运行期系统也不例外。

或者换从另一个角度说,Java有指针,但没有传统指针的麻烦。我曾一度将这种指针叫做“句柄”,但你可以把它想像成“安全指针”。

Java语言最开始声称自己“完全不采用指针!”但随着许多程序员都质问没有指针如何工作?于是后来又声明“采用受到限制的指针”。大家可自行判断它是否“真”的是一个指针。但不管在何种情况下,都不存在指针“算术”。

选自think in java

java里到底有没有指针?

JAVA没有指针,只有C或C++里有,指针主要是操作内存时用的了,只在低级语言中使用 追问: 可是为什么有的书里却写着。其实java里都是指针呢? 回答: 我理解的是,有些书这么说是为了给那些学过C或C++的人看的 java 都是以类的实例来操作,就是说可以把每一个实例看到一个指针,这样是方便那法比较了解C指针的人来看。

记得采纳啊

java中到底有没有指针

学过c/c++,然后学Java的人往往心中有此纠结,java中到底有没有指针?

如果一定要在是或否里选择一个,OK,java中没有指针。

那么,java中的引用(reference)和c/c++中的指针(如无特别说明,后文指针均指c/c++中的指针)究竟有着什么样纠葛不清的关系呢?

在开始之前先说一下c/c++的引用,它跟java的引用完全不是一个东西,c/c++的引用是同一块内存的不同名字。而java的引用是指向一个对象,引用本身也占用了内存。

首先,列举一下能对指针进行的一些常见操作:

1、指向一个对象,如 Person *p = new Person….;int *iv = new int….

2、对指针所指的对象进行操作:P-getAge(); (*p).getAge();

3、获取存储在指针中的地址值。

4、将指针指向另外一个对象:Person *p1 = new Person…; p = p1; 但,不可以*p = p1这样来赋值。

5、删除new的空间,delete p1;

6、其它诸多操作

这么多已经足够了,接下来看看java引用能做什么操作。

a、指向一个对象,如Person p = new Person…

b、调用对象的方法,p.getAge();

c、指向另外一个对象,Person p1 = new Person…; p = p1;

OK,就这么多了。

对于a和1,他们的功能是类似的,但java引用无法指向一个基本变量。。

对于b,java引用和指针就不同了,在这点上,Java reference更像是解引用(dereference)了的指针;或者说java中的.操作符某种程度上等价于指针的-操作符,如果是这样种解释的话,我们无法再对java的reference解引用了。

对c和4,是类同的。

除此,我们无法获取java引用存的地址,我们不能delete,还有很多……

综上,窃以为java的引用可以看成是一个功能受限的指针(或者说被阉割的指针)。另一方面,功能如此受限,它还能叫指针吗?了解了指针和java引用的区别与联系,还需要纠结“java中有没有指针”这个问题吗!

关于java能实现指针吗和java可以用指针吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。