你值得拥有的一份面试题

你值得拥有的一份面试题

前言:跨度可能有点大希望能帮到你,这也是我曾经的面试过的题目,多看看对你自己的提升有很大的帮助.

1.异常
异常的体系结构
Throwable
Error Exception
RuntimeException

2.错误和异常的区别

错误通常是指由于硬件环境或者系统原因导致的程序员
通过代码无法解决的问题 相对较严重
异常是指程序运行过程当中出现的例外情况而已
运行时异常和非运行时异常的区别:
非运行时异常在编译的时候就需要进行异常处理
否则编译都无法通过 它们都直接继承 Exception
运行时异常 编译的时候不需要给出解决方案
运行时异常直接体现 它们继承 RuntimeException
异常都是在什么时候出现:
只要是个异常 都一定在运行的时候出现

3:常见的运行时异常:
NullPointerException
ClassCastException
ArrayIndexOutOfBoundsException
StringIndexOutOfBoundsException
IndexOutOfBoundsException

2.设计模式
单例如何写的 private2 + static2 + public
工厂模式 : 连接工厂 CF 会话工厂 SF
代理模式 : SpringAOP 的核心实现 就是依靠动态代理模式
包装模式 : IO 流
策略模式 : 同一个接口 多种不同的实现类 强调 每种实现类提供的算法不同
观察者模式 : 监听器
命令模式 : Struts result

3.类能继承一个类还是多个类
Java 当中的类只支持单根继承
但是 Java 当中的接口支持多重继承
interface A extends B,C,D{…}
class E implements X,Y,Z{…}

4.多线程如何解决并发错误
加锁
语法级别的锁:synchronized
OO 思想的锁:java.util.concurrent.locks.ReentrantLock 可重入锁

5.HashMap Hashtable 的区别?

Hashtable 底层大量的方法使用了 synchronized 所以线程安全
但是效率低
HashMap 底层没有同步机制 所以效率较高 但是多线程的场景下可能出现并发错误
*:java.util.concurrent.ConcurrentHashMap 支持高并发的 HashMap

对于 null 的处理不同
HashMap 无论主键还是值 都可以添加 null 但是之间唯一
Hashtable 无论主键还是值 都不能放 null 否则空指针异常

底层实现分组和散列算法不同
HashMap 默认 16 组 分组组数必须是 2 的 n 次方 &(分组组数-1)
Hashtable 默认 11 个小组 %分组组数

出现的版本不同
HashMap since JDK1.2
Hashtable since JDK1.0

