你值得拥有的一份面试题
你值得拥有的一份面试题
前言:跨度可能有点大希望能帮到你,这也是我曾经的面试过的题目,多看看对你自己的提升有很大的帮助.
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. 定时任务怎么实现的
- jdk 自带的库中,有两种技术可以实现定时任务:
- 一种是使用 Timer;
- 另外一个则是 ScheduledThreadPoolExecutor;
- 使用 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 框架;
- 如果非要对比的话,我捡几个重要的点进行对比一下:
- 在服务调用方式方面,Dubbo 采用 RPC 方式,而 SpringCloud 使用 REST 方式;
- 在注册中心方面,Dubbo 推荐使用 Zookeeper,而 SpringCloud 推荐使用 Eureka;
- 在服务网关方面,Dubbo 没有服务网关,而 SpringCloud 提供了 Zuul 和 Spring cloud gateway;
- 在断路器方面,Dubbo 不太完善,而 SpringCloud 整合了 Hystrix;
- 在分布式配置方面,Dubbo 没有提供,而 SpringCloud 提供了 spring cloud config;
- 在服务跟踪方面,Dubbo 没有提供,而 SpringCloud 提供了 spring cloud sleuth;
等等
你值得拥有的一份面试题相关推荐
- 最近的一份面试题(小结一下)
最近的一份面试题,觉得很有意思,有必要小结一下(还有部分不会的题目,希望能有大佬评论解答): 下面是正式的题目: 1.256,269,286,302,() 根据上述数字规律,推断出括号内数字是? A. ...
- 我总结了65份面试题,累计2430页,肝的太累了
原创整理:<第2版:互联网大厂面试题> 最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧. 我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高 ...
- 原创整理:92份面试题,累计3625页,肝的太累了
最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧. 我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就 ...
- 自学前端1年,靠着这份面试题和答案,我找到了20K工作
马上就是毕业季了,找工作的人多起来了.很多前端朋友想趁此换工作机会,毕竟通过面试实现跳槽涨薪一直是程序员的一个目标,我是如何拿到大厂offer并成功实现涨薪的呢? 今天给大家分享我拿到大厂offer的 ...
- 能让应届生拿到阿里 Offer 的一份面试题
金九银十又到了跳槽的高峰期,然而有效的准备面试,无疑是获得高薪水的关键.凡事预则立不预则废,无论你是近期打算跳槽,还是过完年准备跳槽,我想此刻开始准备面试,无疑是最明智的选择.信息过载的今天,想要找一 ...
- 有人通过这份面试题拿到了蚂蚁金服的offer!牛逼!
目录 般来说下半年的这段时间是大厂招聘.就业者求职跳槽的黄金时期,但今年因为疫情的原因,很多人的辞职计划被搁浅了下来. 此时很多人会想,在这种大环境都不好的情况下,他是如何跳槽到蚂蚁金服的,我也偷偷问 ...
- java微信小程序开发教程,靠着这份面试题跟答案
前言 前段时间从蚂蚁金服二面回来,有些许面试新的给大家分享. 毕业至今两年一直在A金融公司做Java开发,在一个公司时间长了我也想换个环境,于是在网上投了简历,选择公司我的目标很明确还是金融领域,最好 ...
- android基础!靠着这份面试题跟答案,赶紧收藏!
上周喜提oppo面试offer,本人在深圳,有4年多的Android项目经验,普通本科学历. 面试是相互相在,OPPO给我的印象确实如其核心价值观所说:本分. 一面.部长面和HR面都蛮顺利(一千个人可 ...
- 看完了108份面试题,我为你总结出了这 10 个【Hive】高频考点(建议收藏)
前言 之前听 CSDN 头牌博主 @沉默王二 说过一句话,我觉得十分在理:处在互联网时代,是一种幸福,因为各式各样的信息非常容易触达,如果掌握了信息筛选的能力,就真的是"运筹帷幄之中,决胜千 ...
最新文章
- 从零开始玩人工智能-人脸 API-03
- 四十二、ETL工具Kettle的转换步骤
- mysql 删掉重复数据
- linux内核那些事之物理内存模型之DISCONTIGMEM(2)
- SpringCloud工作笔记039---spring cloud、javaweb中获取request对象的几种方法
- 【编程语言】Python-Pandas库中的透视表
- CMD attrib命令详解
- 单分子荧光原位杂交(smFISH)
- php invoke 反射,PHP ReflectionMethod invoke()用法及代码示例
- SQL中truncate 、delete与drop区别 (Rollback Segment)
- 计算机管理器用户怎么打开,win10无法使用内置管理员账户打开计算器如何设置...
- Matplotlib:设置坐标轴范围,刻度,位置,自定义刻度名称,添加数据标签
- 力扣 2303. 计算应缴税款总额
- 轻松一下,做到题目吧。
- php5.6 dbase,dBase数据库
- 高阶函数、列表/集合/字典/推导式、递归函数
- Vue2/3 脚手架搭建
- 实时同步刷新excel数据到数据库
- C++:继承中的构造函数和析构函数
- 俄罗斯起草法案建议设立离岸公司交易加密货币
热门文章
- Fluent多组分设置及化学反应
- 吉他屋-吉他谱-吉他教程
- maven打包时依赖的项目包是时间戳而不是SNAPSHOT?
- 阿里云云效GitCode迁移至GitLab仓库
- 7周入门数据分析:(2)分析界的No.1——Excel
- 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能
- progisp下载时报错Chip Enable Program Error 后续解决
- 【宏定义】#define 的使用方法
- vcpu和cpu的关系
- 缓存加速------Redis的五种数据类型(String,List,Hash,Set,Sorted Set)