Fork me on Gitee

Java面试整理(精简版)

Java基础

Java面向对象有哪些特征,如何应用

特征(OOP) 解释说明 通俗理解 关系联系 作用
封装 隐藏内部细节,只对外暴露访问方法 属性/方法封装,便于使用,限制不合理操作 类-类 低耦合,高内聚,增强代码可维护性;**
继承 新类吸收已有类数据(属性/行为),并能扩展新能力。 特殊特征(子类)-共同特征(父类) 父类-子类 避免对一般类和特殊类共同特征重复描述,使系统模型比较简练清晰
多态 两个类有继承关系,存在方法重写,父类指向子类 类-类
抽象

本质 : 利用类和对象编程的思想方式。

HashMap原理是什么,在jdk1.7和1.8中有什么区别

区别 (原理) 数据结构 实现细节 时间复杂度
1.7 数组+单向链表(链表长时查询效率低) 先从数组,再到链表 O(N)
1.8 数组+单向链表+红黑树 同上,当链表元素超过8,将链表转成红黑树查找 O(logN)

ArrayList和LinkedList有什么区别

区别 底层 方式 时间复杂度 优势(大数据下)
ArrayList 数组 索引 O(1) 适合查找
LinkedList 链表 元素列表 O(N) 适合增删

Java框架

Spring

如何实现一个IOC容器?

IOC(Inversion of Control),控制反转,非技术,是一种设计思想,IOC是将设计好的对象交给容器控制,而不是传统在对象内部直接控制。

IOC容器作用:用于控制对象创建及注入依赖。

实现:

准备一个基本容器对象(包含map结构的集合,方便后续过程存储具体对象)
-->将需要创建的bean对象都封装成BeanDefinition对象存储在容器中(进行配置文件读取或注解解析)
-->容器将封装好的BeanDefinition对象通过反射的方式进行实例化(完成对象的实例化工作)
-->进行对象初始化操作(给类中的对应属性值进行设置/依赖注入,完成整个对象的创建,变成一个完整的bean对象,存储在容器的某个map结构中)
-->进行对象获取和逻辑处理工作(通过容器对象来获取对象)
-->提供销毁操作(当对象不用或容器关闭,将无用对象销毁)

说说你对Spring 的理解?

  • Spring 使创建 Java 企业应用程序变得更加容易。
  • Spring支持各种应用场景。
  • Spring 是开源的。

你觉得Spring的核心是什么?

  • spring是一个开源框架。
  • spring是一个IOC(控制反转)和AOP(面向切面编程)的容器框架。
  • spring是为了简化企业开发而生的,使得开发变得更加优雅和简洁。

容器:包含并管理应用对象的生命周期,就好比用桶装水一样,spring就是桶,而对象就是水

说一下使用spring的优势?

  • Spring通过DI、AOP和消除样板式代码来简化企业级Java开发

  • Spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它将Spring扩展到不同的领域,如Web服务、REST、移动开发以及NoSQL

  • 低侵入式设计,代码的污染极低

  • 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺

  • Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦

  • Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式处理,从而提供了更好的复用

  • Spring的ORM和DAO提供了与第三方持久层框架的的良好整合,并简化了底层的数据库访问

  • Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

Spring是如何简化开发的?

  • 基于POJO的轻量级和最小侵入性编程
  • 通过依赖注入和面向接口实现松耦合
  • 基于切面和惯例进行声明式编程
  • 通过切面和模板减少样板式代码

持更,定个小目标,尽量一天更五题,题目和答案由尚学堂修改而来

posted @ 2022-04-16 18:09  Coding66  阅读(347)  评论(0)    收藏  举报
动态线条
动态线条end