自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 数据结构相关面试题-Java面试

数组(Array)和链表(Linked List)是两种常见的线性数据结构,它们在存储和操作数据时有着不同的特点和优缺点。数组(Array)特点数组是由一组相同类型的元素组成的有序集合,这些元素在内存中连续存储。数组可以通过索引直接访问任何位置的元素,因此支持随机访问。数组的大小在创建时就确定,并且一般无法动态改变大小。优点支持快速的随机访问,时间复杂度为 O(1)。在访问元素方面比较高效,适合于频繁访问数据的场景。缺点大小固定,无法动态扩容,插入和删除元素时可能需要移动大量的元素。

2024-03-27 15:30:31 625

原创 Cassandra经常被问到的问题 Java面试题

Cassandra是一个高度可扩展、分布式的NoSQL数据库系统,最初由Facebook开发并开源。它设计用于处理大规模数据,具有以下主要特点:分布式架构:Cassandra采用分布式架构,数据被分布存储在多个节点上,使其能够处理大规模数据和高并发请求。弹性伸缩:Cassandra具有水平可扩展性,可以通过简单地添加更多的节点来增加存储容量和吞吐量,无需中断服务或修改应用程序。高性能:Cassandra采用了分区和副本策略以及基于日志结构的存储引擎,因此具有快速的读写能力和低延迟。

2024-03-15 09:51:27 1122

原创 MongoDB常见面试题总结(二)MongoDB面试题及答案

