自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式&分布式事务&分布式锁&分布式ID

分布式架构的应用十分广泛:分布式系统的目标是提升系统的整体性能和吞吐量另外还要尽量保证分布式系统的容错性。分布式系统 2 大设计思路:分布式集群中的节点机器按照角色分工,大体上分为两种角色:“领导”和“员工”。“领导”通常负责分发任务并监督“员工”,发现谁太闲了,就想发设法地给其安排新任务,确保没有一个“干活的”能够偷懒,如果“领导”发现某个“干活的”因为劳累过度而病倒了,则是不会考虑先尝试“医治”他的,而是一脚踢出去,然后把他的任务分给其他人。最大问题是“领导”的安危问题,如果“领导”出了问题,则群龙无首

2023-12-06 16:19:04 1576

原创 Java编码规范

有含义,有意义;管理常量要分类,不同模块、不同项目、不同功能等;常量类列表,建议不超过10个;

2023-08-24 16:37:23 485

原创 异常处理规范

不同场景如何抛出异常;抛出什么类型异常;异常如何处理;如何友好的展示或输出;异常出现后,该如何加快问题解决;对某类场景,有特殊处理需求时,可以定义异常;有特殊显示需求时,可以定义异常;为了区分某类错误时,可以定义异常;底层异常不够友好、不方便分析判断时,可以定义异常;正常业务逻辑,不允许使用异常来定义;无特殊原因,直接向上抛出原始异常即可;

2023-08-22 08:10:33 427

原创 如何在项目中打日志

如何在项目中打日志

2023-01-09 13:43:51 680 2

原创 BigDecimal详解及注意事项

BigDecimal详解

2022-12-29 13:31:45 1450

原创 SpringBoot常用注解

SpringBoot常用注解

2022-12-27 13:48:30 5013 2

原创 Java Stream类常见用法

Java Stream类常见用法

2022-08-31 12:05:21 3009

原创 Maven知识点汇总

目录Maven构建Maven跨平台的项目管理工具(无论是在Windows上,还是在Linux或者Mac上,都可以使用同样的命令);主要服务于基于Java平台的项目构建、依赖管理和项目信息管理;构建编译、运行单元测试、生成文档、打包和部署等。...............................................................

2022-05-15 23:34:34 1103

原创 编程常用英语单词

目录revisionrevision修订

2022-05-11 14:26:08 410

原创 一键导出 CSDN 自己博客所有文章

点击链接:https://blog-console-api.csdn.net/F12 -> console:var s=document.createElement('script');s.type='text/javascript';document.body.appendChild(s);s.src='//cdn.jsdelivr.net/gh/ame-yu/csdn-move@latest/dist/index.js';让子弹飞一会,得到csdn-blog-md 压缩包文件,解压后.

2022-05-10 12:09:02 669 5

原创 Linux笔记

目录列出当前工作目录内容显示当前工作目录切换文件路径显示系统运行进程切换不同用户在给定的文件中搜寻指定的字符串文本编辑一般模式常用操作快速移动光标查找删除复制粘贴撤销/重复一般模式切换到编辑模式进入插入模式进入替换模式退出编辑模式到一般模式一般模式切换到命令行模式删除文件/目录列出当前工作目录内容ls显示当前工作目录pwd切换文件路径cd显示系统运行进程ps切换不同用户su。sudo用来以其他身份来执行命令,预设的身份为root在给定的文件中搜寻指定的字符串grepgrep -i

2022-05-09 11:24:48 704

原创 Mac快捷键

目录锁屏选择应用程序强制退出打开访达打开聚焦搜索最小化当前应用窗口新建当前应用窗口关闭当前应用窗口退出当前应用新建标签页切换标签页切换不同应用显示/隐藏桌面预览文件恢复不小心关闭的网页锁屏control+command+Q选择应用程序强制退出option+command+esc打开访达option+command+空格打开聚焦搜索command+空格最小化当前应用窗口command+M新建当前应用窗口command+N关闭当前应用窗口command+W退出当前应用comman

2022-05-08 22:37:43 652

