自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 全网最新Java面试题及答案整理汇总

单例模式:某个类的实例在 多线程环境下只会被创建一次出来。单例模式有饿汉式单例模式、懒汉式单例模式和双检锁单例模式三种。饿汉式:线程安全,一开始就初始化。懒汉式:非线程安全,延迟初始化。篇幅限制下面就只能给大家展示小册部分内容了。包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记的【点击此处即可】即可免费获取双检锁:线程安全,延迟初始化。

2024-07-25 15:04:37 593

原创 【重写SpringFramework】第二章aop模块:本章小结(chapter 2-8)

在 Spring 框架中,IOC 和 AOP 共同构成了整个体系的基础。第一章介绍了 IOC 机制,本章关注的是 AOP 功能。相对于 beans 模块而言,aop 模块的功能更加单一,因此从代码层面来说,aop 模块有一条非常清晰的主线,分为三个阶段。准备工作:对 AOP 规范进行分析,得到的结论是,要实现 AOP 功能需要满足三要素,即增强、切面和代理。主体部分:实现了 AOP 的三要素。首先是增强,对Advice接口进行扩展,主要关注方法的拦截和调用。然后是切面,通过Advisor。

2024-07-25 15:04:07 825

原创 Android中SurfaceView和TextureView有什么区别?

和是 Android 应用开发中用于显示内容的两种常用视图,尤其是在需要呈现视频或其他图形内容时。理解它们的作用和区别对于在不同场景下选择合适的视图非常重要。

2024-07-25 15:02:33 377

原创 无限挂掉的tomcat生产事故

书接上回,查日志找不到关键信息后,只能通过控制变量法来处理了。最近突然发现一个很奇葩的BUG,在同事的一次离线服务升级后,过了几小时,运营反映系统访问异常,我一看tomcat自动关闭了,当时我还没知道事情的严重性.....明天早上系统又又挂了,我们就开始问题的追踪。打开tomcat/webapps 发现有两个文件夹,一个是正式的,一个是备份的,tomcat把两个都加载了,难道就是因为这个问题导致的?最后我使出最后的绝招,换了个tomcat版本,把jvm配置还原到以前的配置,重新打包上去,现在观察ing。

2024-07-25 15:02:03 482

原创 架构师手写代码:分享数据库原子性与一致性实现方案(不再背概念)

方法用于执行一个事务,它首先进行一致性检查,然后应用所有操作。展示了如何在内存中以编程方式实现原子性和一致性,但它并不是一个真正的数据库系统。原子性和一致性是数据库事务不可或缺的特性,它们共同维护了数据的完整性和可靠性。原子性指的是事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个点。如果事务中的某个操作失败,整个事务将被回滚到开始状态,就像这个事务从未执行过一样。一致性确保数据库从一个一致的状态转移到另一个一致的状态。在事务开始之前和提交之后,所有的数据都应满足预定义的完整性约束。

2024-07-25 15:01:12 773

原创 Java面试题合集(持续更新)

我们使用java编译命令就能将java源文件编译对应成字节码文件(.class),字节码文件是一种八位数据的二进制流文件,可以被JVM快速加载到内存中运行AQS全称abstractQueueSynchronizer,即抽象队列同步器,是一种锁机制,它是作为一个基础框架使用的,像Reentrantlock,countdownlatch都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储了排队的线程。

2024-07-25 14:56:09 1122

原创 最强Java面试题大全带答案

基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。装箱:将基本类型转换成包装类对象拆箱:将包装类对象转换成基本类型的值java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。

2024-07-24 13:31:57 638

原创 必看!100道Java程序员面试题(含答案)!,积累总结

单个redis节点的并发能力是有限的,所以为了提高并发能力,我们需要搭建redis集群,就比如:主从复制。主从复制的流程主从复制主要分为:全量同步和增量同步。全量同步:在salve请求数据同步的时候会携带application Id和offset,如果master判断出applid和自己的不一样,就认为slave是第一次进行同步,所以会进行全量同步。

2024-07-24 13:28:50 552

原创 最新Java笔试题及答案,java高分面试指南

单个redis节点的并发能力是有限的,所以为了提高并发能力,我们需要搭建redis集群,就比如:主从复制。主从复制的流程主从复制主要分为:全量同步和增量同步。全量同步:在salve请求数据同步的时候会携带application Id和offset,如果master判断出applid和自己的不一样,就认为slave是第一次进行同步,所以会进行全量同步。

2024-07-24 13:27:48 583

原创 Java面试题大全带答案

