自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(298)
  • 资源 (11)
  • 收藏
  • 关注

原创 Zookeeper 面试题

从zookeeper集群中选出一个节点作为Leader,所有的写请求都会由Leader 节点来处理集群中所有节点中的数据要和Leader 节点保持一致,如果不一致则要进行同步当Leader 节点接收到写请求时,会利用两阶段提交来广播该写请求,使得写请求像事务一样在其他节点上执行,达到节点上的数据实时一致。但值得注意的是,zookeeper 只是尽量的在达到强一致性,实际上仍然只是最终一致性的。

2024-11-18 09:45:29 275

原创 MQ 消息队列面试题

A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果C 系统现在不需要了呢?A 系统负责人几乎崩溃......A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。如果使用 MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。

2024-11-18 09:42:39 1049

原创 网络编程面试题

网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。

2024-11-11 10:16:40 489

原创 RabbitMQ 面试题

无法被消费的消息,称为死信。

2024-11-11 10:03:32 903

原创 分布式问题

由于不能同时满足CAP,所以出现了BASE理论:1.BA : Basically Available,表示基本可用,表示可以允许一定程度的不可用,比如由于系统故障,请求时间变长,或者由于系统故障导致部分非核心功能不可用,都是允许的2.S: Soft state : 表示分布式系统可以处于一种中间状态,比如数据正在同步3.E : Eventually consistent,表示最终一致性,不要求分布式系统数据实时达到一致,允许在经过一段时间后再达到一致过程中,系统也是可用。

2024-11-06 09:47:08 727

原创 Spring Cloud 面试题

微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。Eureka作为SpringCloud的服务注册功能服务器,他是服务注册中心,系统中的其他服务使用Eureka的客户端将其连接到Eureka Service中,并且保持心跳,这样工作人员可以通过EurekaService来监控各个微服务是否运行正常。

2024-11-05 17:02:54 624

原创 MyBatis 面试题

传统的 jdbc 是手工的,需要程序员加载驱动、建立连接、创建 Statement 对象、定义SQL语句、处理返回结果、关闭连接等操作。Hibernate 是自动化的,内部封装了JDBC,连 SQL 语句都封装了,理念是即使开发人员不懂SQL语言也可以进行开发工作,向应用程序提供调用接口,直接调用即可。Mybatis 是半自动化的,是介于 jdbc 和 Hibernate之间的持久层框架,也是对 JDBC 进行了封装,不过将SQL的定义工作独立了出来交给用户实现,负责完成剩下的SQL解析,处理等工作。

2024-11-05 16:00:14 804

原创 Spring Boot 面试题

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。Spring JavaConfig 是 Spring 社区的产品,Spring 3.0引入了他,它提供了配置 Spring IOC 容器的纯Java 方法。因此它有助于避免使用 XML 配置。由于配置被定义为 JavaConfifig 中的类,因此用户可以充分利用 Java 中的面向对象功能。

2024-11-05 09:41:26 852

原创 Spring MVC 面试题

Spring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。控制器提供一个访问应用程序的行为,此行为通常通过服务接口实现。控制器解析用户输入并将其转换为一个由视图呈现给用户的模型。Spring用一个非常抽象的方式实现了一个控制层,允许用户创建多种用途的控制器。

2024-11-04 14:25:22 1214

原创 Spring 面试题

控制反转即IOC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。控制反转IOC是一个很大的概念,可以用不同的方式来实现。

2024-11-04 10:50:10 986

原创 Java Web 面试题

Java Web 面试题:提升你的开发技能,助你职场成功!

2024-11-04 09:39:06 593

原创 Elasticsearch 面试题

探索 Elasticsearch 面试题:成为搜索引擎专家的必经之路!在这个数据驱动的时代,Elasticsearch 作为强大的搜索引擎,越来越受到企业的青睐。无论你是刚入行的开发者,还是希望提升技能的资深工程师,掌握 Elasticsearch 的核心知识都是成功的关键。

2024-11-01 10:34:51 577

原创 Redis 面试题

