注解和反射_01

本文探讨了Java注解的三种保留策略及其在运行时的作用。注解可以在编译时、运行时或仅在源代码阶段保留。此外,详细介绍了反射如何用于访问私有方法,并强调了在同一JVM中,同一类的Class对象具有相同的hashcode值。还讨论了数组类型的hashcode一致性。最后,提到了方法区与堆在不同Java版本中的关系。
摘要由CSDN通过智能技术生成

来源于 https://www.bilibili.com/video/av55440782/?p=9&spm_id_from=pageDriver
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
runtime在运行时还有效果;Annotations are to be recorded in the class file by the compiler and retained by the VM at run time, so they may be read reflectively.

class编译成字节码时候还有效果;Annotations are to be recorded in the class file by the compiler but need not be retained by the VM at run time. This is the default behavior.

source在源码时候有效果;Annotations are to be discarded by the compiler.

在这里插入图片描述

在这里插入图片描述
当为value的时候,注解里面用的时候可以省略这个参数名。
@MyAnnotation(“秦”)。如果参数不是value,那么这里就必须是@MyAnnotation(参数名=“秦”)


在这里插入图片描述

创建对象

  • new
  • clone
  • 反射

在这里插入图片描述

在这里插入图片描述
反射可以获取private方法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
这里,c2,c3,c4都是一样的,它们的hashcode值都是一样的!

在这里插入图片描述

在这里插入图片描述
一个加载的类,在JVM中只会有一个Class实例。所以不管Class.forName(类的完整路径) 执行多少次,每次的hashcode都是一样的!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
只要元素类型与维度一样,那么hashcode是一样的!

在这里插入图片描述

在这里插入图片描述

逻辑上,方法区是属于堆的,但是1.8之后就分开了。

在这里插入图片描述

在这里插入图片描述

参考:
1、https://www.bilibili.com/video/av55440782/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值