MongoDB的复制集(Replica Set)是一组维护相同数据集的MongoDB服务器的集群。复制集提供了数据的冗余备份,以确保在其中一个节点故障时,其他节点仍然可用。每个复制集都有一个主节点(Primary)和一个或多个从节点(Secondary),还可以有一个仲裁节点(Arbiter)。在Mongo shell中执行初始化复制集的命令:rs.initiate(members: [{ _id: 0, host: "localhost:27017" }, // 主节点。

2024-03-14 11:53:24 1079

原创 MongoDB常见面试题总结(一)MongoDB面试题及答案

MongoDB是一个开源、面向文档的NoSQL数据库,它采用了BSON(Binary JSON)格式存储数据。数据模型:MongoDB是面向文档的数据库,数据以文档的形式存储,文档是一种类似于JSON的二进制表示形式(BSON)。文档可以包含嵌套的结构和数组。关系型数据库使用表格结构,数据被组织为行和列,遵循固定的表结构,需要事先定义表的结构。Schema(模式):MongoDB是schema-less的,即不需要提前定义文档的结构,每个文档可以有不同的字段。

2024-03-13 17:03:14 1720

原创 面试必问| HBase最新面试总结

HBase中的协处理器(Coprocessor)是一种分布式计算框架,允许用户在HBase表上执行自定义的计算逻辑,而无需将数据移动到外部计算框架中。如果不存在,则查找HFile中的数据。HBase的列族(Column Family)是HBase表中一组相关的列的集合,这些列在物理存储上通常被存储在一起。这意味着,对于一些需要更高压缩比的列族,可以选择更适合的压缩算法,而对于一些读写频繁的列族,可以选择更轻量的压缩算法。HBase的架构设计使得它适用于大规模数据的存储和访问,具有高度的可扩展性和容错性。

2024-03-11 09:15:59 950

原创 Kafka常见面试题总结

Apache Kafka是一个分布式的流处理平台,最初由LinkedIn开发,后来成为Apache软件基金会的开源项目。它被设计用于处理大规模的实时数据流,并具有高可靠性、高吞吐量和水平可扩展性的特点。Kafka旨在处理实时数据流,支持高吞吐量的事件流,使得用户可以实时地收集、处理和分析数据。Kafka用于连接不同的数据系统和应用程序,通过中心化的消息代理,允许不同的系统之间进行异步通信。Kafka的消息是持久化的,它将消息写入磁盘,因此即使在生产者发送消息和消费者接收消息之间发生故障时,消息仍然可用。

2024-03-07 09:43:46 757

原创 处理全局异常想要打印请求参数报错了 getinputstream() has already been called for this request

在编写处理全局异常时,想要打印出来异常请求的URL和参数等信息,但是在获取请求参数的时候报错了。

2024-03-06 13:11:09 2210

原创 看完这些Redis面试题,阿里面试可以约起来了

列表是有序的,元素按照插入顺序排列;集合是无序的,元素没有固定的顺序。列表中的元素可以重复;集合中的元素是唯一的。列表适用于需要保持元素顺序的场景,且可能存在重复元素;集合适用于需要存储独立元素的场景,且元素无序且不重复。

2024-03-06 11:47:17 1185

原创 10道Zookeeper高频面试题,你顶得住吗?Java面试

ZooKeeper的Watcher是一种事件机制,它允许客户端在ZooKeeper上的ZNode(数据节点)上注册一个Watcher,并在特定事件发生时得到通知。ZooKeeper提供了分布式锁的机制,可以通过创建一个ZNode作为锁的节点,然后通过尝试创建这个节点来获取锁。在ZooKeeper的集群中,有一个节点充当Leader,负责处理所有的客户端请求。通过ZAB协议,ZooKeeper保证了数据的原子广播,防止了因为分布式环境中节点之间通信的不确定性而导致的数据不一致。

2024-03-05 17:57:12 1776

原创 nginx the “ssl“ directive is deprecated, use the “listen ... ssl“报错

nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /xxx.conf:31

2024-03-05 14:31:21 2163

原创 Netty核心面试题20连问,由浅入深 助你轻松吊打面试官

Netty是一款用于快速开发高性能、可维护的网络通信框架,基于Java NIO(New I/O)库构建。Netty采用基于事件驱动的模型,通过异步的方式处理网络操作。这允许在单线程上处理大量的并发连接,提高了系统的吞吐量和性能。Netty提供了灵活的组件和可定制的架构,使开发者能够根据具体需求轻松地定制协议栈和业务逻辑。Netty支持多种常见的网络协议,包括TCP、UDP、HTTP、WebSocket等。这使得它适用于各种应用场景,从简单的Socket通信到Web服务的开发。

2024-03-04 10:17:52 2442

原创 面试官问我关于SpringCloud的问题我这么回答,面试官都惊呆了......................

微服务是一种软件架构设计风格,将大型应用程序划分为一组小型、独立的服务,每个服务都专注于执行特定的业务功能。这些服务可以独立开发、部署、维护,并通过轻量级的通信机制(通常是 HTTP 协议)相互协作,共同构建一个完整的业务应用。每个微服务都是一个独立的部署单元,可以独立开发、测试、部署和扩展。微服务能够自主处理业务逻辑,而不受其他服务的影响,有自己的数据库和存储。微服务之间通过明确定义的接口进行通信,彼此之间的关联性较低,可以独立演化。

2024-03-01 17:37:42 802

原创 Spring常见面试题知识点总结(三)

在 Java 中,你可以通过使用@interface关键字创建自定义注解。@Target(ElementType . METHOD) // 指定注解可以用于方法上 @Retention(RetentionPolicy . RUNTIME) // 指定注解会保留在运行时 public @interface MyCustomAnnotation {// 定义注解的属性 String value() default "";// 注解属性可以有默认值 int count() default 0;

2024-03-01 17:13:26 813

原创 Spring常见面试题知识点总结(二)

Bean是由Spring IoC容器管理的对象。在Spring中,Bean是应用的基本构建块,可以是Java对象,也可以是其他由Spring框架管理的对象。

2024-02-28 13:45:36 870

原创 Spring常见面试题知识点总结(一)

DI(Dependency Injection)依赖注入是一种设计模式,它通过将对象所需的依赖关系从对象本身分离出来,由外部容器(通常是框架或容器)来负责管理和注入。依赖注入的目的是解耦组件之间的依赖关系,提高代码的灵活性、可维护性和可测试性。在依赖注入中,对象不再负责创建或查找它所依赖的对象,而是由外部容器负责将依赖关系注入到对象中。通过对象的构造函数将依赖关系传递给对象。通过对象的Setter方法将依赖关系注入到对象。

2024-02-28 13:41:52 671

原创 史上最详细Java面试总结—并发编程篇,由浅入深带你深入了解并发编程

线程的定义:线程是计算机中的基本执行单元,是进程中的一个独立执行流。一个进程可以包含多个线程,这些线程共享进程的资源,但每个线程有自己的执行路径、局部变量和栈。线程允许程序同时执行多个任务,提高了程序的并发性。线程的特点:轻量级: 相对于进程而言,线程是轻量级的执行单元。线程不拥有系统资源,只有一点必不可少的资源,如程序计数器、一组寄存器和栈。共享进程资源: 线程属于同一进程,它们共享进程的内存空间和资源。这使得线程之间的通信更加方便,但也需要进行合理的同步操作以防止竞态条件。独立执行流: 每个线程都有自己

2024-02-27 10:54:56 583

原创 面试必问!JVM 不得不说的知识点(三)

对象的标记字(Mark Word)是Java对象头中的一部分,用于存储对象的运行时信息。在Java虚拟机的内存模型中,每个对象都有一个对象头,其中的标记字包含了对象的一些元信息,如锁信息、垃圾回收状态等。用于支持hashCode()方法。在对象被创建时,如果没有重写hashCode()方法,标记字中的哈希码将默认由对象的地址计算得到。用于支持对象的同步机制。在多线程环境中,Java对象可能会被多个线程同时访问,因此需要进行加锁以确保数据的一致性。标记字中的锁信息包括了对象的锁状态、锁持有的线程等信息。

2024-02-23 18:55:08 907

原创 面试必问!JVM 不得不说的知识点(二)

Java 8及以后版本引入的元空间(Metaspace)是替代了之前版本中的永久代(PermGen)的一种新的内存管理机制。总体而言,元空间的引入解决了永久代的一些限制和问题,使得类的元数据管理更加灵活、高效,并避免了一些与永久代相关的内存溢出问题。永久代(在Java 8之前)或元空间(Java 8及之后)溢出,主要是由于加载的类或者字符串常量池的信息过多,超过了JVM给予的空间。通过这样的策略,短时间内创建的对象很可能在新生代被回收,而较长寿命的对象则会逐渐晋升到老年代,以保证堆内存的合理利用。

2024-02-22 11:24:40 773

原创 面试必问!JVM 不得不说的知识点(一)

在Java 8及以前的版本中,永久代是一块较小的固定大小的内存区域,它的大小在启动时就被预先设置好,不会根据应用程序的需求而自动调整。如果下次再创建相同内容的字符串常量,Java会首先检查字符串池中是否已存在相同内容的字符串,如果存在,则返回池中的引用,而不是创建新的对象。然而,由于永久代的固定大小和容易发生内存溢出的问题,Java在JVM规范中引入了一个新的内存区域,称为元空间(Metaspace),用于取代永久代。字符串池的目的是避免在内存中创建重复的字符串对象,以节省内存空间,并提高字符串的共享性。

2024-02-21 09:54:30 771

原创 必须要知道的12道SpringBoot面试题!95%会被问到

创建一个带有。

2024-02-18 15:07:11 1129

原创 RabbitMQ面试必备:基本概念、组件原理、消息传递模型,一网打尽。解密高可用性、负载均衡,深入了解安全性配置和性能优化

RabbitMQ面试必备:基本概念、组件原理、消息传递模型,一网打尽。解密高可用性、负载均衡,深入了解安全性配置和性能优化

2024-02-04 14:53:37 1460

原创 缓存修炼手册:跟着我走进分布式缓存的神秘世界,解密缓存雪崩、缓存穿透等技术难题。发掘缓存预热、更新、降级的独门绝技,让你在面试中轻松秒杀

解决方案可以是设置合理的缓存过期时间,使用多级缓存(本地缓存 + 分布式缓存),将热门商品数据设置为永不过期,加锁或串行化处理缓存失效时的数据加载操作,以及通过缓存预热机制在低峰期加载商品信息。假设一个电商网站的商品信息缓存在分布式缓存中,由于促销活动结束后,大量商品信息的缓存同时失效,导致用户在短时间内查询商品信息时,直接打到数据库上,引发了缓存雪崩。缓存穿透是指查询一个不存在的数据,由于缓存中不含该数据,每次查询都会直接请求数据库,导致大量无效的数据库查询流量,可能会对数据库造成压力,甚至引起雪崩。

2024-02-02 09:46:06 993

原创 Kafka核心概念、数据存储设计及Partition数据文件 生产者负载均衡策略、批量发送技巧、消息压缩手段、消费者设计

发送即可免费领取一份超全的面试题PDF文件!!!!

2024-01-31 20:13:55 895

原创 剖析Elasticsearch面试题:分词、倒排索引、文本相似度TF-IDF,揭秘分段存储与段合并,解密写索引技巧,应对深翻页问题的实用解决方案!

剖析Elasticsearch面试题:分词、倒排索引、文本相似度TF-IDF,揭秘分段存储与段合并,解密写索引技巧,应对深翻页问题的实用解决方案!

2024-01-30 15:49:27 1160

原创 分布式系统面试的秘籍:深入探讨事务、幂等性和补偿事务,掌握二/三阶段提交,了解Sagas事务模型和分布式ID的实战应用!

二阶段提交(Two-Phase Commit,2PC)是一种分布式事务协议,用于确保分布式系统中多个参与者(节点)对事务的提交或回滚具有一致性。事务协调者(Coordinator)向所有参与者发送准备请求,询问它们是否可以提交事务。每个参与者在接收到准备请求后,会执行事务的所有操作,并将事务的执行结果记录到本地,但不提交。如果所有参与者都成功地完成了事务的操作,协调者会向所有参与者发送提交请求,要求它们提交事务。

2024-01-30 10:24:55 748

原创 Java判断当前时间是否处于指定区间 如:【周一:15:00-周五:16:00】

写在前面在工作期间,遇到一个需求,限定用户提现的时间在周五下午4点到周一下午2点,为了解决这个问题呢。(懒人不想干活),百度了一下,出来一篇文章,但是不能符合我的预期,所以修改了下。写个博客记录下。文章地址:https://www.cnblogs.com/angel-devil/p/11906658.html代码如下/** * 判断时间是否在区间内 [周三:11:40,周日:15:45] * @param stTime 周三:11:40 * @param edTime 周日:15:4

2020-05-20 17:57:41 1637 1

原创 Spring官网查找配置文件

官网地址https://spring.io/

2020-04-24 16:08:54 1435

原创 Spring、Spring-boot 整合使用Dubbo

Spring、Spring-boot 整合使用Dubbo废话说在前面在工作过程中,老板安排了工作,将原来项目的用户系统与另外一个项目打通(以后称作A项目、B项目)。刚开始的时候因为A项目需要调用B项目的接口做操作。然后就一顿URL常量定义,远程调用接口来实现,后面发现定义的常量越来越多太麻烦了,所以想到用Dubbo这种分布式的架构解决这个问题。开发工具zookeeperEclipse...

2020-04-24 15:09:14 154

原创 Java面试点总结

1.Redis的数据类型有哪些?2.Redis的使用方式3.为什么创建索引?命令如何创建索引?4.spring中bean的创建流程5.spring中用到了哪些设计模式?在什么地方用到了6.什么是IOC?7.什么是AOP?8.如何利用反射修改一个类的私有属性?9.什么情况下索引会失效?10.synchronized 是什么锁?11.lock详解...

2019-12-19 19:05:50 97

原创 Linux下配置nginx网站支持HTTPS

获取证书我服务器是腾讯云的,在腾讯云的搜索界面搜索下SSL点击申请免费证书填写你的信息就好了--等待审核 一般一小时内就会完成验证注意:通用名称输入的是绑定的域名哦~验证完成之后下载证书即可开始配置把下载完成的证书放在服务器下(最好放在NGINX目录下 这样好找) server { listen 443 ssl; ...

2019-12-16 10:01:07 241

转载 springboot 事务踩坑合集

https://segmentfault.com/a/1190000014617571想启用本类的普通方法的事务,通过接口来调用该方法即可生效。如果先在方法内部catch异常,需要添加TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();否则可以在外面捕获这个异常。下面是在方法内部捕获异常的示例: Produ...

2019-12-09 15:45:03 268

原创 Linux下安装Redis客户端

1.下载Redis并解压去reids官网下载看一下最新的版本 http://download.redis.io/releases $ wget http://download.redis.io/releases/redis-5.0.7.tar.gz $ tar xzf redis-5.0.7.tar.gz2.安装GCC依赖yum install gcc3.编译安装$ cd red...

2019-12-05 10:35:41 958

原创 Windows下安装MySQL

1、准备工作MySQL安装包(我安装的版本为8.0.18)下载地址:链接:https://pan.baidu.com/s/1opVXlcvLUFdIAItFn57j_g提取码:1fr22、设置环境变量3、生成data文件 打开命令行执行命令:mysqld --initialize-insecure --user=mysql4、安装MySQL 继续执行命令:mysqld -ins...

2019-12-04 11:48:23 90

原创 phalcon框架搭建梳理

windows下运行环境搭建一、运行环境导入Phalcon框架下载Phalcon框架 下载地址:https://github.com/phalcon/cphalcon/releases/tag/v3.4.4注意:要确定对应的版,因为我的php 版本是7.3.*所以选择phalcon_x64_vc15_php7.3_3.4.4_nts.zip,(此处有一处大坑,同样为phalco...

2019-11-15 09:18:34 505

原创 CyclicBarrier和CountDownLatch的区别

CountDownLatch减计数,CyclicBarrier加计数。 CountDownLatch是一次性的,CyclicBarrier可以重用。 CountDownLatch强调一个线程或者多个线程等待其他线程执行完毕后执行、CyclicBarrier强调的是多个线程相互等待执行完毕...

2019-11-13 10:15:40 98

原创 eclipse配置Tomcat

eclipse配置Tomcat多的不说,直接开干附上Tomcat下载链接:http://tomcat.apache.org/配置Tomcat打开 window->preferences->Server->Runtime Environment:之后add->Apache 选择对应版本的Tomcat-》next 选择你下载的Tomcat目录点击完成使用To...

2019-10-17 16:47:15 142

转载 js数组去重查重

数组去重 var arr = [1, 2, 4, 4, 3, 3, 1, 5, 3, 2, 3, 3] var newarr = arr.filter(function (item, index, self) { return self.indexOf(item) === index })查找重复元素 var arr = [1...

2019-09-25 11:04:04 865

原创 window下PHP安装amqp扩展

wnmp环境下安装amqp扩展时,明明版本什么的都对,为什么依旧找不到扩展原因:没有加载好 --rabbitmq.4.dll文件解决方式:将与amqp扩展统计的rabbitmq 文件放在系统的system32下即可...

2019-08-02 16:40:28 402

原创 MySQL 按首字母排序

通常我们在查询书籍时,会出现按照书籍的名称进行排序,由于一般数据库编码大都为utf-8 ,他的排序方式为按英文字母规则排序 "a,b,c..... "数据库编码: 排序 utf-8mb4 按英文字母规则排序 "a,b,c..... " gbk 按汉字首字母排序效果如上图 由上表看出,只要我们在排序时将需要排...

2019-05-29 14:40:53 9903

原创 Java 8 Lambda

一、基本语法 1. (parameters) -> expression 参数+表达式 此语法下表达式将执行并返回结果 2.(parameters) ->{ statements; } 参数+语句块 ①return语句会吧控制权交给匿名方法的调用者 ②break和continue只能在循环中使用 表达式实例:...

2019-04-03 18:03:05 109

空空如也

空空如也

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

TA关注的人

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