09 2023 档案

摘要:简介 HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。 1.8版本的HashMap数据结构: 为什么有的是链表有的是红黑树? 默认链表长度大于8时转为树 结构 Node是HhaspMap中 阅读全文
posted @ 2023-09-24 20:09 小年轻在奋斗 阅读(10) 评论(0) 推荐(0) 编辑
摘要:前面咱们简单讲了K啊开发入门相关的概念、架构、特点以及安装启动。 今天咱们来说一下它的消息存储机制。 前言: Kafka通过将消息持久化到磁盘上的日志文件来实现高吞吐量的消息传递。 这种存储机制使得Kafka能够处理大量的消息,并保证消息的可靠性。 1、消息存储机制概述: 1.1 分区与副本: Ka 阅读全文
posted @ 2023-09-24 19:51 小年轻在奋斗 阅读(319) 评论(0) 推荐(0) 编辑
摘要:简介 ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适合用于对元素进行查找,效率非常高。 线程安全性 对ArrayList的操作一般分为两个步骤,改变位置(size)和操作元素(e)。所以这个过 阅读全文
posted @ 2023-09-24 19:31 小年轻在奋斗 阅读(44) 评论(0) 推荐(0) 编辑
摘要:本文选自:advanced-java 作者:yanglbme 问:如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。 面试题剖析 我举个例子,我们以前做过一个 mysql 阅读全文
posted @ 2023-09-23 12:42 小年轻在奋斗 阅读(46) 评论(0) 推荐(0) 编辑
摘要:前言 通过前面的文章,相信大家对Kafka有了一定的了解了,那接下来问题就来了,Kafka既然作为一个分布式的消息队列系统,那它会不会出现消息丢失或者重复消费的情况呢?今天咱们就来一探。 实现机制 Kafka采用了一系列机制来实现消息传递的保证和一致性,关键点: 至少一次的消息传递(At Least 阅读全文
posted @ 2023-09-23 12:35 小年轻在奋斗 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1. Kafka简介 Apache Kafka 是LinkedIn公司开发的一款开源的高吞吐、分布式的消息队列系统,它具有高伸缩性、高可靠性和低延迟等特点,因此在大型数据处理场景中备受青睐。Kafka 可以处理多种类型的数据,如事件、日志、指标等,广泛应用于实时数据流处理、日志收集、监控和分析等领域 阅读全文
posted @ 2023-09-23 12:28 小年轻在奋斗 阅读(10) 评论(0) 推荐(0) 编辑
摘要:作者:猴子007 选自:https://monkeysayhi.github.io “你知道茴香豆的‘茴’字有几种写法吗?” 纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。 这里讲解几种笔者常用的 阅读全文
posted @ 2023-09-22 11:17 小年轻在奋斗 阅读(5) 评论(0) 推荐(0) 编辑
摘要:分布式锁常见的三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁。 本次面试考点是,你对Redis使用熟悉吗?Redis中是如何实现分布式锁的。 要点 Redis要实现分布式锁,以下条件应该得到满足 互斥性 在任意时刻,只有一个客户端能持有锁。 不能死锁 客 阅读全文
posted @ 2023-09-22 11:14 小年轻在奋斗 阅读(135) 评论(0) 推荐(0) 编辑
摘要:锁(lock)的代价 锁是用来做并发最简单的方式,其代价也是最高的,Java在JDK1.5之前都是靠synchronized关键字来加锁。但是加锁机制会有如下几个问题: 加锁、释放锁会需要操作系统进行上下文切换和调度延时,在上下文切换的时候,cpu之前缓存的指令和数据都将失效,这个过程将增加系统开销 阅读全文
posted @ 2023-09-22 11:02 小年轻在奋斗 阅读(15) 评论(0) 推荐(0) 编辑
摘要:每天一道面试题,陪你突击金九银十! 上一篇关于介绍Object类下的几种方法时面试题时,提到equals()和hashCode()方法可能引出关于“hashCode() 和 equals() 之间的关系?”的面试题,本篇来解析一下这道基础面试题。 先祭一张图,可以思考一下为什么? 介绍 equals 阅读全文
posted @ 2023-09-21 11:52 小年轻在奋斗 阅读(6) 评论(0) 推荐(0) 编辑
摘要:AbstractQueuedSynchronizer(AQS)是一个抽象队列同步器,它用于构建依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器的框架。该类的目的在于提供基本功能的封装,适用于大多数需要使用单个原子int值表示同步状态的同步器。举例来说,ReentrantLock、Semapho 阅读全文
posted @ 2023-09-21 11:49 小年轻在奋斗 阅读(12) 评论(0) 推荐(0) 编辑
摘要:实际工作中,为了优化性能,我们经常会使用缓存,例如缓存元数据、缓存基础数据等,这就是一种典型的读多写少应用场景。缓存之所以能提升性能,一个重要的条件就是缓存的数据一定是读多写少的,例如元数据和基础数据基本上不会发生变化(写少),但是使用它们的地方却很多(读多)。 针对读多写少这种并发场景,Java 阅读全文
posted @ 2023-09-21 10:31 小年轻在奋斗 阅读(14) 评论(0) 推荐(0) 编辑
摘要:今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的。 面试题 Object有几种方法呢? Java语言是一种单继承结构语言,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。 如果一个类没有用extends明确指出继承于某个类,那么它默认继承Obj 阅读全文
posted @ 2023-09-20 17:09 小年轻在奋斗 阅读(19) 评论(0) 推荐(0) 编辑
摘要:我们介绍过一些有关并发编程的工具和概念,包括线程池、Future、CompletableFuture和CompletionService。如果仔细观察,你会发现这些工具实际上是帮助我们从任务的角度来解决并发问题的,而不是让我们陷入线程之间如何协作的繁琐细节(比如等待和通知等)。 对于简单的并行任务, 阅读全文
posted @ 2023-09-20 15:59 小年轻在奋斗 阅读(41) 评论(0) 推荐(0) 编辑
摘要:本文出自:https://thinkinjava.cn 作者:莫那 鲁道 1. 什么是缓存雪崩?怎么解决? 一般而言,我们会利用缓存来缓冲对数据库的冲击,假如缓存无法正常工作,所有的请求便会直接发送至数据库,进而导致数据库崩溃,从而导致整个系统崩溃。 如何解决呢? 2 种策略(同时使用): 对缓存做 阅读全文
posted @ 2023-09-20 15:50 小年轻在奋斗 阅读(8) 评论(0) 推荐(0) 编辑
摘要:简单介绍 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。 Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View R 阅读全文
posted @ 2023-09-18 11:48 小年轻在奋斗 阅读(171) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示