JAVA面试题基础篇四,附赠答案

it2022-05-05  95

问:java反射的作用于原理

答:JAVA语言编译之后会生成一个.class文件,反射就是通过字节码文件找到某一个类、类中的方法以及属性等。 反射的实现主要借助以下四个类: Class:类的对象 Constructor:类的构造方法 Field:类中的属性对象 Method:类中的方法对象

问:泛型常用特点

答:泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写,体验泛型代码时定义一些可变部份,那些部份在使用前必须作出指明。 泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。 泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符。

问:解析XML的几种方式的原理与特点:DOM、SAX、JDOM、DOM4J

答:XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。

DOM解析,DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。 优点:1、形成了树结构,有助于更好的理解、掌握,且代码容易编写。2、解析过程中,树结构保存在内存中,方便修改。 缺点:1、由于文件是一次性读取,所以对内存的耗费比较大。2、如果XML文件比较大,容易影响解析性能且可能会造成内存溢出。

SAX解析全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。 优点:1、采用事件驱动模式,对内存耗费比较小。2、适用于只处理XML文件中的数据时。 缺点:1、编码比较麻烦。2、很难同时访问XML文件中的多处不同数据。

JDOM解析特征:1、仅使用具体类,而不使用接口。2、API大量使用了Collections类。 DOM4J解析特征:1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。2、它使用接口和抽象基本类方法。3、具有性能优异、灵活性好、功能强大和极端易用的特点。4、是一个开放源码的文件

问:jdk 1.5、1.6、1.7、1.8、1.9的新特性

答:1.5自动装箱与拆箱:、枚举(常用来设计单例模式)、静态导入、可变参数、内省 1.6Web服务元数据、脚本语言支持、JTable的排序和过滤、更简单,更强大的JAX-WS、轻量级Http Server、嵌入式数据库 Derby 1.7switch中可以使用字串了、运用List tempList = new ArrayList<>(); 即泛型实例化类型自动推断、语法上支持集合,而不一定是数组、新增一些取环境信息的工具方法、Boolean类型反转,空指针安全,参与位运算、两个char间的equals、安全的加减乘除、map集合支持并发请求,且可以写成 Map map = {name:"xxx",age:18}; 1.8允许在接口中有默认方法实现、Lambda表达式、函数式接口、方法和构造函数引用、Lambda的范围、内置函数式接口、Streams、Parallel Streams、Map、时间日期API、Annotations 1.9Jigsaw 项目;模块化源码、简化进程API、轻量级 JSON API、钱和货币的API、改善锁争用机制、代码分段缓存、智能Java编译, 第二阶段、HTTP 2.0客户端、Kulla计划: Java的REPL实现

问:常用的设计模式有哪些,怎么实现

答:见本站http://www.meimeicode.com/view/17

问:JNI的使用

答:小编也没使用过,可移步此处观看https://blog.csdn.net/lintcgirl/article/details/56679153

问:AOP是什么

答:面向切面编程,能够让我们在不影响原有功能的前提下,为软件横向扩展 功能

常用场景:日志记录,活动等等(拦截器)

问:OOP是什么

答:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件: 组件 - 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。 抽象性 - 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。 封装-也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。 多态性 - 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。 继承性-允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。

问:AOP与OOP的区别

答:AOP: (Aspect Oriented Programming) 面向切面编程。是目前软件开发中的一个热点,也是Spring框架中容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。 AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。 而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。


最新回复(0)