高哲技术博客 高哲技术博客
首页
编程
爬虫
运维
硬件
收藏
归档
关于

嘉美伯爵

前途光明,无需畏惧
首页
编程
爬虫
运维
硬件
收藏
归档
关于
  • 架构

  • 思想

  • 语言

    • golang

    • cxx

    • python

    • java

      • Java基础知识扫盲
        • 类型判断
        • 注解
        • 抽象类
        • 接口
      • 深入理解Java注解
      • Spring常用注解整理
      • Spring全家桶整理及应用
      • Spring JPA使用
      • Spring WebFlux使用
      • Netty使用总结及错误整理
      • Spring用户认证体系(Oauth2.0)
      • Java8中的并行流ParallelStream
      • grpc在Spring Boot中的使用
      • spring boot中如何使用异步
      • Java中etcd的使用
      • spring maven打包减少jar包体积
    • rust

    • vue

    • grpc

    • electron

    • uniapp

    • android

    • react

    • flutter

  • 设计模式

  • 微服务

  • 数据分析

  • 人工智能

  • 区块链

  • 数据结构

  • 技术调研

  • 性能优化

  • 生产问题

  • 编程
  • 语言
  • java
fovegage
2021-06-08
目录

Java基础知识扫盲

# 类型判断

# 获取类型
Object map = unifyDTO.getBody();  
System.out.println(map.getClass().getName());

# 判断类型
Object body = testDto.getBody();
body instanceof String
1
2
3
4
5
6
7

# 注解

# 规范
public @interface Autowired

ElementType: 注解作用域
RetentionPolicy: 异常时机(它指定了注解在源代码、编译时和运行时的保留级别)
	1. RetentionPolicy.SOURCE:源代码级别保留策略。注解仅在源代码中可见,不会被编译进字节码文件,也不会在运行时被保留。该保留策略通常用于提供编译时的辅助信息,对运行时没有任何影响。
	2. RetentionPolicy.CLASS:字节码级别保留策略。注解在编译时会被保留在字节码文件中,但在运行时不可见。这是默认的保留策略,如果注解未显式指定保留策略,则默认为 CLASS。
	3. RetentionPolicy.RUNTIME:运行时保留策略。注解在编译时会被保留在字节码文件中,并在运行时可以通过反射机制获取和解析注解。这种保留策略允许在运行时动态地读取和使用注解信息。
1
2
3
4
5
6
7
8

# 抽象类

  • 抽象类不能被实例化,只能承接
  • 如果有默认的实现和共享的方法或者状态时应该使用抽象类做基类
  • 抽象类可以包含具体的方案实现,从而减少子类的代码实现
  • 定义抽象方法强制子类实现特定的功能

# 接口

1. 一个类可以实现多个接口,但只能继承一个抽象类
1
  • 使用不同的小接口(而不是汇总成一个大的接口),实现多继承
// 定义接口A
interface A {
    void methodA();
}

// 定义接口B
interface B {
    void methodB();
}

// 实现类实现接口A和接口B
class MyClass implements A, B {
    @Override
    public void methodA() {
        System.out.println("Implementing methodA()");
    }

    @Override
    public void methodB() {
        System.out.println("Implementing methodB()");
    }
}

public class InterfaceDemo {
    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        myClass.methodA();
        myClass.methodB();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  • 当需要定义一组公共的方法和行为规范,而不关心具体的实现细节时,可以使用接口。接口定义了一种契约,要求实现类提供指定的方法和功能
// 定义接口 Animal
// 抽象工厂产品族的理解
interface Animal {
    void eat();

    void sleep();
}

// 实现类实现 Animal 接口
class Cat implements Animal {
    @Override
    public void eat() {
        System.out.println("Cat is eating.");
    }

    @Override
    public void sleep() {
        System.out.println("Cat is sleeping.");
    }
}

class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("Dog is eating.");
    }

    @Override
    public void sleep() {
        System.out.println("Dog is sleeping.");
    }
}

public class InterfaceDemo {
    public static void main(String[] args) {
        Animal cat = new Cat();
        cat.eat();
        cat.sleep();

        Animal dog = new Dog();
        dog.eat();
        dog.sleep();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  • 接口继承

// 
// 定义父接口
interface Animal {
    void eat();
}

// 定义子接口,并继承父接口
interface Dog extends Animal {
    void bark();
}

// 实现子接口
class Labrador implements Dog {
    @Override
    public void eat() {
        System.out.println("Labrador is eating.");
    }

    @Override
    public void bark() {
        System.out.println("Labrador is barking.");
    }
}

// 测试类
public class Main {
    public static void main(String[] args) {
        Labrador labrador = new Labrador();
        labrador.eat(); // 调用继承自父接口的方法
        labrador.bark(); // 调用子接口新增的方法
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#java
上次更新: 2023-07-23 19:24:26
python操作SQLAlchemy记录
深入理解Java注解

← python操作SQLAlchemy记录 深入理解Java注解→

最近更新
01
token embed和postion embed
06-10
02
k8s pod日志排查问题
10-24
03
golang内部私服建设方案
10-21
更多文章>
Theme by Vdoing | Copyright © 2018-2025 嘉美伯爵 | 鲁ICP备20001560号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式