Java为什么没有指针

简介: 为了摒弃指针带来的风险

1、C/C++为什么有指针?
这个很简单,程序都是在内存中运行的,只要有内存,就有内存地址,有地址,就必然有指针,只是C++对内存地址的访问做了语言的支持,称之为指针。
2、指针的优点?
a、效率,指针就是内存的地址访问(虽然不是真正的物理地址,但是通过简单的映射就可以得到),性能非常好。
b、C/C++语言的需要,C/C++没有完善的面向对象支持,因此你不能声明一个Object类型的形参来接收所有类型的实参,因此C++只能通过万能指针void*来支持,C++中new出来的对象都是指针类型的(区别于直接声明一个类对象,Java中声明一个类的对象不实例化就是null,C/C++中对象类型可以像基本类型那样直接声明一个)。
3、指针的缺点?
a、稳定问题,指针太灵活,不小心就容易出现指针访问越界之类的问题,非常容易出问题。
b、安全性问题。
4、java有类似指针,在java中称为引用。
所谓的引用就是内存地址的值。拿到该引用就相当 于得到了该内存处的对象。

相关文章
|
6月前
|
存储 Oracle Java
Java11--ZGC--权衡--ZGC--GC术语--着色指针--多重映射--读屏障标记--重定位
Java11--ZGC--权衡--ZGC--GC术语--着色指针--多重映射--读屏障标记--重定位
132 0
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
|
5月前
|
Java 容器
双指针(JAVA语言)
双指针(JAVA语言)
双指针(JAVA语言)
|
5月前
|
Java
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
44 3
|
4月前
|
缓存 Java 数据库连接
Java演进问题之指针的间接获取现在对性能的影响变得更大如何解决
Java演进问题之指针的间接获取现在对性能的影响变得更大如何解决
|
6月前
|
存储 Java 开发者
探索Java开发中触发空指针异常的场景
作为一名后端开发者在Java编程的世界中,想必大家对空指针并不陌生,空指针异常是一种常见而又令人头疼的问题,它可能会在我们最不经意的时候突然出现,给我们的代码带来困扰,甚至导致系统的不稳定性,而且最可怕的是有时候不能及时定位到它的具体位置。针对这个问题,我们需要深入了解触发空指针异常的代码场景,并寻找有效的方法来识别和处理这些异常情况,而且我觉得空指针异常是每个Java开发者都可能面临的挑战,但只要我们深入了解它的触发场景,并采取适当的预防和处理措施,我们就能够更好地应对这个问题。那么本文就来分享一下实际开发中一些常见的触发空指针异常的代码场景,并分享如何有效地识别和处理这些异常情况。
101 1
探索Java开发中触发空指针异常的场景
|
6月前
|
安全 Java
Java为什么不让用指针?
总之,Java的设计目标之一是提供一个安全、稳定和易于开发的平台,通过禁止直接使用指针来实现这些目标。虽然指针可以提供更大的灵活性,但也带来了许多潜在的问题和安全风险。因此,Java采用了更高级的内存管理和安全性机制,以减少这些问题的发生。
64 1
|
6月前
|
Java
Java String 避免空指针的方法
Java String 避免空指针的方法
53 0
|
6月前
|
Rust 索引
Rust 编程小技巧摘选(6)
Rust 编程小技巧摘选(6)
82 1
Rust 编程小技巧摘选(6)
|
6月前
|
安全 IDE Java
终结空指针异常:Java开发者的生存指南
终结空指针异常:Java开发者的生存指南
163 1
下一篇
无影云桌面