「java有没有指针」java有没有指针数据类型

博主:adminadmin 2022-12-18 00:57:06 58

本篇文章给大家谈谈java有没有指针,以及java有没有指针数据类型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

为什么Java中没有指针

JAVA里面是没有指针的,这样更安全,因为指针初始化之类的操作 很容易产生内存溢出,而JAVA放弃指针这方面安全性有很大提高,不过效率稍有降低的,毕竟指针是无可取代的。引用和指针是有差别的,引用是通过别名进行地址的调用,而指针可以直接对该内存空间执行操作,不过很多时候两者可以混用

JAVA和C语言有什么区别?

C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。\x0d\x0a\x0d\x0aC++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。\x0d\x0a\x0d\x0aJava是在C++的基础上进行改进的,摒弃了一些C++的不足之处,语法跟C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。\x0d\x0a\x0d\x0a编程都是易学难精,哪个都好学,哪个又都不好学。都有很好的发展前景,就看是什么方向了。底层的C、桌面应用程序、游戏等等C++、嵌入式,网页,Java。

java为什么没有指针

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

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

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

这就好比:在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有没有指针数据类型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-18,除非注明,否则均为首码项目网原创文章,转载请注明出处。