因为sleep() 是static静态的方法,他不能改变对象的机锁,当一个synchronized块中调用了sleep() 方法,线程虽然进入休眠,但是对象的机锁没有被释放,其他线程依然无法访问这个对象,这时就会引发问题,此类现象请注意。wait():wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁,使得其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程。比如list.iterator()

2024-07-24 13:24:48 712

原创 全网最新Java面试题及答案整理汇总

单例模式:某个类的实例在 多线程环境下只会被创建一次出来。单例模式有饿汉式单例模式、懒汉式单例模式和双检锁单例模式三种。饿汉式:线程安全,一开始就初始化。懒汉式:非线程安全,延迟初始化。篇幅限制下面就只能给大家展示小册部分内容了。包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记的【点击此处即可】即可免费获取双检锁:线程安全,延迟初始化。

2024-07-24 13:22:51 1089

原创 不懂这些,面试都不敢说自己熟悉Redis

下面这位就是Redis的创始人,他叫antirez,让我们Java开发者又要多学一门Redis的始作俑者。我们肯定很难想象Redis创始人竟然学的是是建筑专业,而当年antirez是为了帮网站管理员监控访问者的实时行为才开发的Redis。为啥antirez不用MySQL来开发?MySQL并不适用于实时应用程序,存储数据库需要磁盘读写,大量的数据操作会使网站速度过于缓慢。于是Redis的前身LLOOGG就这样诞生了,后期也发展为了Redis。大家好,我是南哥。

2024-07-23 20:11:25 794 1

原创 Java基本语法:Java注释和代码风格 系列②

本文详细介绍了Java中的注释和代码风格,包括单行注释、多行注释、文档注释、代码格式化规范、命名约定和代码组织等方面。通过遵循这些最佳实践,可以提高代码的可读性、可维护性和可扩展性。最后,通过一个综合详细的例子,展示了如何在实际项目中应用这些注释和代码风格。希望本文对你编写高质量的Java代码有所帮助。

2024-07-23 20:10:22 528

原创 面试题:如何解决缓存和数据库的一致性问题?

理论如同明灯照亮前行的道路,实践则是我们坚实的脚步。唯有将两者紧密结合,不断地练习和实践,我们才能在求知的旅程中稳步前行,收获真正的成长与进步。所以,一起行动起来,光看不练都是假把式。

2024-07-23 20:09:24 241

原创 图解RocketMQ之主题Topic详解

我们先来看看官方定义:主题是 RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。我的理解主题就是消息的分类,比如上一篇说到的鸡毛的餐厅中订单消息是一类主题消息,顾客下单的消息都往订单消息这个主题里面发,那么同样鸡鸡毛的朋友狗毛约他去打球,就属于打球主题消息,依此类推,不难发现,主题消息的分类其实是受业务所决定的,你要发什么业务消息最好单独是一个 Topic 主题,大家相互之间互不干扰。现如今垃圾都要做好干湿分类,消息可不能一个 topic 干到底哦。定义数据的分类隔离。

2024-07-23 20:08:37 540

原创 初识SpringBoot

在学习java之前就听闻SpringBoot的大名,不知道正在学习的小伙伴也是不是哈哈,这篇文章我们就从最最最简单的讲起,是关于SpingBoot 在web开发中的运用。

2024-07-23 19:52:54 831

原创 JAVA面试题大全(200+道题目)

一种事物的多种表现形态就是多态,比如定义一个类为动物,那么动物可以被子类继承,从而实现具体动物的方法。死锁是指两个或两个以上的进程在竞争资源的过程中造成的不可解堵塞。两个线程都在互相等待。java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能成为java的反射机制。序列化:将java对象转换成字节流的过程。反序列化:将字节流转换成java对象的过程。当java对象需要。

2024-07-23 19:30:27 979

原创 文件解析的终极工具:Apache Tika

是一个开源的、跨平台的库,用于检测、提取和解析各种类型文件的元数据。它支持多种文件格式,包括文档、图片、音频和视频。Tika是一个底层库,经常用于搜索引擎、内容管理系统、数据分析任务等领域,无缝地集成到其他应用或服务中以增强对文件内容处理的能力。是一个功能丰富的文档解析工具,专门用于提取和分析多种文件类型的内容。它广泛应用于搜索引擎的资料整理、内容管理系统的内容提取以及数据分析等领域。

2024-07-22 18:09:06 691

原创 Quartz定时任务调度器

轻量级的任务调度框架,支持作业调度、持久化、任务持久化、并发控制、失败重试等。与spring自带定时任务最主要的区别是他支持定时年月日时分秒存储。

2024-07-22 18:03:53 721

原创 【Spring AOP】Spring AOP快速使用

