每日更新十道热门开发岗位面试题,诸君自便
今天是第三天,以后每天都会照常更新,需要的道友可以收藏或者关注一波,不会迷路
1.zookeeper有什么功能,选举算法如何进行?
- 命名服务
- 配置管理
- 集群管理
- 分布式锁
- 队列管理
a.服务器启动时期的Leader选举
- 每个Server发出一个投票
- 接受来自各个服务器的投票
- 处理投票
- 统计投票
- 改变服务器状态
b.服务器运行时期的Leader选举
- 变更状态
- 每个Server会发出一个投票
- 接收来自各个服务器的投票
- 处理投票
- 统计投票
- 改变服务器的状态
2.什么是Java虚拟机
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的
3.static关键字在Java中是什么意思?
静态的
4.接口与抽象类的区别是什么?
- 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),抽象类可以有非抽象的方法
- 接口中的实例变量默认是 final 类型的,而抽象类中则不一定
- 一个类可以实现多个接口,但最多只能实现一个抽象类
- 一个类实现接口的话要实现接口的所有方法,而抽象类不一定
- 接口不能用 new 实例化,但可以声明,但是必须引用一个实现该接口的对象 从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
5.什么是迭代器?举例一个在以前工作中使用过的迭代器
Iterator接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代器实例的迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。
resversed(序列) 顺序翻转迭代 zip(序列1,序列2) 并行迭代 编号迭代
6.什么是死锁?
所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
7.AOP和IOC是什么?
8.String 是最基本的数据类型吗?
不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type),剩下的都是引用类型(reference type),Java 5以后引入的枚举类型也算是一种比较特殊的引用类型。
9.为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。
而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。
10.设计一个快速排序算法
冒泡排序
原理:比较两个相邻的元素,将值大的元素交换到右边
思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面