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

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

原创 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
25943
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
485
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
435

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

原创 常见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
1942

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

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

原创 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
126

原创 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
457
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
157
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
620

原创 Linux常见操作命令整理
常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch 创建空文件echo 创建带有内容的文件。cat 查看文件内容cp
2020-06-16 17:00:26
134
原创 深入了解 Java IO:各种流的分类与实际应用
好久没搞过 IO 了,老王看到这幅思维导图也是吃了一惊。想想也是,他当初学习 Java IO 的时候头也大,乌央乌央的一片,全是类,估计是所有 Java 包里面类最多的,一会是 Input 一会是 Output,一会是 Reader 一会是 Writer,真不知道 Java 的设计者是怎么想的。看着肺都快要气炸的小二,老王深深地吸了一口气,耐心地对小二说:“主要是 Java 的设计者考虑得比较多吧,所以 IO 给人一种很乱的感觉,我来给你梳理一下。
2025-01-21 16:28:52
34
原创 SSO 单点登录详解
SSO 英文全称 Single Sign On,单点登录。SSO 是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。例如你登录网易账号中心()之后访问以下站点都是登录状态。网易直播网易博客网易花田网易考拉网易 Lofter。
2025-01-21 16:12:18
133
原创 大数据中 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
417
原创 dubbo 的 spi 思想是什么?
注解标注了方法,在运行的时候会针对 Protocol 生成代理类,这个代理类的那俩方法里面会有代理代码,代理代码会在运行的时候动态根据 url 中的 protocol 来获取那个 key,默认是 dubbo,你也可以自己指定,你如果指定了别的 key,那么就会获取别的实现类的实例了。这行配置里,接着会根据你的配置使用你定义好的 MyProtocol 了,这个就是简单说明一下,你通过上述方式,可以替换掉大量的 dubbo 内部的组件,就是扔个你自己的 jar 包,然后配置一下即可。
2025-01-18 10:38:52
977
原创 Hystrix 快速入门
Hystrix 是 Netflix 开源的一款容错框架,包含常用的容错方法:线程池隔离、信号量隔离、熔断、降级。Hystrix 官方宣布。但是 Hystrix 的客户端熔断保护,断路器设计理念,有非常高的学习价值。
2025-01-03 16:43:01
66
原创 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
540
原创 分库分表之后,id 主键如何处理?
更重要的是,UUID 不具有有序性,会导致 B+ 树索引在写的时候有过多的随机写操作(连续的 ID 可以产生部分顺序写),还有,由于在写的时候不能产生有顺序的 append 操作,而需要进行 insert 操作,将会读取整个 B+ 树节点到内存,在插入这条记录后会将整个节点写回磁盘,这种操作在记录占用空间比较大的情况下,性能下降明显。这个 snowflake 算法相对来说还是比较靠谱的,所以你要真是搞分布式 id 生成,如果是高并发啥的,那么用这个应该性能比较好,一般每秒几万并发的场景,也足够你用了。
2025-01-02 19:56:40
669
原创 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
举个例子吧,假如你每页是 10 条数据,你现在要查询第 100 页,实际上是会把每个 shard 上存储的前 1000 条数据都查到一个协调节点上,如果你有个 5 个 shard,那么就有 5000 条数据,接着协调节点对这 5000 条数据进行一些合并、处理,再获取到最终第 100 页的 10 条数据。这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?举个例子,拿微博来说,你可以把一些大V,平时看的人很多的数据,你自己提前后台搞个系统,每隔一会儿,自己的后台系统去搜索一下热数据,刷到。
2025-01-02 19:55:08
392
原创 Redis核心技术知识点全集
持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。应用层:如果关闭(shutdown)你的应用然后重新启动则先前的数据依然存在。系统层:如果关闭(shutdown)你的系统(电脑)然后重新启动则先前的数据依然存在。Redis内存淘汰策略是指当缓存内存不足时,通过淘汰旧数据处理新加入数据选择的策略。
2024-12-31 10:54:53
252
原创 20道Redis面试题核心技术知识点
Redis全称为:Remote Dictionary Server(远程数据服务),Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。特点1:丰富的数据类型传统SQL数据库处理二维关系数据;MemCached数据库,键和值都是字符串;文档数据库(MongoDB)是由Json/Bson组成的文档。
2024-12-31 10:53:20
339
原创 保姆级Git教程,10000字详解
Git是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用Git来做自己的文档版本管理工具。大概是大二的时候开始接触和使用Git,从一开始的零接触到现在的重度依赖,真是感叹Git的强大。Git的api很多,但其实平时项目中90%的需求都只需要用到几个基本的功能即可,所以本文将从实用主义和深入探索2个方面去谈谈如何在项目中使用Git,一般来说,看完实用主义这一节就可以开始在项目中动手用。
2024-12-30 15:26:43
1387
原创 分享 4 个阅读源码必备的 IDEA 调试技巧
相信有以上四种调试技巧的加成,无论是工作debug 还是私下阅读源码,都可以轻松驾驭了。最后,来看看 IDEA 支持的各种断点调试类型,如果你只知道红色小圆点,那咱在留言区好好说说吧微信搜后端学习指南或扫描下方二维码关注公众号,回复222即可免费领取。
2024-12-28 11:45:08
871
原创 装了我这 10 个 IDEA 神级插件后,同事也开始情不自禁的嘚瑟了
以上这 10 款 Intellij IDEA 插件也是我平常开发中经常用到的,如果大家有更好更效率的插件,也可以评论里留言。微信搜后端学习指南或扫描下方二维码关公众号,回复222即可免费领取。
2024-12-28 11:43:25
1496
原创 如何实现 MySQL 的读写分离?
高并发这个阶段,肯定是需要做读写分离的,啥意思?缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况,当这个 key 在失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是在一道屏障上凿开了一个洞。其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。
2024-12-26 17:32:12
1188
原创 Java 定时任务详解
单机定时任务的常见解决方案有TimerDelayQueue、Spring Task 和时间轮,其中最常用也是比较推荐使用的是时间轮。另外,这几种单机定时任务解决方案同样可以实现延时任务。Redis 和 MQ 虽然可以实现分布式定时任务,但这两者本身不是专门用来做分布式定时任务的,它们并不提供较为完整和强大的分布式定时任务的功能。而且,两者不太适合执行周期性的定时任务,因为它们只能保证消息被消费一次,而不能保证消息被消费多次。因此,它们更适合执行一次性的延时任务,例如订单取消、红包撤回。
2024-12-26 17:27:49
1191
原创 Dubbo最新2024年面试题大汇总,附答案
rmi:采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要实现Serializable 接口,使用 java 标准序列化机制,使用阻塞式短连接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,传输协议 TCP。多个短连接, TCP 协议传输,同步传输,适用常规的远程服务调用和 rmi 互操作。当然Dubbo的重试机制其实是非常好的QOS保证,它的路由机制,是会帮你把超时的请求路由到其他机器上,而不是本机尝试,所以 dubbo的重试机器也能一定程度的保证服务的质量。
2024-12-25 17:09:59
866
原创 RabbitMQ入门教程(概念、应用场景、安装、使用)
人一辈子最值得炫耀的不应该是你的财富有多少(虽然这话说得有点违心,呵呵),而是你的学习能力。技术更新迭代的速度非常快,那作为程序员,我们就应该拥有一颗拥抱变化的心,积极地跟进。小伙伴们在继续阅读之前,我必须要声明一点,我对 RabbitMQ 并没有进行很深入的研究,仅仅是因为要用,就学一下。当然了,小伙伴们遇到文章中有错误的地方,不要手下留情,可以组团过来捶我,但要保证一点,不要打脸,我怕毁容。
2024-12-25 17:00:13
113
原创 全网最详细的Spring入门教程
首先入口是xml或者注解或者其他形式,要实现beanDefinationReader接口,然后 读取的时候,会将他们解析为bean的定义信息;beanFactory在加载bean信息实例化(底层用的反射)之前,spring加了一个接口beanFactoryPostProcessor,用作扩展用。beanFactory内部实例化bean之后,在要初始化bean对象之前,增加了一个一系列aware接口,将他的容器,以及工厂都暴露出来供使用者做扩展用。
2024-12-24 17:20:30
1084
原创 MyBatis常见面试题总结
虽然 MyBatis 解析 xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以定义在任何地方,MyBatis 都可以正确识别。原理是,MyBatis 解析 A 标签,发现 A 标签引用了 B 标签,但是 B 标签尚未解析到,尚不存在,此时,MyBatis 会将 A 标签标记为未解析状态,然后继续解析余下的标签,包含 B 标签,待所有标签解析完毕,MyBatis 会重新解析那些被标记为未解析的标签,此时再解析 A 标签时,B 标签已经存在,A 标签也就可以正常解析完成了。
2024-12-20 09:31:50
822
原创 10 分钟快速搞懂 Lambda 表达式
就可以用Lambda表达式简化函数式接口:接口中有且只有一个未实现的方法,这个接口就叫函数式接口如果接口中有超过一个未实现方法,则不是函数式接口,不能用Lambda表达式 如果接口中有一个未实现方法,有一个默认实现方法,则是函数式接口,可以用Lambda表达式。
2024-12-19 17:15:39
44
1
原创 Github实用小技巧总结
你在 Github 上看到的项目徽章都是通过这个网站生成的。并且,你不光可以生成静态徽章,shield.io 还可以动态读取你项目的状态并生成对应的徽章。生成的描述项目状态的徽章效果如下图所示。
2024-12-19 15:14:34
816
原创 Git核心概念总结
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。除了项目源代码,你可以对任何类型的文件进行版本控制。
2024-12-19 15:11:01
865
Java基础知识点总结与实战指南PDF版
2024-12-26
Java架构面试专题汇总
2022-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人