Aop 是面向切面编程,项目中一般都使用aop做日志、权限等操作,比如我们想要打印所有接口的日志,就可以用Aop来实现。下面用一个打印接口的日志来讲述Aop的快速使用。如果你不想知道Aop的一些具体注解的单独讲述,可以直接进入到案例,案例中也会对Aop的注解做讲述和使用。

2024-07-22 18:01:05 734

原创 从零开始读RocketMq源码(六)延迟消息、事务消息原理解析

通过对RocketMQ延迟消息、事务消息、消息重试等特性的了解,可以更全面地掌握消息队列的功能和实现原理。这不仅有助于应对面试中的各种问题,还能在实际工作中更有效地利用这些特性,提高系统的可靠性和效率。希望本文的整理对你有所帮助。

2024-07-22 17:59:10 835

原创 2024最新Java八股文(完整版)

单个redis节点的并发能力是有限的,所以为了提高并发能力,我们需要搭建redis集群,就比如:主从复制。主从复制的流程主从复制主要分为:全量同步和增量同步。全量同步:在salve请求数据同步的时候会携带application Id和offset,如果master判断出applid和自己的不一样,就认为slave是第一次进行同步,所以会进行全量同步。

2024-07-22 17:58:05 1217

原创 Spring Boot集成starrocks快速入门Demo

StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。StarRocks架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO (Cost Based Optimizer) 优化器,查询速度(尤其是多表关联查询)远超同类产品。

2024-07-21 13:49:00 698

原创 贫血模型:简化设计还是过度简化(架构篇)?

贫血模型通过将业务逻辑从领域模型中移除,试图简化设计。然而,这种方法可能会导致领域模型过于简单,而服务层变得过于复杂。在设计系统时,需要权衡领域模型的复杂性和服务层的职责,以确保系统的可维护性和可扩展性。虽然贫血模型在某些情况下可能有用,但过度简化可能会导致其他问题。

2024-07-21 13:48:06 764

原创 SprongBoot3整合Knife4j-4.4

本文详细的讲解了如何在springboot3项目中去引入Knife4j-4.4希望对你能够有所帮助!!!!

2024-07-21 13:47:28 632

原创 任何 Web 项目都离不开的 Spring Security【原理+实战(前后端分离+无状态)】

Spring Security 如何知道我们想要求所有用户都经过身份认证?如何知道我们想要支持基于表单的身份认证?实际上,全靠一个配置类去自定义设置,也就是上面所说的。接下来,就基于配置类构建一个前后端分离集成 Spring Security 的Web应用。通过以上简单的配置,就已经实现了前后端分离架构和无状态会话管理。除此之外,项目中还需要实现自定义认证逻辑。以上的配置来看,当post请求/login,传入username和password就会执行认证流程,不需要写/login接口。

2024-07-21 13:46:18 715

原创 全网最全JAVA面试八股文

ReadWriteLock 是 一 个 读 写 锁 接 口 , ReentrantReadWriteLock 是ReadWriteLock 接口的一个具体实现,实现了读写的分离,读锁是共享的,写锁是独占的, 读和读之间不会互斥,读和写、写和读、写和写之间才会互斥,提升了读写的性能。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用, 特别适用于各个线程依赖不通的变量值完成操作的场景。cas 是一种基于锁的操作,而且是乐观锁。

2024-07-21 13:44:52 832

原创 Spring Boot项目如何优雅丝滑地从Date过渡到LocalDateTime

书接上回,我们总结了使用Date处理日期时间的存在问题以及讲述了Java 8全新日期时间等强大功能。可谓是使用LocalDateTime替代Date操作处理日期时间之后:任凭风浪起,稳坐钓鱼台。但我们都知道大部分开发人员是守旧的,我Date用的好好的,也用了这么多年了,现在要换成Java 8提供的全新,你说换就换啊???兼容吗?出问题了谁负责?😄 所以在项目中大家从Date过渡到使用类型字段作为接口出入参数,能正常映射转换前端传入的参数吗?返回参数前端是否能收到一个正常的日期时间字段值?使用。

2024-07-19 16:07:34 797

原创 JMX 反序列化漏洞

前段时间看到普元 EOS Platform 爆了这个洞,Apache James,Kafka-UI 都爆了这几个洞,所以决定系统来学习一下这个漏洞点。

2024-07-19 16:04:17 758

原创 【重写SpringFramework】第二章aop模块:自动代理下(chapter 2-7)

