java高新_注解(黑马程序员)

------- android培训、java培训、期待与您交流! ----------

1.注解Annotation的工作原理:

jdk1,.5中提供了注解功能,允许开发者自定义和使用自己的注解类型。Annotation并不直接影响代码的语义,但是他可以被看做是程序员的工具,他反过来对程序的语义有所影

响!

注解语法比较简单除了@符号使用,其他和java一样。java中内置了3种注解,定义在了java.lang包中。

@Override 表示当前方法是覆盖父类的方法。

@Deprecated表示当前元素不赞成使用,是过时的方法!

@SuppressWarnings表示编译器警告如:SuppressWarnings("deprecation").//表示不要提示方法过期!

一个注解就是相当于一个类,上面的注解就是相当于创建了一个类!

注解的作用:相当于一种标记,在程序中加了注解,就相当于为程序打上了标记。没加就相当于没标记,以后javac编译器,开发工具,可以反射来了解你的类和各种元素上的标记。

首先来创建一个注解类:

public @interface Test { }

这就是一个注解,当然你要为他添加元注解,才能更好的使用!

@Rentention()是声明生命周期的注解,表示注解要留到哪一个阶段?可选的参数有RententionPolicy包括:

RetentionPolicy.SOURCE 注解将被编译器丢弃

RetentionPolicy.CLASS 注解在class文件中可用,但会被JVM丢弃

RetentionPolicy.RUNTIME JVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息

@target()表示注解该用到什么地方?可选参数有ElenmentType:

ElementType.FIELD域声明,

ElementType.PARAMETER参数声明,

ElementType.METHOD方法声明

等等。

需要注意的是:写属性的时候必须是@Annotation(color = “red”)!只有是value属性才可以直接写入!

如何反射获取注解呢?

首先获得Class来通过isAnnotationPersent(Test.Class);判断注解是否为指定注解!

在调用getAnnotation()来获得该注解。由于注解也是个类!这样就可以通过类的方式来获取注解属性了!

--------------------------------------------------------------------------------------

关于类加载器的东西还是简单说一下吧:

jvm中有多个类加载器负责加载特定的类!

类加载器也是java类,元是bootstrap加载器,是c++的jvm内核。是特殊的一个,他加载的类有System类等等。

有高级到低级(或者有父辈到子辈):

BootStrap-------------------加载------------------->JRE\lib\rt.jar

|

ExtClassLoader----------加载-------------------->JRE\lib\ext\*.jar

|

AppClassLoader----------加载------------------->Classpath下的jar或目录

|

自己的类加载器-----------加载-----------》特定目录

以上的图为类加载器的关系,我们可以看出来加载的层次!

那么当java虚拟机要加载一个类的时候,到底该派出哪个类来加载?

1首先当前线程类加载器去加载线程中的类。

2如果类a引用类b,那么java虚拟机会使用加载类a的加载器加载类b

3.每个加载器优先委托给上一级加载器!当所有父加载都不行,会有异常!

问题:你自己写你个java.lang.System可不可以?

答案是不一定,我们自己写的会在ClassPath下那么加载器还是BootStrap优先加载,会加载程序自带的,不会加载我们的。但是我们可以自己写一个类加载器!

------- android培训、java培训、期待与您交流! ----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用AngularJs编写的简单 益智游戏(附源代码)  这是一个简单的 javascript 项目。这是一个拼图游戏,也包含一个填字游戏。这个游戏玩起来很棒。有两个不同的版本可以玩这个游戏。你也可以玩填字游戏。 关于游戏 这款游戏的玩法很简单。如上所述,它包含拼图和填字游戏。您可以通过移动图像来玩滑动拼图。您还可以选择要在滑动面板中拥有的列数和网格数。 另一个是填字游戏。在这里你只需要找到浏览器左侧提到的那些单词。 要运行此游戏,您需要在系统上安装浏览器。下载并在代码编辑器中打开此项目。然后有一个 index.html 文件可供您修改。在命令提示符中运行该文件,或者您可以直接运行索引文件。使用 Google Chrome 或 FireFox 可获得更好的用户体验。此外,这是一款多人游戏,双方玩家都是人类。 这个游戏包含很多 JavaScript 验证。这个游戏很有趣,如果你能用一点 CSS 修改它,那就更好了。 总的来说,这个项目使用了很多 javascript 和 javascript 库。如果你可以添加一些具有不同颜色选项的级别,那么你一定可以利用其库来提高你的 javascript 技能。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值