Java中的"指针"

2017-09-11  本文已影响10人  超级小江

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();
  }
}

上述代码的内存分配为

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

上一篇下一篇

猜你喜欢

热点阅读