- 博客(168)
- 资源 (3)
- 收藏
- 关注

原创 MySQL的四种事务隔离级别
什么是事务事务是应用程序中一系列逻辑相关的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性:一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消之前的所有操作。在mysql的执行引擎当中只有innoDB支持事务,可以通过 “show engines;”查看。一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完
2021-12-13 17:48:24
1255

原创 2022Java面试题大全(整理版)面试题附答案详解,最全面详细,看完稳了
目录Java基础1. String 和StringBuffer和 StringBuilder的区别?2. sleep() 区间wait()区间有什么区别?3. Object 中有哪些方法?其中clone(),怎么实现一个对象的克隆,Java如何实现深度克隆?ThreadLocal 相关4. ThreadLocal作用和实现方式 ?ThreadLocal会不会发生内存泄漏?ThreadLocal为什么使用弱引用?5. InheritableThreadLocal作用和实现方
2021-11-23 11:10:26
27332
8

原创 2W字详解Redis经典面试题(珍藏版)
1. 什么是Redis?它主要用来什么的?Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动
2021-10-12 17:08:19
515
1

原创 超级实用的Java工具类
字符串工具类首先介绍一下commons-lang3的一个字符串工具类StringUtils,常用方法如下:1、isEmpty() 判断字符串是否为空。2、isBlank() 判断字符串是否为空,如果字符串都是空格,也认为是空。public class StringUtilsTest { public static void main(String[] args) { String str = " "; System.out.println(Strin
2021-10-09 11:01:35
472

原创 面试oracle数据库sql的基础知识
oracle的基本术语数据字典,数据库元数据信息的数据字典表和用户可以读取的数据字典视图组成。存放oracle数据库所用的有关信息。通过数据字典可以查看数据表和用户的一些信息。数据文件,一个oracle数据可以拥有一个或多个物理的数据文件,一个数据文件只对于一个数据库表空间,存储的逻辑结构,是组织数据和进行空间分配的逻辑结构。简单点,表空间就是一个或者多个数据文件的集合,所有的数据文件都被逻辑的存放在指定的表空间中。通常有system 、sysaux、 temp三个默认表空间。 系统
2021-09-28 19:53:01
193

原创 常见Oracle数据库面试题目
SQL语句分类:DQL(数据查询语言)selectDML(数据操作语言)insert、delete、updateDDL(数据定义语言)create、drop、alterDCL(数据控制语言)grant:把权限授予用户、revoke:把权限从用户收回TPL(TCL,事务控制语言):commit、rollbackOracle是怎样分页的:Oracle用rownum进行分页分页语句的步骤:a.最内层sql,查询要分页的所有数据b.第二层sql,通过rownum伪列确定显示数据的
2021-09-28 17:54:07
1991

原创 IDEA项目打包几种方式
IDEA项目打包几种方式第一种,最常见的使用maven项目的pom文件中引入spring-boot-maven-plugin插件<build> <finalName>文件名称</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId>
2021-09-27 11:31:20
23086
1

原创 一篇文章掌握整个JVM,JVM超详细解析!!!(持续更新中)
一篇文章掌握整个JVM,JVM超详细解析!!!(持续更新中)JVM内存模型JVM内存模型包括:虚拟机栈、堆、方法区、程序计数器、本地方法栈堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或
2021-09-26 15:46:19
1256

原创 Java必会的工具库,让你的代码量减少90%
#Java必会的工具库,让你的代码量减少90%Java自带工具方法1.1 List集合拼接成以逗号分隔的字符串// 如何把list集合拼接成以逗号分隔的字符串 a,b,cList list = Arrays.asList(“a”, “b”, “c”);// 第一种方法,可以用stream流String join = list.stream().collect(Collectors.joining(","));System.out.println(join); // 输出 a,b,c//
2021-06-26 14:42:10
152

原创 Java之BigDecimal详解
一、BigDecimal概述 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDec
2020-12-19 15:37:34
479
1

原创 JAVA后端知识点长啥样?
SpringSpring框架的七大模块Spring Core:框架的最基础部分,提供 IoC 容器,对 bean 进行管理。Spring Context:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。Spring DAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。Spring ORM:提供了JPA、JDO、Hibernate、MyBatis 等ORM映射层.Spring AOP:集成了所有AOP功能Spring Web:提供了基础的 We
2020-09-12 10:06:36
180
1

原创 Java工程师面试题总结及参考答案(一)
1、 JVM结构原理、GC工作机制详解转载于:https://blog.youkuaiyun.com/tonytfjing/article/details/44278233一、JVM结构根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示:从左图可知,JVM主要包括四个部分:1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中。(右图表示了从java源文件到JVM的整个过程,可配合理解。 关于类的加载机制,可以参考http://blog.csdn.n
2020-08-11 11:11:23
651

原创 Linux常见操作命令整理
常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch 创建空文件echo 创建带有内容的文件。cat 查看文件内容cp
2020-06-16 17:00:26
152
原创 Maven学习笔记
Maven是一个强大的构建工具,能够自动化构建过程(清理、编译、测试、打包和部署),同时作为依赖管理和项目信息管理工具。它通过中央仓库自动下载构件,支持用户范围配置(如settings.xml)。Maven的生命周期包括clean、default和site三套流程,通过插件绑定实现具体任务。支持聚合与继承机制,dependencyManagement统一管理依赖版本,pluginManagement管理插件配置。此外,Maven还提供仓库管理(本地/远程)、镜像配置、依赖分析等功能,能够优化项目构建流程,确
2025-08-14 19:26:06
254
原创 Nginx学习笔记
Nginx是一款高性能的Web服务器和反向代理服务器,具有高并发、低资源消耗等优点。文章全面介绍了Nginx的核心特性和应用场景,包括: 基本概念:正向/反向代理的区别、动静分离原理 核心功能:负载均衡算法(轮询/权重/IP哈希等)、高并发实现机制(异步非阻塞)、限流策略(漏桶/令牌桶算法) 配置管理:虚拟主机配置、健康检查、压缩优化、跨域解决方案 高级特性:CDN整合、高可用配置、模块化设计 常见问题:C10K问题、错误代码解析、性能调优建议 文章还对比了Nginx与Apache的差异,并提供了完整的配置
2025-08-14 19:24:54
283
原创 Git 超详细总结!(推荐 )
Git是一个分布式版本控制系统,用于高效管理项目版本。它通过快照方式保存文件状态,只有修改过的文件才会重新存储。Git具有三种文件状态:已修改、已暂存和已提交。基本工作流程包括修改文件、暂存更改和提交更新。Git支持分支管理、合并冲突解决、版本回退、标签标记等功能,还能与远程仓库交互进行代码共享。常用命令包括git add、commit、push、pull、merge等,同时提供stash暂存、cherry-pick选择提交等高级功能。Git通过.gitignore文件管理忽略规则,支持配置多远程仓库,是开
2025-08-13 15:33:38
236
原创 Git 高频面试题总结
Git是一个分布式版本控制系统,用于跟踪文件变化和协调多人开发。它提供本地和远程仓库管理,支持分支合并(merge/rebase)、冲突解决、代码回退(reset/revert)等功能,常用命令包括add/commit/push/pull等。与集中式SVN不同,Git支持离线工作;与GitHub的关系是工具与托管平台的区别。工作流程推荐Gitflow模式,通过master/develop/feature等分支实现高效协作。Git能提升开发效率,保障代码完整性,已成为现代软件开发的核心工具。
2025-08-13 15:32:13
760
原创 几种常见的架构模式
文章摘要:本文系统介绍了8种常见的架构设计模式:1.单库单应用模式(简单但扩展性差);2.内容分发模式(利用CDN加速资源访问);3.查询分离模式(主从分离+ES提升查询性能);4.微服务模式(拆分复杂业务系统);5.多级缓存模式(客户端/网关/业务层缓存);6.分库分表模式(解决单表性能瓶颈);7.弹性伸缩模式(动态资源调配);8.多机房模式(实现异地多活)。每种模式都详细分析了适用场景、实现方案和优缺点,为架构设计提供了系统性的参考框架。
2025-08-11 17:12:12
35
原创 干掉 “重复代码” 的技巧有哪些
本文探讨了如何通过设计模式和Java高级特性消除业务代码中的重复逻辑,提升可维护性。首先以购物车案例展示了工厂模式+模板方法模式的应用,利用抽象类实现通用逻辑,子类处理差异化逻辑,避免if-else分支和重复代码。其次通过银行接口调用案例,演示了注解+反射的实践,将API参数规范通过注解定义,使用反射动态处理参数序列化,统一处理流程。最后针对实体转换场景,推荐使用属性拷贝工具替代手动赋值,避免字段映射错误。文章强调,大型项目的成熟度取决于可维护性,而减少代码重复是提高可维护性的重要手段。
2025-08-11 17:10:00
719
原创 10w级别数据Excel导入优化
【摘要】本文针对10万+行Excel数据导入系统的性能优化方案进行了详细阐述。通过四轮迭代优化:1)从原生POI逐行处理改为EasyPOI+批量插入;2)引入数据库查询缓存减少IO;3)采用阿里EasyExcel解决大文件读取问题;4)通过并行流批量插入(每次1000条)优化数据库写入。最终实现41万行数据50秒读取、10万行完整导入95秒的性能提升。关键优化点包括:选择高效Excel工具、数据库操作批量化、多线程处理、避免冗余日志。针对测试环境4G内存服务器的数据库瓶颈,文章提供了具体的代码实现方案和性能
2025-08-09 10:54:28
417
原创 怎么设计一个短链系统?
文章摘要:短链服务通过简化长网址提升用户体验,其核心原理是服务器重定向。主流的短链生成方式包括数字序列、哈希算法和发号器机制,需解决哈希碰撞和ID分配问题。存储方案可采用关系型或NoSQL数据库,并配合缓存优化性能。HTTP重定向通常选择302而非301,以保留点击统计功能。国内主流服务如新浪(t.cn)、百度(dwz.cn)均采用此类技术方案。
2025-08-09 10:52:42
674
原创 订单30分钟未支付自动取消怎么实现?
这样可以看出定时轮由个 3 个重要的属性参数,ticksPerWheel(一轮的 tick 数),tickDuration(一个 tick 的持续时间)以及 timeUnit(时间单位),例如当 ticksPerWheel=60,tickDuration=1,timeUnit=秒,这就和现实中的始终的秒针走动完全类似了。因此,方案二不是太推荐。该方案通常是在小型项目中使用,即通过一个线程定时的去扫描数据库,通过订单时间来判断是否有超时的订单,然后进行 update 或 delete 等操作。
2025-08-09 10:35:33
213
原创 扫码登录原理
扫码登录功能通过PC端与移动端的交互实现安全认证,分为三个阶段:待扫描阶段生成唯一二维码ID并轮询状态;已扫描阶段移动端提交token与二维码ID关联,生成临时token并要求用户确认;确认阶段验证临时token后为PC端生成正式登录凭证。整个过程通过二维码唯一性、状态轮询和二次确认机制确保安全性,防止未授权登录,最终完成跨设备认证流程。
2025-08-09 10:33:58
124
原创 SpringCloud基础
微服务架构将单体系统拆分为独立运行的多个小型服务。相比单体架构,微服务具有技术异构、隔离性好、扩展性强等优势,但也面临网络调用频繁、运维复杂等挑战。Spring Cloud作为微服务开发工具集,整合了服务发现(Eureka)、负载均衡(Ribbon)、熔断器(Hystrix)、配置中心(Config)等核心组件,并提供安全认证、链路追踪等配套功能,有效支持微服务系统的构建与治理。该框架通过标准化组件简化了分布式系统的开发复杂度,为微服务架构提供了完整的解决方案。
2025-08-08 16:19:29
396
原创 线上接口很慢怎么办?
多个接口变慢通常由共享资源瓶颈引起,如数据库连接、慢查询或下游服务问题,可通过读写分离、分库分表、加缓存或优化SQL解决。单个接口变慢则需针对性分析,优化代码逻辑(如批量获取数据、缓存结果、并行处理),或调整为异步请求。产品层面可简化数据需求,避免过度查询。
2025-08-08 15:52:27
213
原创 读写分离和分库分表详解
摘要:读写分离通过将数据库读写操作分散到不同节点,提升读性能,基于MySQL主从复制实现。分库分表则通过数据分散存储解决单库单表性能瓶颈,但需解决事务、分布式ID等问题。主从复制依赖binlog实现数据同步,但存在延迟问题,可通过强制主库读、优化从库性能等方式缓解。合理使用读写分离和分库分表能有效提升数据库性能,需根据业务场景选择合适方案。
2025-08-08 15:22:37
137
原创 《Java程序员涨薪跳槽实战指南(2025版)
《Java程序员涨薪跳槽实战指南(2025版)》 摘要:针对Java开发者职业发展,本文提出系统性提升方案。技术层面需深耕JVM原理、Spring生态及分布式架构,掌握云原生和DevOps工具链;职业策略上建议结合年限选择大厂镀金或架构师路线,运用STAR法则包装高并发优化等实战经验。同步关注AI融合与全栈能力拓展,推荐LeetCode+大厂面经组合训练。通过持续技术投入(建议每周10小时)聚焦云原生/AI等高价值领域,可实现30%-40%的薪资涨幅,资深开发者更有望突破40W年薪。
2025-05-30 15:18:28
609
原创 Dubbo 的工作原理
Dubbo工作原理及RPC调用流程:Dubbo采用分层架构设计,包括服务接口层、配置层、代理层、注册中心层等10个层级。工作流程主要分为服务注册、订阅、调用和监控四个步骤。当注册中心宕机时,消费者仍可通信,因为服务提供者地址信息已缓存在本地。一次完整的RPC调用会经过服务代理生成、负载均衡选择、网络传输和结果返回等环节。Dubbo的架构设计确保即使在部分组件故障时仍能维持基本服务能力。
2025-05-30 14:54:49
37
原创 为什么使用消息队列?
消息队列的使用及选型考量 消息队列的核心价值在于解决系统架构中的三大问题:解耦系统间依赖、实现异步处理、应对流量高峰削峰。合理使用MQ能够降低系统耦合度,提升响应速度,缓冲突发流量,但同时也带来了系统复杂度增加、可用性降低等挑战。 主流消息队列对比: ActiveMQ/RabbitMQ:万级吞吐,适合中小规模场景 RocketMQ:十万级吞吐,支持大量Topic,阿里系首选 Kafka:超高吞吐,专为大数据场景优化,适合日志采集等实时计算 技术选型需结合具体业务场景,权衡吞吐量、延迟、可靠性等指标,没有绝对
2025-05-30 14:53:01
134
原创 Elasticsearch面试题带答案
本文汇总了Elasticsearch面试中常见的高级问题及其答案,涵盖了字典树、token filter、Elasticsearch索引、ELK日志分析、拼写纠错、Master选举、Explore API、GC注意事项、文档更新与删除、聚合等多个方面。这些问题不仅适用于应届生和实习生,也适合有工作经验的技术人员参考。通过这些问题,读者可以深入了解Elasticsearch的核心概念、工作原理及其在实际应用中的使用技巧,为面试和实际工作提供有力支持。
2025-05-20 17:30:19
943
原创 Elasticsearch高级面试题汇总及答案
本文汇总了Elasticsearch的高级面试题及其答案,涵盖了多个关键知识点。首先,介绍了Elasticsearch Analyzer的作用及其类型,包括内置和自定义分析器。其次,列举了Elasticsearch支持的配置管理工具,如Ansible、Chef等。接着,解释了logstash与Elasticsearch的结合使用方式,以及Elasticsearch在Linux部署时的优化方法,如内存、CPU、SSD等的选择与配置。此外,还讨论了Elasticsearch的冷热数据分离策略、不同软件包的重要性
2025-05-20 17:28:20
411
原创 深入了解 Java IO:各种流的分类与实际应用
好久没搞过 IO 了,老王看到这幅思维导图也是吃了一惊。想想也是,他当初学习 Java IO 的时候头也大,乌央乌央的一片,全是类,估计是所有 Java 包里面类最多的,一会是 Input 一会是 Output,一会是 Reader 一会是 Writer,真不知道 Java 的设计者是怎么想的。看着肺都快要气炸的小二,老王深深地吸了一口气,耐心地对小二说:“主要是 Java 的设计者考虑得比较多吧,所以 IO 给人一种很乱的感觉,我来给你梳理一下。
2025-01-21 16:28:52
78
原创 SSO 单点登录详解
SSO 英文全称 Single Sign On,单点登录。SSO 是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。例如你登录网易账号中心()之后访问以下站点都是登录状态。网易直播网易博客网易花田网易考拉网易 Lofter。
2025-01-21 16:12:18
169
原创 大数据中 TopK 问题的常用套路
比如,给出 10 个 int 类型的数据,分别是【13,12,11,1,2,3,4,5,6,7】,int 类型的数据每个占据 4 个字节,那这个数组就占据了 40 个字节。现在,把它们放到一个 16 个长度 bool 的 bitmap 中,结果就是【0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0】,在将空间占用降低至 4 字节的同时,也可以很方便的看出,最大的 3 个数字,分别是 11,12 和 13。字典树的思想,还是通过前期建立索引信息,后期可以反复多次查询,并且后期增删数据也很方便。
2025-01-18 10:42:40
457
原创 dubbo 的 spi 思想是什么?
注解标注了方法,在运行的时候会针对 Protocol 生成代理类,这个代理类的那俩方法里面会有代理代码,代理代码会在运行的时候动态根据 url 中的 protocol 来获取那个 key,默认是 dubbo,你也可以自己指定,你如果指定了别的 key,那么就会获取别的实现类的实例了。这行配置里,接着会根据你的配置使用你定义好的 MyProtocol 了,这个就是简单说明一下,你通过上述方式,可以替换掉大量的 dubbo 内部的组件,就是扔个你自己的 jar 包,然后配置一下即可。
2025-01-18 10:38:52
1005
原创 Hystrix 快速入门
Hystrix 是 Netflix 开源的一款容错框架,包含常用的容错方法:线程池隔离、信号量隔离、熔断、降级。Hystrix 官方宣布。但是 Hystrix 的客户端熔断保护,断路器设计理念,有非常高的学习价值。
2025-01-03 16:43:01
91
原创 Maven 教程之 pom.xml 详解
Maven 教程之 pom.xml 详解pom.xml 简介什么是 pomPOM 是 Project Object Model 的缩写,即项目对象模型。pom.xml 就是 maven 的配置文件,用以描述项目的各种信息。pom 配置一览<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
2025-01-03 16:41:21
592
原创 分库分表之后,id 主键如何处理?
更重要的是,UUID 不具有有序性,会导致 B+ 树索引在写的时候有过多的随机写操作(连续的 ID 可以产生部分顺序写),还有,由于在写的时候不能产生有顺序的 append 操作,而需要进行 insert 操作,将会读取整个 B+ 树节点到内存,在插入这条记录后会将整个节点写回磁盘,这种操作在记录占用空间比较大的情况下,性能下降明显。这个 snowflake 算法相对来说还是比较靠谱的,所以你要真是搞分布式 id 生成,如果是高并发啥的,那么用这个应该性能比较好,一般每秒几万并发的场景,也足够你用了。
2025-01-02 19:56:40
702
JAVA思维导图.rar
2025-05-15
Java基础知识点总结与实战指南PDF版
2024-12-26
Java架构面试专题汇总
2022-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人