指针java_Java中的"指针"

本文探讨了Java中虽无指针数据类型,但仍通过对象引用实现类似功能。讲解了栈与堆的区别,以及如何通过TestObject实例testObj作为‘指针’引用堆内存中的对象。重点在于Java内存分配和引用类型的运作原理。
摘要由CSDN通过智能技术生成

Java语言有一个优点就是它相对其他编程语言(例如C语言)摒弃了指针的数据类型,但是否真的摒弃了还得仔细研究一下java的内部机制。

Java中的堆栈

Java堆栈都在Ram中,与其他一些语言不同的是这些堆栈一部分是由Java中的JVM通过算法自动管理,方便了许多。

Java中当一个方法执行时,会建立相应的内存栈(栈是一段连续的内存空间),里面存放的是方法中的基本类型的变量数据和对象的引用变量

当Java执行new语句时会建立相应堆内存(堆是一片随机的内存空间),里面存放new出来的对象

Java中的"指针"就是这两个内存区域通过变量映射出的对应关系。

之前说开辟栈内存中,里面存放的数据类型有基本类型的变量数据和对象的引用变量,这个引用变量就是"指针"

public class TestObject{

public TestObject(){

System.out.println("Hello World!");

}

}

public class Test{

public static void main(String[] arge){

int a=10;

TestObject testObj = new TestObject();

}

}

上述代码的内存分配为

a98332f1413a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

testObj就是Java中的“指针”,它指向堆内存中一块为TestObject对象随机分配的一片内存空间的地址,从而达到一种引用效果,这就是Java中的引用类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值