2020-09-17

==对于 上一篇文章的后续补充:

==号的真实含义解释

如果 为“abc” +“def” 操作 :最为直观的理解可以看为在class文件编译过程中就对其进行了转化

然而在使用变量a1+“def” 时,由于编译并不知道结果为什么,所以并未完成转化,使得在堆中重新开辟了一个空间,所以和常量池中存储的常量地址不一致。

再继续由于intern的含义是a1的地址空间中,常量所在的真实位置,即所在常量池位置,所以相等。


jvm底层的相关优化

继而可以引出编译时多态,和运行时多态的概念:

所谓编译时多态即  方法的重载   ,在编译时就指定了相应的方法名和方法参数。

运行时多态即方法的描述符:权限修饰符 和 返回值类型  (权限修饰符必须比父类大,异常比父类小,不能使用static修饰---》会抛异常)方法名和参数类型必须相同,否则为方法重载。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。