上一节我们讨论了通用的自动代理组件,任何一个方法都可以与若干个增强逻辑组合起来使用。另外,还提供了两种创建代理的方式,它们作为主流程的补充,用于处理一些特殊的情况。本节我们将通过两个典型的使用场景进行分析。中有一个lazyInit属性,作用是延迟初始化实例。具体说来,调用getBean方法时并不会触发创建流程,只有在第一次使用(调用方法)时才会创建单例。延迟初始化的实现有多种方式,其中一种与自动代理有关。接口定义了方法,调用时机是在创建对象之前,如果得到了一个代理,直接返回并添加到容器中。我们知道。

2024-07-19 16:01:58 426

原创 分布式Session共享的5类技术方案,与优劣势比较

5种分布式Session共享实现方案该如何选择呢?

2024-07-19 16:00:55 366

原创 Java面试八股文(基础篇)(❤❤)

1.所有比较是否相等时,都是用equals2.在对常量相比较时,把常量写在前面,因为使用object的equals object可能为null 则空指针在阿里的代码规范中只使用equals ,阿里插件默认会识别,并可以快速修改,推荐安装阿里插件来排查老代码使用“==”,替换成equals。

2024-07-19 15:59:45 1262

原创 从零手写实现 nginx-32-load balance 负载均衡算法 java 实现

Nginx 支持多种负载均衡算法,包括轮询、权重轮询、最少连接、IP 哈希和一致性哈希。每种算法适用于不同的场景,可以根据具体需求选择合适的算法来优化负载均衡策略。

2024-07-18 15:15:59 905

原创 用final声明的局部变量,能提升性能吗

因为当方法执行结束时,方法内的参数和局部变量会跟着方法一起结束,都会被回收,而内部类的生命周期可能比方法长(例如:线程)。如果允许修改外部局部变量,而外部方法已经结束,变量可能已经被回收,这会导致数据不一致和不可预测的结果。由于匿名内部类可能会在不同的线程中被执行,如果允许修改外部局部变量,可能会引发线程安全问题。的局部变量编译后的 Class 文件都是一样的,因此访问效率都是一样的。,可以确保在匿名内部类中使用的变量值在其创建时就被固定下来,不会在后续发生变化。的局部变量通常不会直接带来显著的性能提升。

2024-07-18 15:14:41 369

原创 Android黑科技——破解系统隐藏API

系统framework代码中可以通过设置setHiddenApiExemptions,达到随意访问hiddenapi的目的由于class VMRuntime被hide,可以在JNI_OnLoad中操作VMRuntime,达到调用setHiddenApiExemptions的目的。

2024-07-18 15:11:47 978

原创 我想我大抵是疯了,我喜欢上了写单元测试

大家好我是聪。相信有不少的小伙伴喜欢写代码,但是对于单元测试这些反而觉得多此一举,想着我都在接口文档测过了!还要写什么单元测试!写不了一点!!由于本人也是一个小小程序猿🙉,我以前也不喜欢写,最近给扔到了另一个 leader 的项目组里面,刚进去他给我下达的命令就是,你写的代码逻辑都要给我写上单元测试,而且要生成覆盖率报告给我!哇!我顿时就难受了,我之前都没有这么严格的,但是呢最近在我疯狂的写单元测试下,我发现我爱上了写单元测试。

2024-07-18 15:10:40 724

原创 Java经典面试题总结(突击就业)

所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。

2024-07-18 15:06:18 1109

原创 面试问:Golang 中的接口和Java中的有什么区别?

Golang的隐式接口设计带来了简洁的同时,也需要开发者在设计接口和实现时更加谨慎。通过合理的接口命名、使用类型断言与类型开关、以及在必要时分离具体方法的实现,可以有效避免你所提到的问题。Golang和Java在接口设计上的差异反映了两者不同的语言哲学。Golang追求的是简洁和直接,而Java则强调明确和严格的类型约束。理解并适应这种差异,是掌握Golang接口设计的关键。希望这些建议能够帮助你更好地理解和运用Golang中的接口机制。

2024-07-17 21:37:24 230

原创 说说XXLJob分片任务实现原理? - 掘金

XXL Job 是一个,其核心设计目标是开发迅速、学习简单、轻量级、易扩展的分布式任务调度框架。这两天咱们开发的 AI Cloud 项目中,也使用到了 XXL Job 来执行分布式任务的调度,可以看出它的部署和使用虽然步骤很多,但用起来还是很简单的。

2024-07-17 21:36:53 217

原创 ✨Kafka✨生产者消息发送源码解析✨

本文将对Kafka生产者消息发送的源码进行分析,帮助了解Kafka生产者发送消息时,回调函数如何执行Kafka消息发送的异步和同步原理以及Kafka消息发送的机制。Kafka3.1.1Kafka生产者消息发送流程用下图进行总结。

2024-07-16 15:00:25 532

空空如也

空空如也

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

TA关注的人

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