JAVA-13 内存分析,对象地址值 的调用

本节:1. 内存中的堆和栈     2. 常量池

一、 内存中的堆和栈 

空指针异常,没有new对象。找不到对应的实例块,所以报错。

 

 第4题,虽然new的是book,但是book里面的变量没有new,所以是空。

new了里面的变量才可以有值。

 

二、常量池可以分为 静态常量池,运行时常量池。
静态常量池 存在于 class 文件中,比如经常使用的 javap -verbose 中,常量池总是在最前面
运行时常量池呢,就是在 class 文件被加载进了内存之后,常量池保存在了方法区中,通常说的常
量池 值的是运行时常量池。所以呢,讨论的都是运行时常量池。
一眼可以看到里面的值,就是常量,就在常量池里面。例:int a =1;.

对象赋值到新的变量上,只是一个标识,并没有真正的实例,所以所有的改变还是在原来的对象,原来的块上面。 

双等号 == 判断两个对象内存地址是否相同
双等号,只看你变量地址一不一样,连你的类是不是一样,都不管。

 

 字符串是特例,要特地记变量地址是不一样;

其他类型都是在常量池,所以==数据地址是一样的。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值