自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot整合多数据源

SpringBoot整合多数据源

2024-04-07 11:09:12 202

原创 基于腾讯位置服务获取IP归属地实践

本文分析项目中获取外网IP地址以及调用腾讯地图接口获取IP归属地信息。

2022-08-26 16:10:57 1309 1

原创 JDK源码学习与分析之StringJoiner

StringJoiner作用是在构造字符串时,可以自动添加前缀、后缀及分隔符。源码比较简单。

2022-08-22 16:16:26 275

原创 JDK源码学习与分析之StringBuilder

相较于StringBuffer,StringBuilder不保证同步,所以不能安全使用多线程。但在非多线程的场景,性能略高于StringBuffer。读者可根据实际场景选择使用。

2022-08-20 21:15:48 344

原创 JDK源码学习与分析之StringBuffer

StringBuffer主要特性:①线程安全,我们可以看到基本上每个方法都由synchronized关键字所修饰;②可修改,字符串缓冲区就像一个String ,但可以修改。API提供了诸如append和insert等多种重载方法。

2022-08-20 17:29:49 563

原创 SpringBoot整合Lock4j

Lock4j是一个分布式锁组件,其提供了多种不同的支持以满足不同性能和环境的需求。简单易用,功能强大,扩展性强。支持redission,redisTemplate,zookeeper。可混用,支持扩展。

2022-07-14 22:38:48 2324

原创 JDK源码学习与分析之String

本文基于JDK1.8学习与分析String源码。String类是我们日常开发中最常用到的JDK类之一。而源码为我们提供了非常丰富的方法,能够实现项目中的各式各样对字符串操作的需求。比如我们熟悉的返回字符串长度的length(),返回字符串中指定位置的字符charAt,字符串转大小写的toUpperCase()/toLowerCase(),字符串拼接conncat(),字符串前后空格去除trim(),字符串比较、字符串截取、字符串格式化、其他类型数据和字符串转换等等。......

2022-06-10 21:49:30 201 1

原创 20220610其他:任务调度器

题目描述:给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。...

2022-06-10 11:37:03 66

原创 JDK源码学习与分析之Character

本文基于JDK1.8学习与分析Character源码。

2022-06-09 20:39:39 337

原创 20220609其他:多数元素

题目描述:给定一个大小为 的数组 ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。

2022-06-09 13:33:17 84

原创 JDK源码学习与分析之Boolean

本文基于JDK1.8学习与分析Boolean源码。

2022-06-08 19:37:15 161

原创 JDK源码学习与分析之Double

本文基于JDK1.8学习与分析Double源码。

2022-06-08 19:21:26 242

原创 JDK源码学习与分析之Float

本文基于JDK1.8学习与分析Float源码。

2022-06-08 10:50:07 188

原创 20220608其他:逆波兰表达式求值

根据逆波兰表示法,求表达式的值。有效的算符包括+、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意两个整数之间的除法只保留整数部分。

2022-06-08 09:46:59 83

原创 JDK源码学习与分析之Long

本文基于JDK1.8学习与分析Long源码。Long类包含一个对象中原始类型的值。 类型为的对象包含一个单一字段,其类型为 。此外,该类还提供了一些将转换为和转换为 ,以及在处理时有用的其他常量和方法。...

2022-06-07 22:38:53 219

原创 20220607其他:两整数之和

题目描述:给你两个整数,不使用运算符 + 和 - ,计算并返回两整数之和。

2022-06-07 13:34:09 73

原创 JDK源码学习与分析之Integer

本文基于JDK1.8学习与分析Integer源码。

2022-06-06 10:41:28 152

原创 20220606数学:分数到小数

题目描述:给定两个整数,分别表示分数的分子 和分母 ,以 字符串形式返回小数 。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个 。对于所有给定的输入,保证 答案字符串的长度小于10^4 。...

2022-06-06 09:25:10 88

原创 20220605数学:两数相除

题目描述:给定两个整数,被除数 和除数 。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 除以除数 得到的商。整数除法的结果应当截去()其小数部分。

2022-06-05 16:11:17 186

原创 JDK源码学习与分析之Short

本文基于JDK1.8学习与分析Short源码。Short类在一个对象中包含一个基本类型short的值。类型为Short的对象包含一个类型为short的单个字段。此外,该类还提供了几种将short转换为String和String转换为short,以及在处理short时有用的其他常数和方法。.........

