Java面试
文章平均质量分 84
总结一些Java面试常见题,方便应聘者和招聘者能够参考
青鱼入云
这个作者很懒,什么都没留下…
展开
-
面试题:海量PDF的OCR处理思路
先以386台机器并行处理,假设第一天处理数据量超过三分之一,此时计算剩余待处理量按10s算需要多少台机器,理论上所需机器数N原创 2023-11-29 17:21:06 · 854 阅读 · 0 评论 -
面试:云计算相关
云计算是一种基于互联网的计算模式,它把计算资源共享池以服务的形式提供给用户,允许用户按需访问计算和存储等资源。这个计算资源共享池被称为“云”。虚拟化技术:云计算支持用户在任意位置、使用各种终端获取应用服务,而不需要了解应用服务的具体位置和实现细节。动态可扩展:云计算的规模可以动态伸缩,满足应用和用户规模增长的需要。按需部署:用户可以根据需要灵活地部署和运行应用,而不需要购买额外的硬件和软件。高可靠性:云计算采用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性。通用性。原创 2023-11-24 20:46:34 · 2221 阅读 · 1 评论 -
面试:Docker相关问题
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现轻量级的虚拟化。在云环境中,Docker的应用非常广泛。首先,Docker的轻量级特性使得它可以快速部署和运行应用程序,减少了资源的浪费和管理的复杂性。其次,Docker的容器化方式使得应用程序具备可移植性,可以在不同的云平台上轻松迁移和部署。此外,Docker还提供了一些高级功能,如镜像管理、容器监控和日志管理等,可以帮助运维人员更好地管理和维护应用程序。原创 2023-11-24 20:33:03 · 1471 阅读 · 0 评论 -
面试:Kubernetes相关问题
总之,Service是Kubernetes中用于定义和抽象服务的核心资源对象,它为前端的应用程序提供了稳定的服务入口,并通过负载均衡、故障隔离和服务发现等机制提高了系统的可用性和可靠性。这些事件是否发生取决于Pod的定义和配置。Kubernetes中的调度器是kube-scheduler,它的主要作用是在整个集群中根据预定的策略和算法,为新创建的Pod分配最优的工作节点。总的来说,Kubernetes中的调度器是一个关键组件,它通过合理、充分地调度Pod到最优的工作节点上,提高了整个集群的可用性和性能。原创 2023-11-24 20:23:03 · 1423 阅读 · 0 评论 -
面试:线上问题处理
处理和跟踪线上偶发性问题需要耐心和持续的努力,因为这些问题往往是复杂的且难以预测的。重要的是,对系统进行全面的设计和测试,以尽可能地避免线程安全问题的发生。当问题出现时,及时排查和解决问题,并进行合适的优化和测试,以确保系统的稳定性和并发性能。另外,重要的一点是要在沟通和合作中与团队成员、开发人员和相关运维人员一起解决问题,提高问题的排查效率和结果准确性。在设计过程中,还需要考虑系统的可用性、性能、扩展性和安全性等方面的需求,并进行合理的权衡和折衷。原创 2023-11-24 20:08:09 · 1839 阅读 · 0 评论 -
面试:ShardingSphere问题
ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,主要由 JDBC、Proxy 组成。这两个产品均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。ShardingSphere是一个功能强大的数据库中间件,可用于解决分布式数据库架构中的多种挑战,包括数据分片、读写分离、分布式事务、影子库、数据加密等,从而提高了系统的性能、扩展性和可用性。ShardingSphere 保留了非常多的功能扩展。原创 2023-11-24 18:10:24 · 1814 阅读 · 0 评论 -
面试:RabbitMQ相关问题
RabbitMQ是一款基于AMQP协议的、稳定易用的消息中间件其稳定体现在其确保消息的不丢失能力,通过从生产端、broker端、消费者端来保障。另外其支持延时队列、死信机制等,提高了它的使用覆盖场景。RabbitMQ 是一个开源的消息中间件,使用 Erlang 语言开发。这种语言天生非常适合分布式场景,RabbitMQ 也就非常适用于在分布式应用程序之间传递消息。消息传递模式:RabbitMQ 支持多种消息传递模式,包括发布/订阅、点对点和工作队列等,使其更灵活适用于各种消息通信场景。原创 2023-11-23 19:34:34 · 1166 阅读 · 1 评论 -
面试:RocketMQ相关问题
RocketMQ是阿里开源的一款非常优秀的中间件产品,后捐赠给Apache基金会作为一款孵化技术,仅仅经历了一年多的时间就成为Apache基金会的顶级项目。RocketMQ是一款分布式、队列模型的消息中间件,支持分布式事务,天然的支持集群模型、负载均衡、水平扩展能力,亿级别的消息堆积能力。异步通信:RocketMQ 可以在不同的应用程序之间进行异步通信,从而提高系统的可伸缩性和响应速度。同时减少多个模块之间的依赖性,使整个系统更加灵活并易于维护。应用解耦。原创 2023-11-23 19:14:55 · 1015 阅读 · 0 评论 -
面试:Kafka相关问题
kafka是一款分布式的基于发布/订阅模式的消息队列,是目前比较主流的消息中间件,Kafka对消息保存时根据Topic(主题)进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)称为broker。无论是kafka集群,还是consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性,所以安装kafka需要先间搭建zookeeper集群。原创 2023-11-23 19:13:48 · 1027 阅读 · 0 评论 -
面试:MyBatis问题
MyBatis呢,是Java领域中的一款持久化框架,它的主要功能是,让我们能够轻松地在Java对象和数据库之间建立联系。通过这种联系,开发者可以很方便地存储、检索和操作数据。MyBatis与其他ORM框架相比,有一些独有的特点。首先,MyBatis强调对SQL的可控性。在使用的时候,可以直接编写SQL语句,提供更精准地优化查询。还可以充分利用数据库的特性,处理各种复杂的业务逻辑。在某些情况下,这能够带来更好的性能。原创 2023-11-23 15:56:43 · 428 阅读 · 0 评论 -
面试:SpringCloud问题
SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用Dubbo协议,接口一般是Java的Service接口,格式固定。:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理。:例如SpringCloud注册中心一般用Eureka,而Dubbo用的是Zookeeper。原创 2023-11-22 22:27:04 · 362 阅读 · 0 评论 -
面试:SpringMVC问题
请求到达mvc后,通过一个分发器,找到对应的处理controller,处理完好返回的model数据,经过view处理器渲染进视图中返回,如JSP。如果有@ResponseBody注解,就不进行view渲染,直接返回model数据,一般以json格式。• HandlerAdapter 会根据 Handler 来调用真正的处理器开处理请求,并处理相应的业务逻辑。• 处理器处理完业务后,会返回一个 ModelAndView 对象, Model 是返回的数据对象。• 把 View 返回给请求者(浏览器)原创 2023-11-22 22:26:12 · 1552 阅读 · 0 评论 -
面试:SpringBoot问题
比如使用 MongoDB 时,只需加入 MongoDB 的 Starter 包,然后配置 的连接信息,就可以直接使用 MongoTemplate 自动装配来操作数据库了。简化了 Maven Jar 包的依赖,降低了烦琐配置的出错几率。:Spring Boot 中自带监控功能 Actuator,可以实现对程序内部运行情况进行监控,比如 Bean 加载情况、环境变量、日志信息、线程信息等。应用程序可以直接通过 Maven 命令编译成可执行的 jar 包,通过 java-jar 命令启动即可,非常方便。原创 2023-11-22 22:25:16 · 1061 阅读 · 0 评论 -
面试:DDD 领域驱动设计
领域驱动设计(Domain-Driven Design,DDD)是一种软件设计方法,它重点关注软件开发中涉及的领域概念,旨在帮助团队在复杂系统中实现业务逻辑。DDD 的核心思想是将实现连接到持续进化的模型,通过领域模型驱动系统设计。它倡导统一语言,提出了一系列概念,包括实体、值对象、聚合根等,以帮助团队更好地理解和表达业务模型。领域驱动设计的目标是通过清晰的领域模型、领域语言和领域边界来理解和解决业务问题。它鼓励跨职能团队的合作,以确保软件系统与业务需求保持一致,并且能够应对变化和复杂性。原创 2023-11-21 22:24:40 · 1038 阅读 · 0 评论 -
List操作的一些常见问题
从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。CopyOnWrite容器非常有用,可以在非常多的并发场景中使用到。在写操作(add、remove等)时,不直接对原数据进行修改,而是先将原数据复制一份,然后在新复制的数据上执行写操作,最后将原数据引用指向新数据。这样做的好处是读操作(get、iterator等)可以不加锁,因为读取的数据始终是不变的。原创 2023-11-21 16:32:55 · 569 阅读 · 0 评论 -
面试:ClickHouse 面试题
ClickHouse 是近年来备受关注的开源列式数据库管理系统,主要用于数据分析 (OLAP)领域。通过向量化执行以及对 cpu 底层指令集(SIMD)的使用,它 可以对海量数据进行并行处理,从而加快数据的处理速度。ClickHouse从 OLAP 场景需求出发,定制开发了一套全新的高效列式存储引擎,并且实现了数据有序 存储、主键索引、稀疏索引、数据 Sharding、数据 Partitioning、TTL、主备复 制等丰富功能。原创 2023-11-14 22:47:43 · 1419 阅读 · 0 评论 -
面试:Elasticsearch 面试题
文章目录Elasticsearch 读取数据您能解释一下 X-Pack for Elasticsearch 的功能和重要性吗?Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了 一个master,另外 10 个选了另一个 master,怎么办?解释一下 Elasticsearch 集群中的索引的概念 ?你可以列出 Elasticsearch 各种类型的分析器吗?解释一下 Elasticsearch Node?在安装 Elasticsearch 时,请说明不同的软件包及其重要性?E原创 2023-11-14 22:38:18 · 415 阅读 · 0 评论 -
面试:Nginx 面试题
在我们的软件开发中,有些请求是需要后台处理的(如:.jsp,.do 等等),有些 请求是不需要经过后台处理的(如:css、html、jpg、js 等等),这些不需要 经过后台处理的文件称为静态文件,否则动态文件。Nginx 不这样,每进来一个 request ,会有一个 worker 进程去处理。Nginx 是如何利用的呢,简单来说:同样的 4 个进程,如果采用一个进程负 责一个 request 的方式,那么,同时进来 4 个 request 之后,每个进程就 负责其中一个,直至会话关闭。原创 2023-11-14 21:13:36 · 228 阅读 · 0 评论 -
面试:MongoDB 面试题
集合就是一组 MongoDB 文档。它相当于关系型数据库(RDBMS)中的表这 种概念。集合位于单独的一个数据库中。一个集合内的多个文档可以有多个不 同的字段。一般来说,集合中的文档都有着相同或相关的目的。NoSQL 是非关系型数据库,NoSQL = Not Only SQL。关系型数据库采用的结构化的数据,NoSQL 采用的是键值对的方式存储数据。在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时,随时应对动 态增加的数据项时可以优先考虑。使用 NoSQL 数据库。在考虑数据库的成熟度;支持。原创 2023-11-14 20:59:33 · 132 阅读 · 0 评论 -
面试:Memcached 面试题
介绍memcached相关面试题原创 2023-11-14 20:44:51 · 96 阅读 · 0 评论 -
负载均衡原理
介绍相关负载均衡原理,以及LVS介绍原创 2023-11-14 15:56:29 · 555 阅读 · 0 评论 -
面试:linux相关
面试linux相关问题原创 2023-11-14 15:31:07 · 435 阅读 · 0 评论 -
面试:zookeeper问题
1. Zookeeper是如何保证事务的顺序一致性的 zk采用递增的事务zxid来标识,所有的proposal都在被提出的时候加上了zxid,zxid是一个32位epoch+32位递增计数的64位数字。当新proposal产生时,会依据数据库两阶段提交过程,首先会想其他的Server发出事务执行请求,如果超过半数的机器都能执行并且都能成功,那么就开始执行。 2. Zookeeper是如何选取主...原创 2018-04-29 14:23:02 · 71 阅读 · 1 评论 -
面试:JVM问题
jvm面试相关问题原创 2023-08-03 19:09:39 · 743 阅读 · 0 评论 -
面试:Netty相关问题
介绍Netty相关面试问题原创 2018-09-03 17:02:17 · 84 阅读 · 1 评论 -
高频面试题:开发实战问题
接口性能优化:接口超时怎么处理优化方案:原创 2023-09-24 11:21:16 · 124 阅读 · 0 评论 -
面试:系统安全问题
安全要素与 STRIDE 威胁 防范常见的 Web 攻击 服务端通信安全攻防 HTTPS 原理剖析 HTTPS 降级攻击 授权与认证 基于角色的访问控制 基于数据的访问控制...原创 2018-09-03 17:01:14 · 90 阅读 · 1 评论 -
面试:算法手写代码常用到的工具类&方法
整理并记录一下手写算法常用的工具或代码原创 2023-08-23 11:49:08 · 261 阅读 · 0 评论 -
面试:分布式问题
介绍分布式相关面试问题原创 2023-08-08 17:13:37 · 729 阅读 · 0 评论 -
面试:网络基础问题
网络基础相关面试题原创 2023-08-02 12:29:32 · 124 阅读 · 0 评论 -
面试:Spring问题
spring相关面试问题整理原创 2018-03-27 22:46:57 · 102 阅读 · 1 评论 -
面试:Java问题
java相关面试题public static void main(String[] args){}main方法是虚拟机访问用户程序的入口,每个程序都需要指定一个合法入口供jvm启动用户程序。public关键字,让虚拟机可以“看到”这个入口;static关键字表示不需要新建实例,可直接通过类访问;void表示虚拟机不需要返回值,因为返回值给虚拟机也不知道怎么处理;可变Strin...原创 2018-03-26 16:02:02 · 247 阅读 · 1 评论 -
面试:多线程问题
收录相关java多线程面试问题原创 2018-03-26 16:53:57 · 147 阅读 · 1 评论 -
面试:消息队列问题
消息队列相关面试问题原创 2018-03-28 17:07:41 · 163 阅读 · 1 评论 -
一致性hash算法及java实现
一致性hash算法是分布式中一个常用且好用的分片算法、或者数据库分库分表算法。现在的互联网服务架构中,为避免单点故障、提升处理效率、横向扩展等原因,分布式系统已经成为了居家旅行必备的部署模式,所以也产出了几种数据分片的方法: 1.取模,2.划段,3.一致性hash 前两种有很大的一个问题就是需要固定的节点数,即节点数不能变,不能某一个节点挂了或者实时增加一个节点,变了分片规则就需要改变,需要迁...原创 2018-03-28 14:11:38 · 17528 阅读 · 9 评论 -
面试:Dubbo技术整理
1. dubbo简介。 1. dubbo最核心的几个模块:provider(提供者)、comsumer(消费者)、registry(注册中心)、monitor(监控中心)。 2. 提供者在启动时,向注册中心【注册】自己提供的服务。 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 4. 服务消费者,从提供者地址列表中,基于软负载均衡算...原创 2018-03-06 15:56:56 · 62 阅读 · 1 评论 -
面试:架构设计
说说你在项目中使用过的 UML 图 你如何考虑组件化 你如何考虑服务化 什么是领域建模 领域建模:是对领域内的概念类或现实世界中对象及其关系的可视化抽象表示。它专注于分析位替领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 你如何进行领域建模 深入了解业务,分析业务 你如何划分领域边界 说说你项目中的领域建模 说说概要设计...原创 2018-03-29 10:24:54 · 100 阅读 · 1 评论 -
23种常用设计模式概览
我们一般常用设计大概有23种,创建型的5种,结构型7种,行为型11种。其中又划分是针对类还是针对对象。原创 2018-05-14 21:42:54 · 431 阅读 · 0 评论 -
分布式事务与解决方案
分布式事务:分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 ACID: 原子性(Atomicity)、 一致性(Consistency)、 隔离性(Isolation)、 持久性(Durability) CAP: 一致性(Concistency)、 可用性(Availability)、 分区容忍性(Partition...原创 2018-09-03 17:22:01 · 304 阅读 · 0 评论 -
面试:mysql问题整理
1. 事务的特性和四个隔离级别。每个隔离级别的表现如何。 事务的四个特性ACID:原子性(Automicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 四个隔离级别:读未提交、读已提交、可重复读、串行化。 前面三个隔离级别分别对应三种隔离性问题:脏读、不可重复读、幻读。 具体见我另一篇博客:事务系列(一):事务四大特性与隔离级别 ...原创 2020-02-19 19:55:46 · 166 阅读 · 1 评论