Java相关面试题总结+答案(十)】的更多相关文章

[JVM] 194. 说一下 JVM 的主要组成部分?及其作用? 类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Native Interface) 组件的作用: 首先类加载器(ClassLoader)会把字节码文件(.class)加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine),将字节码…
[Java基础] 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,即Java开发工具包,提供了Java 的开发环境和运行环境. JRE:Java Runtime Environment 的简称,即Java运行环境,为Java 的运行提供了所需环境. 具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具.简单来说:如果你需要运行 Java 程序,只需安装 JRE 就…
[容器] 18. Java 容器都有哪些? 19. Collection 和 Collections 有什么区别? Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List.Set 等. Collections 是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具类,比如提供的排序方法: Collections. sort(list). 20. List.Set.Map 之间的区别是什么? List.Set.Map 的区别主…
[MySQL] 164. 数据库的三范式是什么? 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项. 第二范式:属性完全依赖于主键(满足第一范式的前提下),即任意一个字段只依赖于表中的同一个字段. 第三范式:任何非主属性不依赖于其它非主属性(满足第二范式的前提下).即不存在传递依赖. 165. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几? 数据库引擎如果是 MyISAM ,那 id 就是 8. 数…
[反射] 57. 什么是反射? 反射是在运行状态中,对于任意一个类,都能够知道该类的所有属性和方法,对于任意一个对象,都能够获得该对象的任一属性和方法:这种动态获取信息以及动态调用对象的方法的功能称之为Java语言的反射机制. 58. 什么是 Java 序列化?什么情况下需要序列化? Java序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来. 以下情况需要使用Java序列化: 想把的内存中的对象状态保存到一个文件中或者数据库中时候: 想用套接字在网络上传送对象的时候: 想…
[多线程] 35. 并行和并发有什么区别? 并行:多个处理器或多核处理器同时处理多个任务.(是真正的物理上的同时发生) 并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行.(逻辑上的同时发生) 举个例子:排队打饭,当只有一个窗口可以打饭的时候,我们排成了两排,那么这两排只能一边一个来,这就是并发: 如果有两个窗口可以打饭的话,一个队一个窗口,那么这两排可以同时进行打饭,这就是并行了. 36. 线程和进程的区别? 首先一个程序下至少有一个进程,一个…
[Hibernate] 113. 为什么要使用 hibernate? hibernate 是对 jdbc 的封装,大大简化了数据访问层的繁琐的重复性代码. hibernate 是一个优秀的 ORM 实现,很多程度上简化了 DAO 层的编码功能. 可以很方便的进行数据库的移植工作. 提供了缓存机制,是程序执行更改的高效. 114. 什么是 ORM 框架? ORM(Object Relation Mapping)对象关系映射,是把数据库中的关系数据映射成为程序中的对象. 使用 ORM 的优点:提高了…
[Spring/Spring MVC] 90. 为什么要使用 spring? spring 提供了 IOC 技术,spring 容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦. spring 提供了事务支持,使得事务操作变得更加方便. spring 提供了面向切面编程,这样可以更方便的处理某一类问题. 更方便的框架集成,spring 可以很方便的整合其他框架,比如 mybatis.hibernate等. 91. 解释一下什么是 aop? aop 是面向切面…
[RabbitMQ] 135. RabbitMQ 的使用场景有哪些? 抢购活动,削峰填谷,防止系统崩塌. 延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒. 解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可. 136. RabbitMQ 有哪些重要的角色? RabbitMQ 中重要的角色有:生产者.…
[异常] 74. throw 和 throws 的区别? throw 是真实抛出一个异常: throws 是声明可能会抛出一个异常. 75. final.finally.finalize 有什么区别? final:是修饰符,可以修饰类.方法.变量,如果修饰类,此类不能被继承:如果修饰方法,此方法不能被重写(override):如果修饰变量,则该变量是不可修改的,即变量变成常量. finally:是 try-catch-finally 最后一部分,表示不论发生什么情况都会执行(除非在finally…