2022-06-04 10:50:10 156

原创 20220604数学:x的平方根

题目描述:给你一个非负整数 ,计算并返回 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

2022-06-04 10:08:55 104

原创 JDK源码学习与分析之Byte

基于JDK1.8学习与分析Byte源码。

2022-06-03 11:24:22 109

原创 20220603数学:Pow(x,n)

题目描述:实现 pow(x, n) ,即计算 的 次幂函数(即, )。

2022-06-03 09:38:42 61

原创 20220602数学:Excel表列序号

题目描述:给你一个字符串 ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。

2022-06-02 09:14:08 92

原创 20220601数学:阶乘后的零

题目描述:给定一个整数 ,返回 结果中尾随零的数量。

2022-06-01 09:18:41 71

原创 20220531数学:快乐数

题目描述:编写一个算法来判断一个数 n 是不是快乐数。快乐数定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。 编码实现: public static boolean isHappy(int n) { ...

2022-05-31 10:13:37 76

原创 20220530设计问题:常数时间插入、删除和获取随机元素

题目描述:实现RandomizedSet类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true ;否则,返回 false 。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)...

2022-05-30 18:10:35 45

原创 20220529设计问题:二叉树的序列化与反序列化

题目描述:序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 编码实现: private static final String TMP= "-...

2022-05-29 21:41:16 57

原创 20220528动态规划:最长递增子序列

题目描述:给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 编码实现: public int lengthOfLIS(int[] nums) { if (null == nums){ return 0; } int s...

2022-05-28 11:35:26 78

原创 20220527动态规划:零钱兑换

题目描述:给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。 编码实现: public int coinChange(int[] coins, int amount) { int[] dp = new int[amount+1]; for(int i =...

2022-05-27 08:32:26 71

原创 20220526动态规划:不同路径

题目描述:一个机器人位于一个m x n网格的左上角 。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径? 编码实现: public int uniquePaths(int m, int n) { if (m == 1 || n == 1) { return 1; } int [][]matrix = new int[m][n]; ...

2022-05-26 10:12:30 47

原创 20220525动态规划:跳跃游戏

题目描述:给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。 编码实现: public boolean canJump(int[] nums) { int tmp = nums[0]; for (int i = 1; i < nums.length - 1; i++) { if (i <= tmp)...

2022-05-25 09:20:41 181

原创 20220524搜索和排序:搜索二维矩阵II

题目描述:编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 编码实现: public boolean searchMatrix(int[][] matrix, int target) { int row = 0,column = matrix[0].length - 1; while (row < ma...

2022-05-24 11:18:13 83

原创 20220523搜索和排序:搜索旋转排序数组

题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数...

2022-05-23 09:16:55 50

原创 20220522搜索和排序:合并区间

题目描述:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 编码实现: List<int[]> result = new ArrayList<>(); Arrays.sort(intervals, (a, b) -> Integer.comp...

2022-05-22 10:27:52 76

原创 20220521搜索和排序:在排序数组中查找元素的第一个和最后一个位置

题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。 编码实现: public int[] searchRange(int[] nums, int target) { int[] result = new int[2]; result[0] = -1; result[1] = -1...

2022-05-21 13:53:45 62

原创 20220520搜索和排序:寻找峰值

题目描述:峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。你必须实现时间复杂度为O(log n)的算法来解决此问题。 编码实现: public int findPeakElement(int[] nums) { int result = 0; wh...

2022-05-20 09:09:49 119

原创 SpringBoot封装自己的starter

本文演示如何封装自己的SpringBoot starter。一、新建一个SpringBoot项目my-spring-boot-starter项目目录结构如下:二、项目依赖文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc...

2022-05-19 13:51:03 2267 1

原创 20220519搜索和排序:数组中的第K个最大元素

题目描述:给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。 编码实现: public int findKthLargest(int[] nums, int k) { PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(); for (int...

2022-05-19 08:38:02 81

原创 SpringBoot整合MyBatis-Plus

本文演示SpringBoot整合MyBatis-Plus。一、项目搭建新建一个SpringBoot项目,引入依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</ar...

2022-05-18 21:22:21 294

空空如也

空空如也

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

TA关注的人

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