本书未发布

变量的一些问题

未匹配的标注

变量

因为内存地址可读性太差了,就好像你记不住 IPv4 更记不住 IPv6,但你跟快能记住 baidu.com。
64 位 x86 内存地址为 0x0000000000000000

所以在可读性比较高的高级语言中,我们通过变量来对内存中的数据进行读写,变成机器码时,变量会变成内存地址。

变量的声明周期

这里以 Java 为例。

栈一般用于存储函数内的数据,如局部变量、参数等,它们在函数运行以后就会被释放。

这里有一个点需要注意,如果你传进去一个对象,并不会产生对象的副本。
是因为你 new 出来的对象实际存储在堆上(基本类型不在堆上)。

User user = new User();

这个 new 出来的对象实际上在堆上,user 是引用了堆上的地址。
所以你传进函数里的 User user 只是传了一份地址。

Java new 出来的对象都存在堆上,只有 JVM 判定不会再使用的时候才会被释放。

常量池

常量池只有进程挂了才会释放。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~