在高并发和实时数据处理的时代,Redis 作为领先的内存数据库,成为开发者的必备工具。无论你是初学者还是经验丰富的工程师,理解 Redis 的核心概念和应用场景对你的职业发展至关重要!

2024-10-31 14:53:12 942

原创 MySQL 面试题

在当今数据驱动的时代,MySQL 是最受欢迎的开源数据库之一,掌握其核心知识对于每位开发者和数据库管理员来说至关重要!我们为你准备了一系列经典的 MySQL 面试题,涵盖从基础查询到复杂的优化技巧,帮助你全面提升数据库技能。无论你是刚入行的新人,还是经验丰富的专业人士,这些面试题将帮助你巩固知识、提升自信,轻松应对面试挑战。通过深入解析每个问题,你不仅能理解 MySQL 的强大功能,还能掌握最佳实践和常见陷阱,为你的职业发展铺平道路。

2024-10-28 11:25:31 761

原创 Java 多线程面试题

准备面试时,掌握 Java 多线程是提升竞争力的关键!随着现代应用对高并发、高性能的需求不断增加,面试官越来越重视应聘者在多线程编程方面的能力。通过了解和熟练运用多线程相关的知识,你不仅能在面试中脱颖而出,还能在实际开发中游刃有余。我们将为你整理出一系列经典的 Java 多线程面试题,涵盖线程的创建、同步、死锁、线程池等核心概念,帮助你深入理解多线程的原理和应用。无论你是初学者还是经验丰富的开发者,这些面试题都将成为你自我提升和准备面试的绝佳资源。让我们一起探索 Java 多线程的世界,为你的职业发

2024-10-28 10:40:39 790

原创 Java 集合框架面试题

在 Java 开发中,集合框架是处理数据的基石,了解它的各个细节将使你在面试中如鱼得水!无论是 ArrayList、HashMap 还是 Set 和 Queue,掌握这些数据结构及其背后的原理,能帮助你更高效地解决问题。我们为你准备了一系列经典的 Java 集合框架面试题,涵盖性能比较、使用场景、线程安全等核心主题,助你全面理解集合的特性和应用。通过深入解析这些问题,你将不仅提升面试表现,更能在日常开发中得心应手。准备好迎接挑战了吗?加入我们,一起探索 Java 集合框架的奥秘,为你的职业道路铺平道

2024-10-24 19:18:49 1031

原创 Java 基础面试题

🚀 准备迎接Java面试的挑战吗? 🚀无论你是刚入门的Java新手,还是有经验的开发者,掌握Java基础知识都是成功的关键!

2024-10-21 15:50:14 667

原创 HR 常问面试题

一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。

2024-10-21 15:16:32 1171

原创 Java SE 基础面试题

在求职过程中,Java SE(标准版)面试是许多开发者必须面对的重要环节。掌握核心概念不仅能帮助你顺利通过面试,还能提升你的编程技能和职业竞争力。无论你是初学者还是有经验的开发者,这里汇集了一系列基础面试题。 准备好迎接这一挑战了吗?快来一起探索Java SE基础面试题,助力你的职业发展之路!无论是提升个人能力,还是为下一次面试做好准备,这里都是你的理想起点!

2024-10-15 17:45:13 855

原创 Docker 搭建3主3从Redis集群以及扩缩容

使用docker搭建3主3从的Redis集群,每台主机都对应一台从机。

2024-09-30 16:58:53 1075

原创 Redis 集群存储算法

分布式存储的常见算法:1、哈希取余算法分区2、一致性哈希算法分区3、哈希槽算法分区

2024-09-22 15:40:53 1153

原创 Docker安装MySQL(主从复制版)

除了展示刚刚配置的主数据库信息外,主要关注 Slave_IO_Running、Slave_SQL_Running。目前两个值应该都为 No,表示还没有开始。再次查看主从同步状态,Slave_IO_Running、Slave_SQL_Running都变为Yes。主要查看返回结果的文件名File、当前位置Position。

2024-09-22 14:19:24 462

原创 Docker 安装 Redis(单机版)

