XML

一、什么是XML

XML(eXtended Markup Language)是一种可扩展标记语言,主要用于数据传输。

二、XML文档的结构

主要组成为:声明,元素,注释,属性,文本等。

一个格式良好的XML文档:1.XML文档必须有声明,且第一行必须为声明

2.每个XML文档只有一个根元素

3.标记大小写敏感

4.标记必须成对出现

5.空标记关闭</a>

6.属性值要用引号

XML中预定义的符号如:<、"、> ,如果XML文本中出现了这样的数据,可以使用预定义的实体来代替。一般常见的实体有:

如果有大量特殊字符,可以使用CDATA标签,表示标签中未纯文本数据。

三、XML的解析技术

XML文档内容,需要读取到内存中,才能被应用程序所识别。对于标记、子
标记,以及标记属性数据的提取,称为XML解析。

XML提供了两种解析技术:DOM解析,是一种基于树结构的API;SAX解析,一种事件驱动的API。

DOM解析的特点:1.给予树状结构的API

2.整个XML文档必须在内存中解析和存储

3.客户端应用程序就可以随机访问这些对象

4.大型文档则会造成内存紧张

SAX解析特点:1.不必把整个文件加载到内存中,占用的内存少

2.不能对文档进行随机访问

3.SAX是只读的

4.文档只会遍历一次

四、XML的优缺点

优点:1、可扩展性强。XML和它的定义文件(DTD)是文本文件,添加或修改都很方
便。
          2、满足开闭原则。XML的配置文件是独立于Java代码之外的,所以如果要修
改配置是不需要改动Java代码的。
缺点:1、解析麻烦,需要第三方类库配合
           2、配置文件过多后,会导致项目管理、维护变得困难。
           3、在做代码的关联配置时麻烦,会让开发人员不断在java代码和XML配置文
件之间来回切换。
           4、查错困难,XML只是文本文件,很多报错只能在运行期间体现,IDE集成
开发环境不能在编译期排查。

注解

一、什么是注解?

注解(Annotation)是一种元数据形式,属于java中的一种数据类型,也是一个标记,也称为描述数据的数据。

二、注解的语法

注解语法支持两种注解:

1、JDK自带的Annotation注解

@OverRide--用于重写父类的方法,只限方法

@Derecation--代表已经过时的某个方法或类

@SuppressWarnings--是抑制编译器的警告

2、开发者自定义的Annotation注解

关键字为@interface,注解本质是一种特殊的接口。在底层实现上,所有定义的注解都会自动继承

java.lang.annotation.Annotation。

元注解--@Target,是专门修饰注解的注解

@Retention--是定义注解的生命力:

其中注解的生命周期有三种:1、仅存在java源文件中
                                               2、被编译到class文件中
                                               3、运行期被加载到Class对象中

@Retention注解使用一个枚举类型RetentionPolicy定义了这三个选择:

1.RetentionPolicy.SOURCE--被限定在Java源文件中,该注解不会参与编译也不会在运行期起任何作用。

2.RetentionPolicy.CLASS--被编译到Class文件中,编译器可以在编译时根据注解做一些。
处理动作

3. @Retentionolicy.RUNTIME--运行期通过反射得到注解信息。

其中@Retentionolicy.RUNTIME是我们常用的。

注解类型元素说明:1.访问修饰符只能是public,默认也是public

2.元素类型只能是基本数据类型、String、Class、注解类型、枚举、一维数组

3.()里面不能定义参数

4.defult代表默认值,必须和元素类型一致

5.如果没有给定默认值,后面必须设置值

三、 注解Annotation的使用

1.定义注解:

2. 定义学生类,使用Test 注解:

3.定义TestAnnotation类,利用反射获取注解信息

四、注解的优缺点

优点:1、JDK自带反射方式解析,不引入第三方库
           2、直接配置在Java源代码中,所以不会引入额外的配置文件,项目管理和维
护变得简单
          3、无论是定义、配置还是解析都是java代码,所以不存在配置时需要在不同
语法格式中切换的问题。
          4、IDE支持度高,排查错误方便,提高开发效率
缺点:1、任何对配置、对定义的修改都需要改动Java代码,然后重新编译,重新打
包应用。
          2、不是通用标准,只能在Java中使用。

注解与注释的区别:注释是存在java源代码当中,用于提高代码的可读性,对于编译和运行没有任何作用,不可以被编译器打包进入class文件;注解是一个标记,可以被编译器打包进入class文件。

XML和注解Annotation的区别:XML是一种可标记语言,大量用于数据传输;注解是jdk1.5中的一种新类型,是在java代码中的特殊标记。

XML与注解在配置这个应用场景中互补性是非常高的。XML的缺点就是注解的优点,反之亦然。这也是目前在JavaEE的各大框架中XML+Annotation配置流的原因。

总结

1、XML称为可扩展的标记语言。是一种利用标记和子标记描述数据的文本格式。

2、XML文档由申明、文档类型定义、注释、元素、属性、以及文本等构成。

3、XML的实体可以描述特殊符号和预定义符号,避免解析时的错误。CDATA标记中描述不被解析器解析的文本。

4、满足XML的语法规则的XML文档,称为格式良好的XML。有效的XML,不仅仅要满足XML的语法规则,还要满足DTD和Schema定义的元素规则。

5、XML解析技术有DOM解析、SAX解析两种。其中DOM解析是基于树结构的API,SAX解析是基于事件驱动的API。

6、JAXP是对应用程序隐藏了特定解析器的接口,它提供了访问DOM和SAX实现的抽象层机制。常用的有JDOM和DOM4J。