6. 定时任务怎么实现的

  1. jdk 自带的库中,有两种技术可以实现定时任务:
  • 一种是使用 Timer;
  • 另外一个则是 ScheduledThreadPoolExecutor;
  1. 使用 Quartz 框架
    附 1:Timer 方式
    public class TimerDemo {
    public static void main(String[] args) {
    //创建定时器对象
    Timer timer = new Timer();
    //在 2 秒后执行 EtoakTask 类中的 run 方法,后面每 5 秒执行一次
    timer.schedule(new EtoakTask(), 2000, 5000);
    }
    }
    class EtoakTask extends TimerTask {
    @Override
    public void run() {
    System.out.println(“hello world”)

7. Spring 整合 Quartz 定时任务的配置

class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> 
<property name="jobClass" value="com.etoak.job.ClusterJob" />  <!--
持久化任务 -->  <property name="durability" value="true" />  <property
name="name" value="clusterJob" />  <property name="group"
value="group1" /> </bean> <!-- CronTriggerFactoryBean --> <bean
id="trigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> 
<property name="jobDetail" ref="jobDetail" />  <property
name="cronExpression" value="0/5 * * * * ?" />  <property name="name"
value="clusterTrigger" />  <property name="group" value="group1" />
</bean> <!-- SchedulerFactoryBean --> <bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers">  <list>  <ref bean="trigger" />  </list> 
</property>忙于采集的蜜蜂,无暇在人前高谈阔论 89 / 92  <property name="configLocation"
value="classpath:quartz.properties" />  <property name="dataSource"
ref="dataSource" />  <property name="transactionManager" ref="tx" /> 
<!-- 解决 spring 管理的 bean 无法注入任务类中-->解决方式一 :把 spring ioc
容器放到调度器的容器中(context 中) -->  <property
name="applicationContextSchedulerContextKey" value="ioc" /> </bean>```

8 消息队列
8.1 消息队列有没有接触过? 简单介绍一下?

了解,消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,
可伸缩和最终一致性架构;
目前使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ;

8.2 说一下消息的类型?
点对点 Point To Point(P2P)
发布/订阅 Publish-Subscribe(Pub\Sub)类型

9. 微服务、SpringCloud微服务的框架了解过嘛?谈谈你对微服务的理解?还了解哪些微服
务框架?

了解过,在 xx 项目使用过 Dubbo;在 xx 项目使用过 SpringCloud;
总体来说,微服务是一种架构风格,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合;
对于一个大型复杂的业务系统:
它的业务功能可以拆分为多个独立的服务;
各个服务之间是松耦合的;
通过远程协议进行通信 ( 异步、同步 );
各个微服务均可被独立部署、扩容、升降级。
其它微服务框架还有 Motan、GRPC、Thrift 等;
接下来可能会让你对比一下 Dubbo 和 SpringCloud。

10.你说一下 Dubbo 和 SpringCloud 的区别

由于 Dubbo 出现的比较早,自己接触的比较早,刚开始接触 SpringCloud 的时候,也拿两者进行了对比,但是渐渐发现,
发现两者的对比的本质是 REST 和 RPC 的对比;

  • SpringCloud 借助 SpringBoot 提供一套完整的微服务解决方案,而 Dubbo 的定义是一款高性能的 RPC 框架;
  • 如果非要对比的话,我捡几个重要的点进行对比一下:
  1. 在服务调用方式方面,Dubbo 采用 RPC 方式,而 SpringCloud 使用 REST 方式;
  2. 在注册中心方面,Dubbo 推荐使用 Zookeeper,而 SpringCloud 推荐使用 Eureka;
  3. 在服务网关方面,Dubbo 没有服务网关,而 SpringCloud 提供了 Zuul 和 Spring cloud gateway;
  4. 在断路器方面,Dubbo 不太完善,而 SpringCloud 整合了 Hystrix;
  5. 在分布式配置方面,Dubbo 没有提供,而 SpringCloud 提供了 spring cloud config;
  6. 在服务跟踪方面,Dubbo 没有提供,而 SpringCloud 提供了 spring cloud sleuth;
    等等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是一份 Prometheus 面试题整理: 1. 什么是 Prometheus? 2. Prometheus 的主要功能是什么? 3. Prometheus 支持哪些据源? 4. Prometheus 如何进行据存储? 5. Prometheus 如何实现自动发现? 6. Prometheus 中有哪些重要的概念? 7. Prometheus 的查询语法是如何设计的? 8. Prometheus 有哪些常见的报警规则? 9. Prometheus 如何与其他监控系统集成? 10. 如何在 Prometheus 中执行批量操作? 这份题目可以帮助你了解 Prometheus 的基本概念,据存储,查询语法,报警规则以及集成方式。希望对你有所帮助。 ### 回答2: 以下是一份关于Prometheus的面试题: 1. 请简要介绍一下Prometheus以及其主要特点和用途。 2. Prometheus如何实现据采集和存储? 3. Prometheus的据模型是什么?请解释Metrics、Label和Timeseries的概念。 4. Prometheus的查询语言是什么?请提供一些常用的查询示例。 5. Prometheus如何进行告警和通知? 6. 提供一些Prometheus的常见监控指标和其含义。 7. 介绍一下Prometheus的据持久化和备份机制。 8. Prometheus的高可用性是如何实现的? 9. Prometheus可以与哪些第三方工具进行集成?请举例说明。 10. 你在实际项目中如何使用Prometheus来进行监控和故障排查? 请注意,这只是一份基础的Prometheus面试题目,可能并不全面。在实际面试中,面试官可能会根据候选人的经验和技术能力提出更深入的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值