原创 Vim常用命令

目录一般模式常用操作快速移动光标查找删除复制粘贴撤销/重复一般模式切换到编辑模式进入插入模式进入替换模式退出编辑模式到一般模式一般模式切换到命令行模式一般模式常用操作快速移动光标移动光标至最后一行:G移动光标至第一行:gg移动光标至行尾:$移动光标至行首:^屏幕向下移动一页:ctrl+f屏幕向上移动一页:ctrl+b查找所在光标处向下查找字符串“word":/word所在光标处向上查找字符串“word":?word查找下一个:n查找上一个:N删除向后删除一个字符:x

2022-03-29 15:31:42 599 1

原创 IDEA操作

目录当前文件查找全局查找当前文件查找替换全局查找替换自动生成类型及变量名按文件名查找文件查找所有的菜单或操作查找文件、菜单、操作等,但不能查找文件内容查看复制历史当前文件查找Ctrl + F全局查找Ctrl + Shift + F当前文件查找替换Ctrl + R全局查找替换Ctrl + Shift + R自动生成类型及变量名Ctrl + Alt + V按文件名查找文件Ctrl + Shift + N查找所有的菜单或操作Ctrl + Shift + A查找文件、菜单、操作等,但不

2022-02-07 18:41:38 135

原创 Kafka

1 Kafka 的相关概念Kafka 是一种高吞吐、分布式、基于发布订阅模型的消息系统。Kafka 用于离线和在线消息的消费。主要有以下 3 个功能:消息队列:发布和订阅消息流;容错的持久化方式存储记录消息流:Kafka 将消息数据按顺序保存在磁盘上,并在集群内以副本的形式存储以防止数据丢失;流式处理平台:在消息发布的时候进行处理,Kafka 提供了一个完整的流式处理类库;此外,Kafka 依赖 Zookeeper 进行集群的管理。1.1 Message消息(Message)是 Kafka

2022-01-06 22:13:34 855

原创 消息队列简介

消息队列中间件是分布式系统中重要的组件,主要用于:异步处理,应用解耦,流量削锋,消息通讯等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。

2022-01-03 20:57:02 959

原创 Java内部类

目录0 简介1 成员内部类2 局部内部类3 匿名内部类4 静态内部类5 内部类的优点6 局部内部类和匿名内部类访问局部变量时,为什么变量必须加上final?0 简介Java内部类包括四种:成员内部类、局部内部类、匿名内部类和静态内部类。1 成员内部类成员内部类位于另一个类的内部,其可以无条件访问外部类的所有成员属性和成员方法(包括private成员和static成员)。class Outer { private double a = 0; public static int b

2021-12-10 19:54:34 363

原创 Git知识点汇总

0 图解Workspace:工作区;Index / Stage:暂存区;Repository:仓库区(或本地仓库);Remote:远程仓库;1 新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]2 配置Git的配置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目

2021-10-15 11:49:55 434

原创 数据库

目录事务试述事务的概念及事务的4个特性并发操作可能会产生哪几类数据不一致不可重复读和幻读区别是什么?事务隔离级别事务并发访问引起的问题及使用哪种事务隔离级别避免MVCCMVCC的当前读和快照读MVCC的实现原理undo日志MySQL 中事务隔离级别的实现索引索引索引的优缺点主键索引(聚簇索引)、辅助索引(普通索引)、覆盖索引使用索引要注意什么?创建索引要注意什么MySQL中InnoDB和MyISAM使用索引的区别B树B+树HASH索引MySQL索引的类型有哪些?如何创建/删除索引创建索引删除索引什么是前缀索

2021-10-07 11:35:48 737 1

原创 Spring 事务管理

目录编程式事务和声明式事务编程式事务声明式事务比较Spring 事务管理Spring 中事务隔离级别Spring 七种事务传播类型编程式事务和声明式事务编程式事务指的是通过编码方式实现事务,类似 JDBC 编程实现事务管理,比如 jdbcTemplate、TransactionalTemplate。声明式事务声明式事务实现方式:XML 实现@Transactional 注解实现比较编程式事务:优点:显示调用,不易出错缺点:侵入式代码,编码量大声明式事务:优点:简洁,对代码入侵小

