五月十二号java基础知识点
2021-05-29 23:07
标签:nbsp cti use public 字节码 repeat 动态 运行 机制 1.注解是代码中特殊标记,作用是告知编译器做什么事 9.元注解:包括六种元注解类型 10.自定义注解: } 总结:了解了注解、反射、内部类,匿名内部类的概念 注解分为三种基本注解、元注解以及自定义注解的种类以及作用格式 五月十二号java基础知识点 标签:nbsp cti use public 字节码 repeat 动态 运行 机制 原文地址:https://www.cnblogs.com/kzf-99/p/14762618.html
2.反射允许程序在运行状态时,对任意一个字节码获取它所有信息
3.内部类是定义在类中的嵌套类
4.匿名内部类是定义在类的同时创建该类的一个对象
5.lambda表达式是使用精简语法的匿名内部类
6.代码中使用注解的方式:“@注解名”
7.注解分为三种:基本注解、元注解、自定义注解
8.基本注解在JDK8中分为5种:
1)@Deprecated:表示某个程序元素(如类、方法)已过时
2)@Override:只用于方法,限定必须覆盖父类的方法,保证方法覆盖正确性
3)@SuppressWarnings:一直警告信息出现,用于类型、构造方法、成员方法、成员变量
、参数以及局部变量。语法格式:@SuppressWarnings(“警告参数”)或
@SuppressWarnings(value=“警告参数”)
4)@SafeVarargs:用于抑制堆污染警告。
堆污染是指一个不带泛型的对象赋值给带泛型的对象,将导致泛型对象污染
三种方式抑制堆污染警告:
(1)使用@SafeVarargs注解修饰引发该警告方法(推荐使用)
(2)使用@SuppressWarnings(“unchecked”)
(3)编译时使用-Xlint:varargs选项
5)@FunctionalInterface:指定接口必须是函数式接口值,该注解只修饰函数式接口
如果一个接口只有一个抽象方法,则该接口就是函数式接口
函数式接口为Lambda表达式准备,允许Lambda表达式创建函数式接口public class app13_1 {
public String name;
public int age;
@Deprecated//说明下面的show()方法已经过时
public void show(String name){
System.out.println(name);
}
@Override//限制必须覆盖父类Object的toString()方法
public String toString(){
return "姓名:"+name+" 年龄:"+age;
}
public static void main(String[] args) {
app13_1 p = new app13_1();
p.show("张三");//因show()方法被@Deprecated注解,不赞成使用这个方法
}
}
1)@Target:限制注解适用范围即可用于哪些程序元素
使用格式@Target(value=作用范围)
2)@Retention:说明注解保存范围
使用格式:@Retention(value=保存策略值)
3)@Document:指定被修饰注解可被javadoc.exe工具提取成文档
4)@Inherit:一个父类注解可被子类所继承。
5)@Repeatable:开发重复注解。jdk8允许多个注解修饰同一个程序元素
6)@类型注解:定义枚举时使用@Target(ElementType。TYPE_USE),
可用在任何用到类型的地方
[public]@interface 注解名
{
数据类型 成员变量名() [default 初始值];
}
例如:@interface info//自定义注解info
{
String author() default "张三丰";//自定义注解成员变量author,初值为“张三丰”
11.动态获取程序信息以及动态调用对象的功能就是反射机制。
上一篇:Java中常见的几种的溢出
下一篇:Java面向对象(4)内部类