7、注解Annotation是一种元数据形式,属于java中的一种数据类型。书写的位置被固定为类、方法、变量、参数和包的申明部分。

8、注解Annotation可以用来生成文档,检查代码间依赖关系,帮助编译器作语法检查等。在开发和配置期间,注解信息可以在运行期进行获取。

9、注解语法支持两种注解:JDK自带的Annotation注解,开发者自定义的Annotation注解

10、JDK自带的Annotation注解,常用的有三个@Override(强行检测子类方法是否重写了父类方法)、@Deprecated(标记类或方法是过时的)、@SuppressWarnings(抑制编译器警告。)

11、自定义注解使用关键字@interface。注解本质是一种特殊的接口,在底层实现上,所有定义的注解都会自动继承java.lang.annotation.Annotation。

12、@Target元注解可以限定该注解的应用范围。

13、@Retention注解,是用来限定某个自定义注解的生命力。该注解申RetentionPolicy.RUNTIME时,可以在运行期间通过反射的方式获取信息。

14、XML可以是不同的平台进行数据传输的标准格式。注解只能在java中使用,所以,不能完全替代XML。

15、把与代码关联度不高,并且改动可能性大的配置写在XML文件中。专门配置java代码级别关联度的,以后改动度小的则使用注解Annotation

XML和注解(Annotation)相关推荐

  1. 中文命名之Hibernate 5演示 - 使用注解(annotation)而非xml定义映射

    前文中文编程:中文命名之Hibernate 4+MySQL演示最后留下了个Hibernate 5之后出现的问题, 于是在Hibernate社区提交了报告: Seemingly regression s ...

  2. @select注解_mybatis开发,你用 xml 还是注解?我 pick xml

    最近在看公司项目时发现有的项目mybatis是基于注解开发的,而我个人的习惯是基于xml文件开发. 对于mybatis注解开发的原理理解不够,于是翻阅了部分源码,写下此文.主要介绍了mybatis开发 ...

  3. 让别人和自己看懂自己的程序代码?一文掌握Java单行多行、文档注释以及注解(Annotation)超详细的理解使用,IDEA注释注解快捷键和模板,提高程序代码更有可读性

    文章目录 单行和多行注释 文档注释(Java特有) Annotation(注解)的理解 常见的Annotation示例 IDEA注释注解快捷键及模板 自定义 Annotation JDK 中的元注解 ...

  4. 注解Annotation的IoC:从@Autowired到@Component

    注解Annotation的IoC:从@Autowired到@Component 2017-01-23 目录 1 什么是注解 2 不使用注解示例   2.1 com.springioc.animal.M ...

  5. 基于XML和注解的Spring Bean管理

    文章目录 Spring工厂接口 BeanFactory接口 ApplicationContext 接口 Spring的bean管理的两种方式: 3 种实例化bean的方式(xml) 通过构造方法创建b ...

  6. (转)Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义

    1.从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以 ...

  7. Java中的注解(Annotation)处理器解析

    Java中的注解(Annotation)是一个很神奇的东西,特别现在有很多Android库都是使用注解的方式来实现的.一直想详细了解一下其中的原理.很有幸阅读到一篇详细解释编写注解处理器的文章.本文的 ...

  8. spring中自定义注解(annotation)与AOP中获取注解___使用aspectj的@Around注解实现用户操作和操作结果日志

    spring中自定义注解(annotation)与AOP中获取注解 一.自定义注解(annotation) 自定义注解的作用:在反射中获取注解,以取得注解修饰的类.方法或属性的相关解释. packag ...

  9. JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试

    Spring框架学习路线 Spring的IOC Spring的AOP,AspectJ Spring的事务管理,三大框架的整合 Spring框架概述 什么是Spring?  Spring是分层的Java ...

最新文章

  1. SCI至上只是结果,而不是原因
  2. error-2016-2-15
  3. android BLE Peripheral 手机模拟设备发出BLE广播 BluetoothLeAdvertiser
  4. 阿里云文件存储的高性能架构演进之路
  5. echarts中datazoom相关配置
  6. 小杜机器人线下店_阿里线下卖车已成事实,阿里造车还会远吗?
  7. php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
  8. IS-IS详解(十三)——IS-IS 路由开销类型
  9. flstudio插件找不到_大家都用啥插件啊
  10. 小狸智能原创工具·AI伪原创API工具
  11. android 生成bks_在Android上实现SSL通信(二)
  12. android wifi 信道,WiFi不稳定经常断?手机WiFi信道小工具【图】_Android资讯_太平洋电脑网...
  13. C#基础知识(停止更新、移步博客园)
  14. 聊聊CVE漏洞编号和正式公开那些事
  15. Ramnit感染型病毒分析与处置
  16. 【大牛系列教学】如何准备面试?
  17. grafana graphite statsd搭建安装部署 实时监控_亲测成功
  18. 数据化决策-数据分析与高效经营1
  19. rust入门学习指南
  20. 【Apache Spark 】第 6 章Spark SQL 和数据集

热门文章

  1. js项目中常见util方法
  2. 离线安装金蝶Apusic中间件
  3. 北京市社会保险网上服务平台_城镇职工用户登陆_注册手机号更改
  4. JESD204接口调试总结——Xilinx JESD204B数据手册的理解
  5. 使用二维数组和函数解决八皇后问题(c++)
  6. 【Java开发】Spring Cloud 01 :微服务前提精要
  7. java做五子棋 视频_java swing实现五子棋小游戏项目源码附带视频指导运行教程...
  8. 动手学深度学习——softmax回归之OneHot、softmax与交叉熵
  9. 2022网络工程师下午大纲(附带华为交换机开局配置一本通)
  10. 深度学习DeepLearning