Java复习04 注解和反射

本文详细介绍了Java中的注解概念,将其比喻为游戏中的道具,以及反射的功能,如查看和修改对象信息。同时讨论了元注解、内置注解和自定义注解的区别,以及如何使用反射访问类信息、创建对象和调用方法。
摘要由CSDN通过智能技术生成

Java复习04 注解和反射

初学 注解和反射的时候 我的问题是 什么是注解? 什么是反射?单例模式 Stream ForkJoin有什么区别? 注解的分类有哪些?怎么区分?反射的分类有哪些?怎么区分? 反射里面Constructs Method Class 有什么区别?

1.注解(Annotations):

想象一下你在玩一款视频游戏。在这个游戏里,有些特殊的道具可以给你的角色带来特殊能力或者是解锁新的任务。

注解 就像是这些道具。它们不会改变游戏的基本玩法(也就是你的代码本身是怎么运行的),但它们可以给你的代码加上特殊标记(比如,让其他人知道这段代码不应该再被使用,或者是让代码按照一定的方式来运行)。这些注解有的是游戏(Java)自带的,有的则可以由玩家(程序员)自己创造。

2.反射(Reflection):

使用反射就像是你突然得到了一副能看见隐藏东西的眼镜。当你戴上这副眼镜,你可以看到游戏中不同角色和道具的内部信息,比如它们的能力值或者它们隐藏的秘密。在Java中,反射让你在程序运行的时候查看和修改对象的内部信息,即使平常我们看不见这些信息。

  • 使用反射,你可以看到一个对象的类信息(就像看角色的属性一样)。
  • 你可以找到和使用它的方法(就像发现角色可以使用的特殊技能)。
  • 你还可以创建新的对象或者修改现有对象的属性(就像改变角色的装备或者能力值)。

所以,反射就像是一副能让你看见更多内部信息的眼镜。

3.单例模式(Singleton Pattern):

这就好比学校里只有一个校长。无论什么时候你需要找校长,都是同一个人。单例模式确保了一个类在Java程序中只有一个实例,每次你要用这个类的时候,都会得到同一个对象。

4.Stream:

假如你在河边放了一艘小船,你可以顺流而下一边欣赏风景,一边经过不同的站点。在Java中,Stream就是数据的流,让你可以一步步地对数据进行操作,就像沿着河流顺流而下一样。

5.ForkJoin:

这就像是把一项大任务分成很多小任务,让你的朋友们一起帮忙。每个人完成自己的部分后,再把结果合起来,完成整个大任务。ForkJoin是Java中的一个框架,它帮助程序做到这一点,特别适合用于可以并行处理的大任务。

注解的分类

主要有以下几种:

元注解(Meta-Annotations)

元注解就是用来定义注解的注解。你可以想象元注解好比是游戏规则,它们告诉其他注解应该怎么"玩游戏"。Java中有几个元注解,比如:

  • @Target:告诉注解可以放在Java代码的哪些部分,比如方法、类或变量上。
  • @Retention:告诉Java程序这个注解要保留多久,是只在代码中存在,还是在编译后的.class文件中,或者是在运行时都可以访问。
  • @Inherited:告诉Java如果一个类使用了这个注解,那么子类自动继承这个注解。
  • @Documented:告诉Java这个注解应该被包括在用户的文档中。
内置注解(Built-in Annotations)

内置注解是Java自带的注解,你可以直接在代码中使用。是游戏开发者给你的默认道具,比如一个可以让角色跳得更高的弹簧鞋(@Override)或者一个提醒你这个道具即将在下个版本中被替换掉的标签(@Deprecated)。

一些常见的内置注解有:

  • @Override:告诉编译器你打算重写一个方法。
  • @Deprecated:告诉别人这个方法或者类已经过时了,建议不要用。
  • @SuppressWarnings:告诉编译器忽略特定的警告信息。
自定义注解:

自定义注解就是你可以创建自己的注解。想象一下,如果你在游戏中可以创建一个全新的角色,你可以定义它的名字、能力和特点。自定义注解允许你为你的代码定义特殊的规则或者提供特定的信息。或者理解成就是你有机会创造自己的道具。你可以决定它叫什么,能做什么,以及什么时候使用它。

反射读取注解(Reflection to Read Annotations)

反射读取注解就像是用一个特殊的镜子来查看物体上面有哪些标签。在Java中,你可以用反射这个功能来查看代码中的注解,了解注解里存储的信息。

反射的分类

其实是指通过反射我们可以做什么:

  • 访问类的信息(比如类的名字、它的方法和属性)。
  • 创建对象(就像有了乐高说明书,你可以按照说明书建造一个乐高模型)。
  • 调用方法(就像遥控一个机器人按你说的去做)。
  • 修改属性(就像改变乐高模型的一块砖的位置)。

在反射中,ConstructorMethodClass 代表不同的事物:

  • Constructor是建造者,就像乐高模型的说明书,告诉你怎么去建造一个对象。
  • Method是操作指南,告诉你可以用这个对象做什么,比如一个遥控车的遥控器上的按钮。
  • Class是整个图纸,告诉你这个对象是什么,有什么特点,是不是像一个遥控车或者一个机器人。

在这里插入图片描述

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值