avatar
文章
84
标签
28
分类
6

文章
  • 文章列表
  • 全部分类
  • 所有标签
  • 随便看看
统计
  • 文章统计
  • 博客统计
导航
  • 友链订阅
  • 友情链接
  • 网站收藏
博客
  • 关于本站
  • 网站公告
  • 留言信箱
  • 博客更新
EurkonEurkon
文章
  • 文章列表
  • 全部分类
  • 所有标签
  • 随便看看
统计
  • 文章统计
  • 博客统计
导航
  • 友链订阅
  • 友情链接
  • 网站收藏
博客
  • 关于本站
  • 网站公告
  • 留言信箱
  • 博客更新
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
上一篇
排序算法
排序算法排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列,排序就是把集合中的元素按照一定的次序排序在一起。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 相关概念 稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。 非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。 原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。 非原地排序:需要利用额外的数组来辅助排序。 时间复杂度:一个算法执行所消耗的时间。 空间复杂度:运行完一个算法所需的内存大小。 时间复杂度对比 排序算法 平均时间复杂度 最坏时间复杂度 最优时间复杂度 空间复 ...
cover of next post
下一篇
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-21
Java 面试题解析(反射)
获得一个类的类对象有哪些方式?答: 类型.class,例如:String.class 对象.getClass(),例如:"hello".getClass() Class.forName(),例如:Class.forName("java.lang.String") 如何通过反射创建对象?答: 通过类对象调用 newInstance() 方法,例如:String.class.newInstance() 通过类对象的 getConstructor() 或 getDeclaredConstructor() 方法获得构造器(Constructor)对象并调用其 newInstance() 方法创建对象,例如:String.class.getConstructor(String.class).newInstance("Hello"); 如何通过反射获取和设置对象私有字段的值?答:可以通过类对象的 getDeclaredField() 方法字段(Field)对象,然后再通过字段对象的 setAccessible(true) 将其设置 ...
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 使用双向链表实现存储(将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按序号索引的线性结构,这种链式存储方式与数组的连续存储方式相比,内存的利用率更高),按序号索引数据需要进行前向 ...
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-20
Java 面试题解析(数据库)
XML 文档定义有几种形式?它们之间有何本质区别?解析 XML 文档有哪几种方式?答:XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且可以为 XML 承载的数据定义类型,约束能力较之 DTD 更强大。对 XML 的解析主要有 DOM(文档对象模型,Document Object Model)、SAX(Simple API for XML)和 StAX(Java 6 中引入的新的解析 XML 的方式,Streaming API for XML),其中 DOM 处理大型文件时其性能下降的非常厉害,这个问题是由 DOM 树结构占用的内存较多造成的,而且 DOM 解析方式必须在解析文件之前把整个文档装入内存,适合对 XML 的随机访问(典型的用空间换取时间的策略);SAX 是事件驱动型的 XML 解析方式,它顺序读取 XML 文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过事件回调代码来处理 XML ...
cover
2021-03-21
Java 面试题解析(设计模式)
简述一下面向对象的"六原则一法则"。答: 单一职责原则:一个类只做它该做的事情。(单一职责原则想表达的就是"高内聚",写代码最终极的原则只有六个字“高内聚、低耦合”,就如同葵花宝典或辟邪剑谱的中心思想就八个字“欲练此功必先自宫”,所谓的高内聚就是一个代码模块只完成一项功能,在面向对象中,如果只让一个类完成它该做的事,而不涉及与它无关的领域就是践行了高内聚的原则,这个类就只有单一职责。我们都知道一句话叫“因为专注,所以专业”,一个对象如果承担太多的职责,那么注定它什么都做不好。这个世界上任何好的东西都有两个特征,一个是功能单一,好的相机绝对不是电视购物里面卖的那种一个机器有一百多种功能的,它基本上只能照相;另一个是模块化,好的自行车是组装车,从减震叉、刹车到变速器,所有的部件都是可以拆卸和重新组装的,好的乒乓球拍也不是成品拍,一定是底板和胶皮可以拆分和自行组装的,一个好的软件系统,它里面的每个功能模块也应该是可以轻易的拿到其他系统中使用的,这样才能实现软件复用的目标。) 开闭原则:软件实体应当对扩展开放,对修改关闭。(在理想的状态下,当我们需要 ...
评论
avatar
Eurkon
在这里我将记录学习过程中的笔记、分享一些经验与想法。希望能够帮助到您!
文章
84
标签
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
最新文章
数仓设计与 ETL 规范
数仓设计与 ETL 规范2022-12-31
ECharts 生涯彩虹图
ECharts 生涯彩虹图2022-11-06
Butterfly 文章增加段落序号
Butterfly 文章增加段落序号2022-10-31
Butterfly Twikoo 评论热评
Butterfly Twikoo 评论热评2022-09-13
Butterfly 推荐文章增加文章描述
Butterfly 推荐文章增加文章描述2022-08-16
Butterfly 分类标签归档页增加文章索引
Butterfly 分类标签归档页增加文章索引2022-07-28
统计文章统计博客统计
导航申请友链魔改源码网站收藏随机文章
分类学习笔记魔改教程分享转载作品案例
关于网站公告博客更新给我留言联系博主
服务友链订阅RSS 订阅Atom 订阅BlogFinder
友链加载中...加载中...加载中...更多友链
协议评论协议版权协议
Copyright © 2021 - 2023 Eurkon.com All Rights Reserved.
粤ICP备2022108639号
设置
最新评论
正在加载中...
分类
  • 🖥️作品案例19
  • 🌐分享转载3
  • 📚学习笔记24
  • 💬生活随笔1
  • 📝面试系列21
  • 🎨魔改教程16
标签
ECharts22Python1数据分析7PostgreSQL7大数据22Hadoop3JavaScript1生活随笔1HTML1文档5Flume2Java10Sqoop2Zookeeper2Kafka2Hive3HBase2MySQL5Spark3Hexo16Butterfly9Git1Linux1Markdown1R4算法1数据仓库1Elasticsearch1
搜索
数据库加载中

复制内容
引用评论
粘贴文本
在本站搜索
去百度搜索
复制图片
下载图片
分享链接
新窗口打开
随机文章全部分类所有标签
分享本页
留言信箱关于本站