`

Java面试汇总(七)之xml

 
阅读更多

1、XML文档定义有几种形式?它们之间有何本质区别?

答:有 两种形式 dtd  和 schema

本质区别: schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。

2、java 解析操作xml的技术有哪些?区别是什么?

答: 有DOM,SAX,STAX等

DOM

处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问

SAX

不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

选择DOM还是选择SAX? 对于需要自己编写代码来处理XML文档的开发人员来说, 选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。

  DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用 navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要 求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。

  SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定 的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag.特别是当开发人员只需要处理文档中所包含的部分数据 时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

STAX

Streaming API for XML (StAX)

StAX被设计为DOM和SAX的一个折中。在StAX中,程序的切入点是表示XML文档中一个位置的光标。应用程序在需要时向前移动光标,从解析器拉出信息。与 基于事件的API(如SAX)将“数据推送”给应用程序不同的是,SAX需要应用程序维持时间间的状态,以保持文档内的位置信息。

3、你在项目中用到了xml技术的哪些方面?是如何实现的?

答:用到了数据存贮,系统配置两方面。在做数据交换平台时,将数据源的数据封装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。

在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

毕竟XML方面的知识不是几句话就能说清楚的,在java的面试过程中,经常是会让被面试说说 DOM 和SAX 之间的区别,适合的场合。

分享到:
评论

相关推荐

    5年java面试题汇总.docx

    Java工程师面试题汇总涵盖了广泛的IT领域知识,包括基础的Java语法、数据库原理、多线程概念、ORM框架MyBatis、缓存系统Redis、微服务框架Spring Cloud以及全文搜索引擎Elasticsearch。这些知识点是Java开发者在职业...

    java面试笔试题大汇总

    Java面试笔试题大汇总,是Java开发者在求职过程中必须面对的重要环节。这个资源可能是为了帮助求职者准备面试和笔试而精心收集的,包含了各种常见和深入的Java编程问题。下面,我们将围绕Java面试和笔试的一些核心...

    java经典面试题

    ### Java经典面试题知识点 #### Java数据结构容器 - **核心知识点**:Java集合框架,包括List、Set、Map等接口及其实现类。List接口代表有序的集合,例如ArrayList和LinkedList;Set接口代表不允许重复元素的集合,...

    Java面试题大汇总(2021年Java面试题大全带答案)

    Java面试题大汇总(2021年Java面试题大全带答案) Java是一种流行的编程语言,广泛应用于Web开发、Android应用开发、桌面应用开发等领域。作为一名Java开发者,需要具备扎实的基础知识和实践经验。以下是Java面试题...

    java面试题经典汇总

    根据提供的文件信息,我们可以整理出以下关键的Java知识点: ### 1. 面向对象的特征 面向对象编程(Object-Oriented Programming, OOP...这些知识点对于准备 Java 面试非常重要,也是日常开发工作中经常使用的知识。

    java面试笔试题分类汇总

    这份"java面试笔试题分类汇总"涵盖了多个核心Java技术领域的知识点,对于准备Java面试或笔试的人员来说,是一份非常宝贵的学习资源。以下是对每个领域的详细解读: 1. **EJB (Enterprise JavaBeans)**:EJB是Java ...

    java英语面试题汇总

    在Java软件开发领域,英语面试是评估候选人技术能力、沟通技巧以及压力处理能力的重要环节。以下是一些常见的Java英语面试问题及解析: 1. **自我介绍** 面试官可能会让你简单介绍一下自己,包括教育背景、工作...

    Java面试题目汇总英文Java面试题(核心知识).doc

    Java面试题目涵盖了许多核心知识点,包括面向对象编程、并发处理、数据结构、网络通信、持久化、JSP、Servlet、EJB、数据库管理和WebLogic服务器的配置。以下是对这些主题的详细阐述: 1. **面向对象的三个基本特征...

    JAVA 面试题汇总

    【JAVA 面试题汇总】是一份集合了各种JAVA面试常见问题的资料,涵盖了核心JAVA、面向对象设计与UML、XML、SQL、JDBC、Hibernate、Web技术、EJB、Spring、数据结构与算法、计算机基础知识以及C++等多个方面。...

    java 面试题汇总

    以下是一些重要的Java面试知识点,基于标题"java 面试题汇总"和描述中的"Java基础知识"、"JAVA多线程编程"、"Servlet的基本架构"。 1. **Java基础知识**: - **数据类型与变量**:Java分为基本数据类型(如int、...

    java面试试题总汇

    Java面试试题总汇是针对Java开发者的一份集大成的面试资源,主要涵盖了Java语言的基础、进阶以及实际开发中的常见问题。这份资料可能是由某培训机构的老师精心编纂,旨在帮助学生准备面试,提高他们对Java技术栈的...

    Java面试测试题目2018张大成总结

    ### Java面试测试题目知识点梳理 #### 1. int和Integer有什么区别? - **int**: 是Java的基本数据类型之一,用于存储整数值。占用4个字节的空间,取值范围为-2^31到2^31-1。 - **Integer**: 是int的包装类,实现了...

    java面试题和基础知识汇总超详细

    ### Java基础知识与面试题详解 #### 基本数据类型 Java中定义了八种基本数据类型:`byte`、`short`、`int`、`long`、`boolean`、`double`、`float`、`char`。这些类型在内存中占用固定的字节数,其中`byte`类型...

    125条常见的java 面试笔试题大汇总

    这份"125条常见的java面试笔试题大汇总"不仅包含了上述知识点,还可能包含更多深入的问题,如并发工具类、网络编程、XML处理等。通过深入学习和实践,你可以更好地准备Java面试,提高成功获得理想职位的机会。

    java 面试题总汇

    在Java面试中,面试官通常会考察候选人的基础知识、编程能力、设计模式、并发处理、集合框架、JVM原理等多个方面。以下是一些Java面试中常见的知识点: 1. **基础语法**:包括数据类型(原始类型与引用类型)、变量...

    Java面试题目汇总英文Java面试题核心知识.pdf

    【Java面试核心知识详解】 Java面试题涵盖了众多关键知识点,以下是对这些知识点的详细解析: 1. **面向对象的三个基本特征**:封装、继承和多态。封装是将数据和操作数据的方法捆绑在一起,保护数据不受外部非法...

    Java面试题目汇总英文Java面试题(核心知识).docx

    【Java面试核心知识详解】 Java面试题覆盖了广泛的知识领域,包括面向对象、多线程、数据结构、网络通信、JSP、Servlet、EJB、数据库以及Web服务器配置。以下是对这些关键知识点的详细解释: 1. **面向对象的三个...

    华为等各大厂Java面试笔试题汇总.rar

    这份“华为等各大厂Java面试笔试题汇总”包含了众多Java核心技术与面试常见问题,旨在帮助求职者准备这些挑战。 1. **Java基础** - 类与对象:理解面向对象的基本概念,如封装、继承和多态。 - 构造器:掌握构造...

    Java面试题大全汇总

    Java面试题大全汇总 在Java开发领域,面试是评估求职者技能和知识的重要环节。这份文档集合了多种Java面试常见的问题和答案,旨在帮助求职者准备面试,同时也为经验丰富的开发者提供了一个复习和巩固基础知识的平台...

Global site tag (gtag.js) - Google Analytics