学习大数据,所必需的java基础(完结篇)

文章目录

  • 注解
    • 注解的介绍
    • 注解的定义以及属性的定义格式
    • 注解的使用
    • 注解解析的方法----AnnotatedElement接口(扩展)
  • 元注解
    • 注解之在此注解

注解

注解的介绍

1.jdk1.5版本的新特性 — 一个引用数据类型
和类,接口,枚举是同一个层次
引用数据类型:类 数组 接口 枚举 注解
2.作用:
说明:对代码进行说明,生成doc文档(API)文档
@author
@version
检查:检查代码是否符合条件 @Override @FunctionalInterface
分析:对代码进行分析,起到了代替配置文件的作用
3.JDK中的注解:
@Override — 检测此方法是否为重写方法
jdk1.5版本 支持父类的方法重写
jdk1.6版本,支持接口的方法重写
@Depercated ----- 方法已经过时,不推荐使用
调用方法的时候,方法上会有横线,但是能用
@SuppressWarnings ---- 消除警告 @SuppressWarnings(“all”)
配置方法

<servlet><servlet-name>servlet1</servlet-name><servlet-class>servlet的全限定名</servlet-class> 
</servlet><servlet-mapping><servlet-name>servlet1</servlet-name><url-pattern>/abc</url-pattern> 
</servlet-mapping>
注解方法```java
@WebServlet("/abc")
public class Servlet1{}
public class test01 {@SuppressWarnings("all")@Deprecatedpublic void study(){System.out.println("学习,学习");}public static void main(String[] args) {new test01().study();final ArrayList list = new ArrayList();list.add(1);list.add("li");list.add(true);}
}

注解的定义以及属性的定义格式

1.定义格式:
public @interface 注解名{
}
2.属性定义:—增强注解的作用
数据类型 属性名() — 没有默认值 — 后面要是使用注解必须赋值
数据类型 属性名 () ----- 默认值 ---- 有默认值的 —后面要是使用注解可以不赋值也可以重新赋值
数据类型[] 数组名()
3.注解中能定义什么类型的属性那?
a.八种基本类型(byte short int long float double char boolean)
b.String类型 class类型 枚举类型 注解类型
c.以上类型的一维数组

public class test02 {public @interface Book{String name();int price();String[] author();int count() default 10;}
}

注解的使用

1.使用注解:为注解中的属性赋值
2.使用位置:
类上 方法上 成员变量上 局部变量上 参数位置 构造上
3.使用:
@注解名(属性名 = 属性值,属性名 = 数组值,数组名 = {元素1,元素2})
注意 在创建注解时,虽然写的时interface 但是class类一定要选择annotation

public @interface Book {String name();int price();String[] author();int count() default 10;
}

使用

public class test02 {@Book(name = "追风筝的人", price = 30, author = {"阿富汗","胡塞尼"})public class BookShelf {}
}

注解注意事项
1.空注解可以直接使用 — 空注解就是注解中没有任何属性
2.不同的位置可以使用一样的注解,但是同样的位置不能使用一样的注解
3.使用注解时,如果此注解中有属性,注解中的属性一定要赋值,如果有多个属性,用逗号隔开,如果注解中的属性有数组 使用{}
4.如果注解中的属性值有默认值,那么我们不必要写,也不用重新赋值,反之必须写上
5.如果注解中只有一个属性,并且属性名为value,那么使用注解的时候,属性名不用写,直接写值(包括单个类型,还包括数组)

注解解析的方法----AnnotatedElement接口(扩展)

1.解析注解接口:AnnotatedElement
实现类:Class,Constructor,Field,Method
2.解析思路
a.获取class对象
b.判断类上或者方法是否有指定的注解
c.如果有指定的注解,我们就获取指定的注解
d.获取到了指定的注解,我们就可以获取注解中的属性值
3.AnnotatedElement接口中的方法
a.boolean isAnnotatetionPresent(Class<> extends Annotation> annotationClass)-----> 判断有没有指定的注解
annotationClass传递的是要获取的注解的class对象
比如:BookShelf上有没有Book注解
获取BookShelf的class对象 class class = BookShelf.class
判断是否有Book注解:class.isAnnotationPresent(Book.class)
b.T getAnnotation(Class annotationClass) ---- 获取指定注解
annotationClass:传递的是要获取的注解的class对象
比如:获取BookShelf的class对象:class class = BookShelf.class
判断是否有Book注解:class.isAnnotationPresent(Book.class)
如果有,获取Book注解 Book book = class.getAnnotaion(Book.class)

public class test02 {public static void main(String[] args) {//获取BookShelf的class对象final Class<Bookshelf> bookshelfClass = Bookshelf.class;//判断是否有Book注解final boolean annotation;annotation = bookshelfClass.isAnnotationPresent(Book.class);System.out.println(annotation);//如果有,获取注解、if (annotation){final Book annotation1 = bookshelfClass.getAnnotation(Book.class);System.out.println(annotation1.name());System.out.println(annotation1.price());System.out.println(Arrays.toString(annotation1.author()));}}
}

以上代码没有解析出来,原因是Book注解没有出现在内存中,如果Book注解出现在内存中,则会注解出来

元注解

1.概述: 控制注解的注解
2.作用:是控制自定义注解的
3.问题:从哪些方面控制那?
a.从使用位置方面控制 ---- 控制自定义注解是否能在类上使用,还是能在方法上使用,还是能在构造上使用
b.从注解的生命周期方面控制
控制自定义注解是否在源文件中出现
控制自定义注解是否能在class文件中出现
控制自定义注解是否能在内存中出现
@Target — 控制注解能在什么位置上使用
a.属性:ElementType是一个枚举
枚举类中的枚举成员是Static final的,我们可以类名直接调用
b.枚举成员:
TYPE:控制注解只能在类上使用
FLELD: 控制注解只能在成员变量上使用
METHOD: 控制注解只能在方法上使用
PARAMETER:控制注解只能在参数上使用
CONSTRUCTOR: 控制注解只能在构造上使用
LOCAL VARIABLE: 控制注解只能在局部变量上使用
@Retention — 控制注解的生命周期
a.属性:RetentionPolicy — 是一个枚举
枚举类中的枚举成员都是static final的,我们可以类名直接调用
b.枚举成员
SOURCE:控制注解能在源文件中出现
CLASS:控制注解能在class文件中出现
RUNTIME:控制注解能在内存中出现

注解之在此注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Book {String name();int price();String[] author();int count() default 10;
}

测试代码

public class test02 {public static void main(String[] args) {//获取BookShelf的class对象final Class<Bookshelf> bookshelfClass = Bookshelf.class;//判断是否有Book注解final boolean annotation;annotation = bookshelfClass.isAnnotationPresent(Book.class);System.out.println(annotation);//如果有,获取注解、if (annotation){final Book annotation1 = bookshelfClass.getAnnotation(Book.class);System.out.println(annotation1.name());System.out.println(annotation1.price());System.out.println(Arrays.toString(annotation1.author()));}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教程】使用小米换机来迁移数据

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 1、在新旧手机上都下载安装小米换机app&#xff1a;小米换机-小米应用商店 2、在新手机上&#xff0c;选择旧手机类型 3、授予权限 4、在旧手机上&#xff0c;授予权限 4、输入锁屏密码 5、选择发现的新手机 6、等…

EMC整改

EMC包括EMI和EMS&#xff0c;其中EMI由辐射干扰RE、传导干扰CE、谐波电流Harmonics、闪烁Flicker组成&#xff0c;EMS由静电抗扰度ESD、电快速瞬态脉冲群EFT、电压跌落DIP、传导抗扰度CS、辐射抗扰度RS、浪涌抗扰度surge、工频磁场抗扰度PMS。新产品生产出来但凡要做认证&#…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:NavDestination)

作为子页面的根容器&#xff0c;用于显示Navigation的内容区。 说明&#xff1a; 该组件从API Version 9开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 该组件从API Version 11开始默认支持安全区避让特性(默认值为&#xff1a;expandSaf…

嘿!AI 编码新玩法上线!

随着 AI 智能浪潮到来&#xff0c;AI 编码助手成为越来越多开发者的必备工具&#xff0c;将开发者从繁重的编码工作中解放出来&#xff0c;极大地提高了编程效率&#xff0c;帮助开发者实现更快、更好的代码编写。 通义灵码正是这样一款基于阿里云通义代码大模型打造的智能编码…

Java学习笔记------拼图游戏

图形化界面GUI GUI&#xff1a;Graphical User Interface&#xff08;图像用户接口&#xff09;&#xff0c;指采用图形化的方式显示操作界面 两套体系&#xff1a;AWT包中和Swing包中 组件 JFrame&#xff1a;最外层的窗体 JMenuBar&#xff1a;最上层菜单 JLaber&#…

【蓝桥杯】节省时间

一、对于string类型变量的连接&#xff0c;可以直接用“”或者“”来进行字符串的直接连接 string a"1"; string b"2"; string c; cab"12"; string操作符两边既可以都是string类型&#xff0c;也可是string与char类型 注意&#xff1a; (1)“”…

rj45网络变压器作用

WE-MIDC网络变压器是Wrth Elektronik公司生产的一种专业级别的网络变压器&#xff0c;也称为Wrth Elektronik网络变压器。它通常用于工业自动化、医疗保健、军事和航空航天等领域的网络通信应用。 WE-MIDC网络变压器具有以下特点&#xff1a; 电气隔离&#xff1a;WE-MIDC网络变…

一次压测经验过程的经验记录

开篇说明 如果在这里获得过启发和思考&#xff0c;希望点赞支持&#xff01;对于内容有不同的看法欢迎来信交流。 技术栈 >> java 邮箱 >> 15673219519163.com 描述 通常对于QPS较高的web应用程序在开发完成后&#xff0c;除了功能测试之外还需要做一轮压力测试…

工厂模式~

1. 简单工厂 它的主要特点是需要在工厂类中做判断&#xff0c;从而创造相应的产品。当增加新的产品时&#xff0c;就需要修改工厂类。在简单工厂模式中&#xff0c;增加新的产品需要修改工厂类&#xff0c;这违反了开闭原则&#xff08;对扩展开放&#xff0c;对修改封闭&#…

计算机网络-H3C 交换机FTP与TFTP

一、FTP与TFTP概述 FTP&#xff0c;全称为File Transfer Protocol&#xff0c;即文件传输协议&#xff0c;是一种用于在Internet上进行文件传输的应用层协议。FTP是基于客户端-服务器架构设计的&#xff0c;并使用TCP作为其传输层协议。TFTP (Trivial File Transfer Protocol) …

java继承,接口,抽象类

目录 目录 1 继承的含义 2 继承的好处 3使类与类之间产生了关系。 看这里继承-------我的理解 代码部分 接口 代码 抽象类 代码 各位友友们大家好呀&#x1f60a;&#xff01; 今天让我们继续回顾java&#xff0c;看看java中的抽象类以及接口继承是什么&#x1f914…

如何精确计算 π ?

如何精确计算 π &#xff1f; 01 原本是要回顾一下第六章内容&#xff0c;也就是“间隔性重复”。但我已经迫不及待&#xff0c;想要知道如何精确计算 π &#xff0c;因此&#xff0c;我们快走一步&#xff0c;来探讨一下 π 的计算。 对于 π 的计算&#xff0c;我从学校时…

Python基础学习(5)流程控制

文章目录 一. 程序三大执行流程二. 分支结构1.单分支结构(if)2.双分支结构(if..else)3.多分支结构(if..elif..else) 二,缩进(tab键)三,循环结构1.while循环2.for循环①遍历字典 五.break&#xff0c;continue和pass语句1.break&#xff0c;continue2.pass Python基础学习(1)基本…

蓝桥杯(日期问题纯暴力)

纯纯暴力&#xff0c;写的想吐&#xff0c;玛德服了。 但是复习了vector去重方法&#xff0c;日期的合法性判断。 #include <iostream> #include <vector> #include <cstring> #include <algorithm>using namespace std; vector<int> res; st…

浪潮信息数据中心管理平台InManage升级发布 新增三大场景功能

在AIGC应用日益广泛的当下&#xff0c;浪潮信息聚焦AIGC在数据中心运维管理中面临的难题&#xff0c;进一步通过技术创新升级功能及体验&#xff0c;为AIGC的高效应用创造了良好的基础。近日&#xff0c;浪潮信息数据中心管理平台InManage升级发布&#xff0c;新增资产数字化管…

强化学习(一)

#! https://zhuanlan.zhihu.com/p/686235471 深度强化学习&#xff08;一&#xff09;&#xff08;基础概念&#xff09; 一.马尔可夫决策过程 Agent:智能体&#xff0c;动作或决策对象 Environment: 与智能体交互的对象&#xff0c;可随时间变化 State&#xff1a;对某一…

智慧城市的未来:利用数字孪生技术推动智慧城市的智能化升级

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、城市规划与建设 2、城市管理与运营 3、公共服务与民生改善 4、应急管理与灾害防控 四、数字孪生技术推动智慧城市的智能化升级的价值 1、提高城市管理的智能化水平 2、优化城市资源配置 …

Allegro许可与其他软件的兼容性优势

解锁企业软件管理新篇章&#xff0c;Allegro许可与其他软件的兼容性优势 在数字化经济的时代&#xff0c;企业越来越依赖于各种软件应用来提升运营效率和管理水平。然而&#xff0c;企业在选择和使用软件时&#xff0c;经常会遇到与其他软件不兼容的问题&#xff0c;导致数据无…

答题pk小程序源码技术大解析

答题pk小程序源码解析 在数字化时代&#xff0c;小程序因其便捷性、即用性而受到广泛欢迎。其中&#xff0c;答题pk小程序更是成为了一种寓教于乐的现象。它不仅为用户提供了趣味性的知识竞技平台&#xff0c;还为企业、教育机构等提供了互动营销和知识传播的新途径。本文将对…

2024年品牌推广:构建品牌生态圈与注重品牌故事和文化传播

在全球经济深度融合、数字化浪潮汹涌澎湃的2024年&#xff0c;品牌推广的策略与模式正经历着前所未有的变革。在这一背景下&#xff0c;构建品牌生态圈和注重品牌故事与文化传播&#xff0c;成为了企业提升品牌竞争力和市场占有率的重要手段。 一、2024年市场经济分析与现状 …