2021-08-29 11:50:21 196

原创 IDEA使用Debug调试项目技巧总结

目录1 Debug开篇2 基本用法和快捷键3 智能步入4 断点条件设置1 Debug开篇开发中,可以使用Debug来追踪代码的运行流程;如果程序运行中出现异常,启用Debug模式可以定位异常发生的位置、以及在运行过程中参数的变化;也可以启用Debug模式来追踪代码的运行流程去学习第三方框架的源码;首先看下IDEA中Debug模式下的界面,如下是在IDEA中启动Debug模式,进入断点后的界面:以Debug模式启动服务;断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点;

2021-08-21 07:01:02 1855

原创 Leetcode_数学、位运算

目录汉明距离1 题目描述2 解题(Java)2.1 方法一:异或 + 无符号右移2.2 方法二:z = z & (z−1)3 复杂性分析比特位计数1 题目描述2 解题(Java)3 复杂性分析只出现一次的数字1 题目描述2 解题(Java)3 复杂性分析不用加减乘除做加法1 题目描述2 解题(Java)2.1 解题思路2.2 代码3 复杂性分析二进制中1的个数1 题目描述2 解题(Java)3 复杂性分析数值的整数次方1 题目描述2 解题(Java)2.1 解题思路2.1.1 快速幂解析(二进制角度

2021-08-20 19:21:37 631 1

原创 Leetcode_双指针、滑动窗口

目录找到字符串中所有字母异位词1 题目描述2 解题(Java)3 复杂性分析移动零1 题目描述2 解题(Java)3 复杂性分析滑动窗口的最大值1 题目描述2 解题(Java)2.1 解题思路2.2 算法流程2.3 代码3 复杂性分析和为s的连续正数序列1 题目描述2 解题(Java)2.1 解题思路2.2 算法流程2.3 代码3 复杂性分析最小覆盖子串1 题目描述2 解题(Java)3 复杂性分析调整数组顺序使奇数位于偶数前面1 题目描述2 解题(Java)3 复杂性分析和为s的两个数字1 题目描述2 解

2021-08-20 17:57:02 620 1

原创 Leetcode_排序

目录数组中重复的数字1 题目要求2 解题(Java)2.1 解题思路2.2 代码3 复杂度分析根据身高重建队列1 题目描述2 解题(Java)3 复杂性分析移动零1 题目描述2 解题(Java)3 复杂性分析数组中的第K个最大元素1 题目描述2 解题(Java)3 复杂性分析下一个排列1 题目描述2 解题(Java)3 复杂性分析合并区间1 题目描述2 解题(Java)3 复杂性分析二维数组中的查找1 题目描述2 解题(Java)3 复杂性分析数组中的逆序对1 题目描述2 解题(Java)3 复杂性分析把数

2021-08-20 15:16:05 259 1

原创 Leetcode_分治算法

目录合并K个升序链表1 题目描述2 解题(Java)3 复杂性分析表达式求值1 题目描述2 解题(Java)3 复杂性分析排序链表1 题目描述2 解题(Java)3 复杂性分析合并K个升序链表1 题目描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3-&

2021-08-20 13:28:24 228

原创 Leetcode_栈、队列

目录每日温度1 题目描述2 解题(Java)3 复杂性分析字符串解码1 题目描述2 解题(Java)2.1 解法一:栈2.2 解法二:递归最大矩形1 题目描述2 解题(Java)3 复杂性分析滑动窗口的最大值1 题目描述2 解题(Java)2.1 解题思路2.2 算法流程2.3 代码3 复杂性分析字符串变形1 题目描述2 解题(Java)3 复杂性分析表达式求值1 题目描述2 解题(Java)3 复杂性分析基本计算器1 题目描述2 解题(Java)3 复杂性分析从尾到头打印链表1 题目描述2 解题(Java

2021-08-20 12:28:26 212

原创 LeetCode_多线程

目录哲学家进餐1 题目描述2 解题(Java)交替打印字符串1 题目描述2 解题(Java)H2O 生成1 题目描述2 解题(Java)打印零与奇偶数1 题目描述2 解题(Java)交替打印FooBar1 题目描述2 解题(Java)按序打印1 题目描述2 解题(Java)2.1 解法1:共享变量2.2 解法2:信号量哲学家进餐1 题目描述5 个沉默寡言的哲学家围坐在圆桌前,每人面前一盘意面。叉子放在哲学家之间的桌面上。(5 个哲学家,5 根叉子)所有的哲学家都只会在思考和进餐两种行为间交替。哲学家

2021-08-20 10:51:19 413

原创 Leetcode_DFS、BFS

目录目标和1 题目描述2 解题(Java)3 复杂性分析路径总和 III1 题目描述2 解题(Java)3 复杂性分析目标和1 题目描述给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数

2021-08-19 22:58:22 482

原创 Leetcode_链表

目录1 寻找重复数1 题目描述2 解题(Java)3 复杂性分析2 回文链表1 题目描述2 解题(Java)3 复杂性分析1 寻找重复数1 题目描述给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有一个重复的整数 ,找出 这个重复的数 。你设计的解决方案必须不修改数组 nums 且只用常量级 O(1) 的额外空间。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:

2021-08-19 11:10:16 255

原创 Leetcode_Map、Set

目录和为K的子数组1 题目描述2 解题(Java)3 复杂性分析目标和1 题目描述2 解题(Java)3 复杂性分析前 K 个高频元素1 题目描述2 解题(Java)3 复杂性分析最长连续序列1 题目描述2 解题(Java)3 复杂性分析扑克牌中的顺子1 题目描述2 解题(Java)3 复杂性分析最小覆盖子串1 题目描述2 解题(Java)3 复杂性分析字母异位词分组1 题目描述2 解题(Java)3 复杂性分析两数之和1 题目描述2 解题(Java)3 复杂度分析复杂链表的复制1 题目描述2 解题(jav

2021-08-17 15:24:52 288

原创 Leetcode_模拟

目录左旋转字符串1 题目描述2 解题(Java)2.1 解题思路2.2 代码3 复杂性分析LRU 缓存机制1 题目描述2 解题(Java)旋转图像1 题目描述2 解题(Java)3 复杂性分析顺时针打印矩阵1 题目描述2 解题(Java)3 复杂性分析两数相加1 题目描述2 解题(Java)2.1 思路2.2 代码3 复杂性分析栈的压入、弹出序列1 题目描述2 解题(Java)3 复杂性分析替换空格1 题目描述2 解题(Java)3 复杂性分析设计LRU缓存结构1 题目描述2 解题(Java)左旋转字符串

2021-08-17 13:40:24 397

原创 Leetcode_并查集

目录朋友圈1 题目描述2 解题(Java)3 复杂性分析朋友圈1 题目描述一个班上有 n 个同学,其中一些彼此是朋友,另一些不是。朋友关系是可以传递的,如果 a 与 b 直接是朋友,且 b 与 c 是直接朋友,那么 a 与 c 就是间接朋友。定义 朋友圈 就是一组直接或者间接朋友的同学集合。给定一个 n x n 的矩阵 isConnected 表示班上的朋友关系,其中 isConnected[i][j] = 1 表示第 i 个同学和第 j 个同学是直接朋友,而 isConnected[i][j]

2021-08-17 10:40:26 379

原创 Leetcode_二分法

排序链表1 题目描述给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 10 ^ 4] 内-10 ^ 5

2021-08-16 22:56:49 435

原创 Leetcode_树、堆

目录合并二叉树1 题目描述2 解题(Java)3 复杂性分析二叉树的直径1 题目描述2 解题(Java)3 复杂性分析把二叉搜索树转换为累加树1 题目描述2 解题Java3 复杂性分析路径总和 III1 题目描述2 解题(Java)3 复杂性分析前 K 个高频元素1 题目描述2 解题(Java)3 复杂性分析打家劫舍 III1 题目描述2 解题(Java)3 复杂性分析实现 Trie1 题目描述2 解题(Java)3 复杂性分析二叉树中的最大路径和1 题目描述2 解题(Java)3 复杂性分析二叉树展开为链

2021-08-16 11:05:31 230

原创 Leetcode_动态规划、迭代

目录回文子串1 题目描述2 解题(Java)2.1 动态规划法2.2 中心扩展法最短无序连续子数组1 题目描述2 解题(Java)3 复杂性分析分割等和子集1 题目描述2 解题(Java)2.1 解题思路:动态规划2.2 Java代码3 复杂性分析比特位计数1 题目描述2 解题(Java)3 复杂性分析打家劫舍 III1 题目描述2 解题(Java)3 复杂性分析零钱兑换1 题目描述2 解题(Java)3 复杂性分析戳气球1 题目描述2 解题(Java)3 复杂性分析最佳买卖股票时机含冷冻期1 题目描述2

2021-08-15 13:24:29 601 2

原创 计数排序(Java)

目录1 简介2 代码实现3 复杂性分析1 简介计数排序统计小于等于该元素值的元素的个数i,于是该元素就放在目标数组的索引i位(i≥0)。2 代码实现public class SortCount { public static void main(String[] args) { int[] arr = {1,4,6,7,5,4,3,2,1,4,5,10,9,10,3}; sortCount(arr, 1, 10); System.out.pr

2021-07-23 18:03:09 100

原创 海量数据处理

目录0 概述1 哈希分治1.1 寻找 TOP IP1.2 寻找热门查询1.3 寻找频数最高的 100 个词1.4 寻找共同的 URL2 位图2.1 2.5 亿个数的去重2.2 整数的快速查询3 布隆过滤器3.1 寻找通过 URL3.2 垃圾邮件过滤4 Trie 树(字典树)4.1 10 个频繁出现的词(似乎HashMap更合适)4.2 寻找热门查询(似乎HashMap更合适)5 数据库6 倒排索引0 概述海量数据处理是指基于海量数据的存储和处理。正因为数据量太大,所以导致要么无法在较短时间内迅速解决,

2021-07-21 11:50:54 400

原创 Java多线程

目录并发与并行Java线程的7种状态一张图总结Java线程状态Java线程创建的4种方式start()和run()的区别实现Runnable接口比继承Thread类的优势为什么使用线程池执行execute()方法和submit()方法的区别?5种常用线程池(通过Executor框架的工具类Executors来实现)如何创建线程池(尚未完成)方式一:通过ThreadPoolExecutor构造方法创建方法二:通过Executor框架的工具类Executors来实现synchronizedsynchronize

2021-07-07 13:30:19 698

原创 IO知识点汇总

目录IO模型1 字节流、字符流1.1 字节与字符1.2 字节流1.3 字符流1.4 互相转换2 输入流、输出流3 字节流和字符流之间的相互转换3.1 字符流转成字节流3.2 字节流转成字符流4 同步和异步、阻塞和非阻塞4.1 同步/异步4.2 阻塞/非阻塞同步调用与异步调用5 Linux5种IO模型5.1 阻塞式IO模型5.2 非阻塞IO模型5.3 IO复用模型5.4 信号驱动IO模型5.5 异步IO模型6 BIO、NIO和AIO6.1 BIO6.2 NIO6.3 AIO7 NettyIO模型IO模型

2021-07-07 13:27:27 424 2

原创 机器学习

目录特征归一化为什么要归一化归一化的方法归一化的应用与局限决策树特征归一化对数值类型的特征作归一化可以将所有的特征都统一到一个大致相同的数值区间内。为什么要归一化为了消除数据特征之间的量纲影响,使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用米(m)和千克(kg)作为单位,那么身高特征在1.6-1.8的数值范围内,体重特征在50-100的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。想要得到更为准确的结果,就需要进行特征归一化处理,使各指标处于同一数值量

2021-06-30 19:08:37 367

空空如也

空空如也

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

TA关注的人

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