以 Redis 6.0.8 为例:简单的启动Redis容器:简单版没有配置容器卷映射,当容器被删除时数据无法恢复。配置文件、数据文件都和容器卷进行映射。3、启动docker容器:(因为要使用自定义的配置文件,所以需要指定容器运行的命令为redis-server 容器内配置文件路径)

2024-09-22 14:09:25 307

原创 Docker安装MySQL(单机版)

而且因为启动时将容器做了容器卷映射,将mysql的配置(映射到/app/mysql/conf)、数据(映射到/app/mysql/data)、日志(映射到/app/mysql/log)都映射到了宿主机实际目录,所以即使删除了容器,也不会产生太大影响。只需要再执行一下启动Mysql容器命令,容器卷还按相同位置进行映射,所有的数据便都可以正常恢复。启动docker容器后,可以正常的连接、创建数据库,创建表,插入数据。但是插入中文则会报错。而且因为启动容器时没有配置容器卷映射,当容器意外被删时,数据无法找回。

2024-09-11 21:16:38 558

原创 Docker 软件安装步骤

搜索镜像拉取镜像查看镜像启动容器-服务端口映射停止容器停止容器移除容器。

2024-09-11 21:09:00 194

原创 Registry搭建docker私仓

Docker Registry也是Docker Hub提供的一个镜像,可以直接拉取运行。Registry会返回json格式的所有镜像目录。(配置方式和上传到nexus私仓相同)。

2024-09-08 20:24:16 391

原创 Docker 镜像

镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好行程一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。

2024-09-08 19:09:44 1180

原创 Docker 常用命令

CentOS7安全模块比之前系统版本加强,不安全的会先禁止,目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了。也即使用该参数,容器内的root才拥有真正的root权限,否则容器内的root只是外部的一个普通用户权限。卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过UnionFS,提供一些用于持续存储或共享数据。特性:卷设计的目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

2024-09-08 13:50:37 1405

原创 Docker 详细在线安装(CentOS、Ubuntu)、离线安装教程教程

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。下面的介绍都针对社区版。Docker CE 的安装请参考。

2024-09-05 23:02:58 1645

原创 Docker 简介

Docker是一个开源的容器化平台,可以帮助开发者将应用程序和其依赖的环境打包成一个可移植、可部署的容器。Docker的主要目标是通过容器化技术实现应用程序的快速部署、可移植性和可扩展性,从而简化应用程序的开发、测试和部署过程。容器化是一种虚拟化技术,它通过在操作系统层面隔离应用程序和其依赖的运行环境,使得应用程序可以在一个独立的、封闭的环境中运行,而不受底层操作系统和硬件的影响。

2024-09-05 21:44:45 991

原创 请求,会话,应用程序和WebSocket作用域

request, session, application, 和 websocket作用域只有在Web中使用Spring的ApplicationContext(例如ClassPathXmlApplicationContext)的情况下才用得上。如果在普通的Spring IoC容器,例如ClassPathXmlApplicationContext中使用这些作用域,将会抛出IllegalStateException异常来说明使用了未知的作用域。

2024-08-26 17:43:49 209

原创 依赖原型Bean的单例Bean

当您使用具有依赖于原型bean的单例作用域bean时,请注意在实例化时解析依赖项。因此,如果将原型bean注入到单例的bean中,则会实例化一个新的原型bean,然后将依赖注入到单例bean中。这个依赖的原型bean仍然是同一个实例。但是,假设您希望单例作用域的bean在运行时重复获取原型作用域的bean的新实例。您不能将原型作用域的bean依赖注入到您的单例bean中, 因为当Spring容器实例化单例bean并解析注入其依赖项时,该注入只发生一次。

2024-08-26 17:43:02 293

原创 Spring 原型作用域

也就是说,初始化生命周期回调方法在所有作用域的bean是都会调用的,但是销毁生命周期回调方法在原型bean是不会调用的。所以,客户端代码必须注意清理原型bean以及释放原型bean所持有的资源。可以通过使用自定义的bean post-processor(Bean的后置处理器)来让Spring释放掉原型bean所持有的资源。非单例的、原型bean指的是每次请求bean实例时,返回的都是新的对象实例。也就是说,每次注入到另外的bean或者通过调用 getBean()方法来获得的bean都是全新的实例。

