avatar
文章
88
标签
28
分类
6
文章
  • 文章列表
  • 全部分类
  • 所有标签
  • 随便看看
统计
  • 文章统计
  • 博客统计
导航
  • 友链订阅
  • 友情链接
  • 网站收藏
博客
  • 关于本站
  • 网站公告
  • 留言信箱
  • 博客更新
EurkonJava 面试题解析
文章
  • 文章列表
  • 全部分类
  • 所有标签
  • 随便看看
统计
  • 文章统计
  • 博客统计
导航
  • 友链订阅
  • 友情链接
  • 网站收藏
博客
  • 关于本站
  • 网站公告
  • 留言信箱
  • 博客更新
搜索
cover
📝面试系列|Java

Java 面试题解析

发表于2021-03-15|更新于2021-03-15|总字数:28|阅读时长:1分钟|浏览量:|评论数:

Java 基础

Java 容器

Java 并发

Java IO流

Java 数据库

Java 反射

Java 设计模式

Java Web

Java EE

Java 面试题解析
https://blog.eurkon.com/post/d2aef718.html
转载前请阅读本站 版权协议,文章著作权归 Eurkon 所有,转载请注明出处。
Java
cover of previous post
上一篇
Java 面试题解析(基础)
面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调...
cover of next post
下一篇
排序算法
排序算法排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列,排序就是把集合中的元素按照一定的次序排序在一起。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 相关概念 稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。 非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。 原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。 非原地排序:需要利用额外的数组来辅助排序。 时间复杂度:一个算法执行所消耗的时间。 空间复杂度:运行完一个算法所需的内存大小。 时间复杂度对比 排序算法 平均时间复杂度 最坏时间复杂度 最优时间复杂度 ...
相关推荐
cover
2021-03-22
Java 面试题解析(Java Web)
阐述 Servlet 和 CGI 的区别?答:Servlet 与 CGI 的区别在于 Servlet 处于服务器进程中,它通过多线程方式运行其 service() 方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而 CGI 对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于 Servlet。 补充:Sun Microsystems 公司在 1996 年发布 Servlet 技术就是为了和 CGI 进行竞争,Servlet 是一个特殊的 Java 程序,一个基于 Java 的 Web 应用通常包含一个或多个 Servlet 类。Servlet 不能够自行创建并执行,它是在 Servlet 容器中运行的,容器将用户的请求传递给 Servlet 程序,并将 Servlet 的响应回传给用户。通常一个 Servlet 会关联一个或多个 JSP 页面。以前 CGI 经常因为性能开销上的问题被诟病,然而 Fast CGI 早就已经解决了 CGI 效率上的问题,所以面试的时候大可不必信口开河的诟病 CGI,事实上有很多你熟悉的网站都使用了 CGI 技术。 Servlet 接口...
cover
2021-03-18
Java 面试题解析(并发)
Thread 类的 sleep() 方法和对象的 wait() 方法都可以让线程暂停执行,它们有什么区别?答:sleep() 方法(休眠)是线程类 Thread 的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第 66 题中的线程状态转换图)。wait() 是 Object 类的方法,调用对象的 wait() 方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的 notify() 方法(或 notifyAll() 方法)时才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。 补充:可能不少人对什么是进程,什么是线程还比较模糊,对于为什么需要多线程编程也不是特别理解。简单的说:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位;线程是进程的一个实体,是 CPU 调度和分派的基本单位,是比进程更小的能独立运行的基本单位。线...
cover
2021-03-23
Java 面试题解析(Java EE)
什么是 ORM?答:对象关系映射(Object-Relational Mapping,简称 ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据(在 Java 中可以用 XML 或者是注解),将程序中的对象自动持久化到关系数据库中或者将关系数据库表中的行转换成 Java 对象,其本质上就是将数据从一种形式转换到另外一种形式。 持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些?答:所谓“持久”就是将数据保存到可掉电式存储设备中以便今后使用,简单的说,就是将内存中的数据保存到关系型数据库、文件系统、消息队列等提供持久化支持的设备中。持久层就是系统中专注于实现数据持久化的相对独立的层面。 持久层设计的目标包括: 数据存储逻辑的分离,提供抽象化的数据访问接口。 数据访问底层实现的分离,可以在不修改代码的情况下切换底层实现。 资源管理和调度的分离,在数据访问层实现统一的资源调度(如缓存机制)。 数据抽象,提供更面向对象的数据操作。 持久层框架有: Hibernate MyBatis TopLi...
cover
2021-03-16
Java 面试题解析(基础)
面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调...
cover
2021-03-19
Java 面试题解析(IO流)
Java 中如何实现序列化,有什么意义?答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。 要实现序列化,需要让一个类实现 Serializable 接口,该接口是一个标识性接口,标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过 writeObject(Object) 方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流,然后通过 readObject 方法从流中读取对象。序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆(可以参考第 29 题)。 Java 中有几种类型的流?答:字节流和字符流。字节流继承于 InputStream、OutputStream,字符流继承于 Reader、Writer。在 java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。关于 Java 的 I/O 需要注意的有两点:一是两种对...
cover
2021-03-17
Java 面试题解析(容器)
List、Set、Map 是否继承自 Collection 接口?答:List、Set 是,Map 不是。Map 是键值对映射容器,与 List 和 Set 有明显的区别,而 Set 存储的零散的元素且不允许有重复元素(数学中的集合也是如此),List 是线性结构的容器,适用于按数值索引访问元素的情形。 阐述 ArrayList、Vector、LinkedList 的存储性能和特性。答: ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 中的方法由于添加了 synchronized 修饰,因此 Vector 是线程安全的容器,但性能上较 ArrayList 差,因此已经是 Java 中的遗留容器。 LinkedList 使用双向链表实现存储(将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按序号索引的线性结构,这种链式存储方式与数组的连续存储方式相比,内存的利用率更高),按序号索引数据需要进...

评论
Eurkon
在这里我将记录学习过程中的笔记、分享一些经验与想法。希望能够帮助到您!
文章
88
标签
28
分类
6
目录
  1. 1. Java 基础
  2. 2. Java 容器
  3. 3. Java 并发
  4. 4. Java IO流
  5. 5. Java 数据库
  6. 6. Java 反射
  7. 7. Java 设计模式
  8. 8. Java Web
  9. 9. Java EE
最新文章
ECharts 帕累托图
ECharts 帕累托图2023-05-30
ECharts 子弹图
ECharts 子弹图2023-04-27
ECharts 径向条形图
ECharts 径向条形图2023-04-26
ECharts 渐变折线图
ECharts 渐变折线图2023-03-12
数仓设计与 ETL 规范
数仓设计与 ETL 规范2022-12-31
ECharts 生涯彩虹图
ECharts 生涯彩虹图2022-11-06
统计文章统计博客统计
导航申请友链魔改源码网站收藏随机文章
分类学习笔记魔改教程分享转载作品案例
关于网站公告博客更新留言信箱联系博主
服务友链订阅RSS 订阅Atom 订阅BlogFinder
友链加载中...加载中...加载中...更多友链
协议评论协议版权协议
Copyright © 2021 - 2026 Eurkon.com All Rights Reserved.
框架 Hexo|主题 Butterfly
粤ICP备2022108639号
设置
最新评论
加载中...
分类
  • 作品案例23
  • 分享转载3
  • 学习笔记24
  • 生活随笔1
  • 面试系列21
  • 魔改教程16
标签
Butterfly9ECharts26Elasticsearch1Flume2Git1HBase2HTML1Hadoop3Hexo16Hive3Java10JavaScript1Kafka2Linux1Markdown1MySQL5PostgreSQL7Python1R4Spark3Sqoop2Zookeeper2大数据22数据仓库1数据分析7文档5生活随笔1算法1
复制内容
引用评论
粘贴文本
在本站搜索
去百度搜索
复制图片
下载图片
分享链接
新窗口打开
随机文章全部分类所有标签
分享本页
留言信箱关于本站
搜索
数据加载中