五月十二号java基础知识点

2021-05-29 23:07

阅读:548

标签:nbsp   cti   use   public   字节码   repeat   动态   运行   机制   

1.注解是代码中特殊标记,作用是告知编译器做什么事
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注解,不赞成使用这个方法
    }
}

 

9.元注解:包括六种元注解类型
1)@Target:限制注解适用范围即可用于哪些程序元素
使用格式@Target(value=作用范围)
2)@Retention:说明注解保存范围
使用格式:@Retention(value=保存策略值)
3)@Document:指定被修饰注解可被javadoc.exe工具提取成文档
4)@Inherit:一个父类注解可被子类所继承。
5)@Repeatable:开发重复注解。jdk8允许多个注解修饰同一个程序元素
6)@类型注解:定义枚举时使用@Target(ElementType。TYPE_USE),
可用在任何用到类型的地方

10.自定义注解:
[public]@interface 注解名
{
数据类型 成员变量名() [default 初始值];
}
例如:@interface info//自定义注解info
{
String author() default "张三丰";//自定义注解成员变量author,初值为“张三丰”

}
11.动态获取程序信息以及动态调用对象的功能就是反射机制。

 总结:了解了注解、反射、内部类,匿名内部类的概念

注解分为三种基本注解、元注解以及自定义注解的种类以及作用格式

五月十二号java基础知识点

标签:nbsp   cti   use   public   字节码   repeat   动态   运行   机制   

原文地址:https://www.cnblogs.com/kzf-99/p/14762618.html


评论


亲,登录后才可以留言!