你值得拥有的一份面试题

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

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;
    等等

你值得拥有的一份面试题相关推荐

  1. 最近的一份面试题(小结一下)

    最近的一份面试题,觉得很有意思,有必要小结一下(还有部分不会的题目,希望能有大佬评论解答): 下面是正式的题目: 1.256,269,286,302,() 根据上述数字规律,推断出括号内数字是? A. ...

  2. 我总结了65份面试题,累计2430页,肝的太累了

    原创整理:<第2版:互联网大厂面试题> 最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧. 我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高 ...

  3. 原创整理:92份面试题,累计3625页,肝的太累了

    最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧. 我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就 ...

  4. 自学前端1年,靠着这份面试题和答案,我找到了20K工作

    马上就是毕业季了,找工作的人多起来了.很多前端朋友想趁此换工作机会,毕竟通过面试实现跳槽涨薪一直是程序员的一个目标,我是如何拿到大厂offer并成功实现涨薪的呢? 今天给大家分享我拿到大厂offer的 ...

  5. 能让应届生拿到阿里 Offer 的一份面试题

    金九银十又到了跳槽的高峰期,然而有效的准备面试,无疑是获得高薪水的关键.凡事预则立不预则废,无论你是近期打算跳槽,还是过完年准备跳槽,我想此刻开始准备面试,无疑是最明智的选择.信息过载的今天,想要找一 ...

  6. 有人通过这份面试题拿到了蚂蚁金服的offer!牛逼!

    目录 般来说下半年的这段时间是大厂招聘.就业者求职跳槽的黄金时期,但今年因为疫情的原因,很多人的辞职计划被搁浅了下来. 此时很多人会想,在这种大环境都不好的情况下,他是如何跳槽到蚂蚁金服的,我也偷偷问 ...

  7. java微信小程序开发教程,靠着这份面试题跟答案

    前言 前段时间从蚂蚁金服二面回来,有些许面试新的给大家分享. 毕业至今两年一直在A金融公司做Java开发,在一个公司时间长了我也想换个环境,于是在网上投了简历,选择公司我的目标很明确还是金融领域,最好 ...

  8. android基础!靠着这份面试题跟答案,赶紧收藏!

    上周喜提oppo面试offer,本人在深圳,有4年多的Android项目经验,普通本科学历. 面试是相互相在,OPPO给我的印象确实如其核心价值观所说:本分. 一面.部长面和HR面都蛮顺利(一千个人可 ...

  9. 看完了108份面试题,我为你总结出了这 10 个【Hive】高频考点(建议收藏)

    前言 之前听 CSDN 头牌博主 @沉默王二 说过一句话,我觉得十分在理:处在互联网时代,是一种幸福,因为各式各样的信息非常容易触达,如果掌握了信息筛选的能力,就真的是"运筹帷幄之中,决胜千 ...

最新文章

  1. 从零开始玩人工智能-人脸 API-03
  2. 四十二、ETL工具Kettle的转换步骤
  3. mysql 删掉重复数据
  4. linux内核那些事之物理内存模型之DISCONTIGMEM(2)
  5. SpringCloud工作笔记039---spring cloud、javaweb中获取request对象的几种方法
  6. 【编程语言】Python-Pandas库中的透视表
  7. CMD attrib命令详解
  8. 单分子荧光原位杂交(smFISH)
  9. php invoke 反射,PHP ReflectionMethod invoke()用法及代码示例
  10. SQL中truncate 、delete与drop区别 (Rollback Segment)
  11. 计算机管理器用户怎么打开,win10无法使用内置管理员账户打开计算器如何设置...
  12. Matplotlib:设置坐标轴范围,刻度,位置,自定义刻度名称,添加数据标签
  13. 力扣 2303. 计算应缴税款总额
  14. 轻松一下,做到题目吧。
  15. php5.6 dbase,dBase数据库
  16. 高阶函数、列表/集合/字典/推导式、递归函数
  17. Vue2/3 脚手架搭建
  18. 实时同步刷新excel数据到数据库
  19. C++:继承中的构造函数和析构函数
  20. 俄罗斯起草法案建议设立离岸公司交易加密货币

热门文章

  1. Fluent多组分设置及化学反应
  2. 吉他屋-吉他谱-吉他教程
  3. maven打包时依赖的项目包是时间戳而不是SNAPSHOT?
  4. 阿里云云效GitCode迁移至GitLab仓库
  5. 7周入门数据分析:(2)分析界的No.1——Excel
  6. 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能
  7. progisp下载时报错Chip Enable Program Error 后续解决
  8. 【宏定义】#define 的使用方法
  9. vcpu和cpu的关系
  10. 缓存加速------Redis的五种数据类型(String,List,Hash,Set,Sorted Set)