2024-07-15 16:17:28 287

原创 Spring 单例作用域

设计模式中的单例模式是将一个对象的作用域硬编码的,一个ClassLoader只能有唯一的一个实例。这意味着,如果在单个Spring容器中为特定类定义一个bean,则Spring容器会根据bean定义创建唯一的bean实例。单例作用域是Spring的默认作用域。换句话说,当您定义一个bean并且它的范围是一个单例时,Spring IoC容器只会根据bean的定义来创建该bean的唯一实例。单例bean在全局只有一个共享的实例,所有依赖单例bean的场景中,容器返回的都是同一个实例。

2024-07-15 16:06:07 292

原创 Spring Bean的作用域概述

创建bean定义时,同时也会定义该如何创建Bean实例。这些具体创建的过程是很重要的,因为只有通过对这些配置过程,您才能创建实例对象。您不仅可以将不同的依赖注入到bean中,还可以配置bean的作用域。这种方法是非常强大而且也非常灵活,开发者可以通过配置来指定对象的作用域,无需在Java类的层次上配置。bean可以配置多种作用域,Spring框架支持五种作用域,有三种作用域是当开发者使用基于Web的ApplicationContext的时候才有效的。您还可以创建自定义范围.。作用域描述。

2024-07-15 15:55:51 252

原创 Spring 方法注入

在大多数的应用场景下,多数的bean都是单例的。当这个单例的bean需要和另一个单例的或者非单例的bean协作使用的时候,开发者只需要配置依赖bean为这个bean的属性即可。但是有时会因为bean具有不同的生命周期而产生问题。假设单例的bean A在每个方法调用中使用了非单例的bean B。容器只会创建bean A一次,而只有一个机会来配置属性。那么容器就无法为每一次创建bean A时都提供新的bean B实例。

2024-07-15 15:40:54 903

原创 Spring 自动装配

Spring容器可以根据bean之间的依赖关系自动装配,开发者可以让Spring通过ApplicationContext来自动解析这些关联,自动装载有很多优点:自动装载能够明显的减少指定的属性或者是构造参数。自动装载可以扩展开发者的对象,比如说,如果开发者需要加一个依赖,只需关心如何更改配置即可自动满足依赖关联。这样,自动装载在开发过程中是极其高效的,无需明确选择装载的依赖会使系统更加稳定使用基于XML的配置元数据时,可以使用 元素的autowire属性为bean定义指定autowire模式。

2024-07-11 17:38:57 575

原创 Spring 懒加载bean

如果这个行为不是迫切需要的,开发者可以通过将Bean标记为延迟加载就能阻止这个预初始化 懒加载bean会通知IoC不要让bean预初始化而是在被引用的时候才会实例化。然而,如果延迟加载的类是作为单例非延迟加载的bean的依赖而存在的话,ApplicationContext仍然会在ApplicationContext启动的时候加载。当将bean配置为上述XML的时候, ApplicationContext之中的lazy bean是不会随着 ApplicationContext的启动而进入到预初始化状态的。

2024-07-11 17:24:27 227

原创 Spring depends-on属性

如果一个bean是另一个bean的依赖,通常这个bean也就是另一个bean的属性之一。然而,有时bean之间的依赖不是直接关联的。depends-on属性既可以指定初始化时间依赖性,也可以指定单独的bean,相应的销毁时间的依赖。独立定义了depends-on属性的bean会优先销毁 (相对于depends-on的bean销毁,这样depends-on可以控制销毁的顺序。depends-on属性可以显式强制初始化一个或多个bean。如果想要依赖多个bean,可以提供多个名字作为depends-on的值。

2024-07-11 17:20:50 220

原创 Spring 依赖和配置的细节-06 Null and 空字符串

Strings将属性的空参数视为空字符串。下面基于XML的元数据配置就会将email 属性配置为String的值。<null/>将被处理为null值。

2024-07-11 17:11:30 659

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除