![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
养兔兔也
这个作者很懒,什么都没留下…
展开
-
判断是否回文链表遇到的问题
public static void main(String[] args) { ListNode l5 = null; ListNode l4 = new ListNode(1,l5); ListNode l3 = new ListNode(2, l4); ListNode l2 = new ListNode(1,l3); ListNode head= new ListNode(1,l2); boolean原创 2021-10-22 14:31:38 · 63 阅读 · 0 评论 -
synchronized与ReentrantLock的区别
添加链接描述原创 2021-10-09 15:38:59 · 47 阅读 · 0 评论 -
短网址生成
首先在用户输入一条长链接传到后端的时候,我先生成了数字和字母随机组成的6位字符,然后把这个字符和长链接保存到数据库。保存成功后,把这6位字符拼上我的网址,返回给用户,就像是这样的https://wjup.top/HtN3Gc当用户拿到这个短网址访问的时候。我在后台进行获取这个短网址的6个字符,然后根据这个字符到数据库查询原来的链接,再进行301永久重定向到原网址就可以了。整体实现非常简单。当然我还增加了对短网址加密的功能,只有输入正确的密码才能访问原始链接生成随机数字和字母的代码private .原创 2021-09-28 21:04:07 · 915 阅读 · 0 评论 -
使用redis整合springboot实现分布式锁
使用redis整合springboot实现分布式锁:分布式锁:在对图片进行标注的时候,为了保证数据一致性的问题,只能有一个用户进行操作标记,其他的用户等到当前用户取消对图片的操作之后才能进行访问。整体的处理逻辑: 首先创建锁的实体MathodLock,添加用户图片等属性。在图片控制类中将判断是否获得锁并且加到表boolean flag = redisService.lock(String.valueOf(id),String.valueOf(userId)); if (fla原创 2021-09-15 20:26:37 · 131 阅读 · 0 评论 -
Java中&&和&,||和|的区别
Java中&&和&,||和|的区别欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markd原创 2021-08-10 15:52:55 · 49 阅读 · 0 评论 -
java的reference用法
java的reference的默认初始值为null;java引用分为四种:强引用软引用弱引用虚引用详解原创 2021-07-28 20:42:00 · 225 阅读 · 0 评论 -
为什么要引入CFS
原创 2021-07-22 20:37:52 · 65 阅读 · 0 评论 -
java力扣问题
public TreeNode searchBST(TreeNode root, int val) { if(root == null) return null; if(root.val == val ) return root; if(root.val < val ){ return searchBST(root.right,val); } if(root.val >val ){ .原创 2021-07-22 17:36:31 · 114 阅读 · 0 评论 -
springBoot实现roketMQ
java解析properties后缀的文件springBoot实现roketMQ转载 2021-07-19 09:50:54 · 98 阅读 · 0 评论 -
kafka日志清理以及删除topic
删除topic原创 2021-07-14 20:26:04 · 401 阅读 · 1 评论 -
集成springboot使用rocketmq來实现异步生成coco数据集
目前主流的MQ主要是Rocketmq、kafka、Rabbitmq,Rocketmq相比于Rabbitmq、kafka具有主要优势特性有:• 支持事务型消息(消息发送和DB操作保持两方的最终一致性,rabbitmq和kafka不支持)• 支持结合rocketmq的多个系统之间数据最终一致性(多方事务,二方事务是前提)• 支持18个级别的延迟消息(rabbitmq和kafka不支持)• 支持指定次数和时间间隔的失败消息重发(kafka不支持,rabbitmq需要手动确认)• 支持consumer端t转载 2021-07-08 09:56:23 · 198 阅读 · 0 评论 -
zookeeper作为dubbo注册中心报错
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2021-06-01 17:44:36.658 ERROR 24784 --- [ main] o.s.boot.SpringApplication : Application run failedjava.lang.Illegal原创 2021-06-01 17:51:48 · 300 阅读 · 0 评论 -
java.lang.NoClassDefFoundError
Error creating bean with name 'taskController': Injection of @Reference dependencies is failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/security/core/userdetails/UserDetailsdubbo进行通信时遇到此问题解决办法:在pom.xml中加入依赖: <depende原创 2021-05-27 13:56:57 · 325 阅读 · 0 评论 -
动态规划力扣java
区域和检索 - 数组不可变给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。输入:[[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]]输出:[null, 1, -1, -3]要计算 sumRange(i,j),则需要计算数组 nums 在下标 jj 和下标i−1 的前缀和,然后计算两个前缀和的差。如果可以在初始化的时候计算出数组 nums 在每个下标处的前缀和,即可满足每次调用 sumRa.原创 2021-03-09 17:09:55 · 109 阅读 · 0 评论 -
贪心算法力扣简单题(java)
判断子序列给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。本题询问的是,ss 是否是 tt 的子序列,因此只要能找到任意一种 ss 在 tt 中出现的方式,即可认为 ss 是 tt 的子序列。而当我们从前往后匹配,可以发现每次贪心地匹配靠前的字符是最优决策。假定当前需要匹配字符 cc,而字符 cc 在 tt 中的位置 x_.原创 2021-03-07 17:13:02 · 336 阅读 · 1 评论 -
力扣位运算简单java
多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2位运算c++class Solution {public: int majorityElement(vector<int>& nums) { int res = 0; for(i.原创 2021-03-03 17:16:08 · 273 阅读 · 0 评论 -
蓄水池抽样
链表随机节点给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现?示例:// 初始化一个单链表 [1,2,3].ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.next = new ListNode(3);Solution solution = new Solution(head);.原创 2021-03-02 11:10:17 · 54 阅读 · 0 评论 -
力扣简单题链表(Java)
相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B .原创 2021-03-01 17:25:32 · 275 阅读 · 1 评论 -
力扣二叉树简单题集合(Java)
二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树1/ 2 3/ \4 5返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。class Solution { int count; public int diameterOfBinaryTree(TreeNode root) {.原创 2021-02-24 18:30:58 · 206 阅读 · 0 评论 -
剑指offer数学专题(java)版本
11.输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。示例1输入:10返回值::2如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一原创 2021-01-31 20:36:24 · 55 阅读 · 0 评论 -
递归剑指offer(递归)java版
8.一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1输入:1返回值:1示例2输入:4返回值::5思路public int JumpFloor(int target) { if(target <= 0) return 0; if(target == 1) return 1; int count = JumpFloor(target -1) + JumpFloor(原创 2021-01-26 21:23:24 · 36 阅读 · 0 评论 -
剑指offer数组专题 (java)
1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例1输入:7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]返回值:true...原创 2021-01-25 21:44:24 · 47 阅读 · 0 评论 -
剑指offer字符串专题(java)
2.替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 public String replaceSpace(StringBuffer str) { return str.toString().replace(" ","%20"); } public String replaceSpace(StringBuffer str) { StringB原创 2021-01-19 18:33:12 · 59 阅读 · 0 评论 -
位运算剑指offer经典题
40.一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数组里包含了两个只出现一次的数字,那么所有数字依次异或的结果就是这两个只出现一次的数字的异或结果。我们要想办法利用这个异或结果,把数组分为两个子数组,一个子数组包含一个只出现一次的数字,另一个数组包含另一个只出现一次的数字。由于这两个只出现一次的数字肯定不相等,那么这个异或结果肯定不为0,也就是说在这个结果数字的二进制表示中至少就有一位为1。我们在结果数字中找到第一个为1的位的位置,记为第N位。现在我们以第N原创 2021-01-15 17:50:51 · 39 阅读 · 0 评论 -
动态规划剑指offer
30.输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).示例1输入[1,-2,3,10,-4,7,2,-5]返回值18输入的数组为{1,-2,3,10,—4,7,2,一5},和最大的子数组为{3,10,一4,7,2},因此输出为该子数组的和 18。//思路 public int FindGreatestSumOfSubArray(int[] array) { if(array.leng原创 2021-01-15 12:21:57 · 48 阅读 · 0 评论 -
剑指offer链表专题“(java)
3.输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入{67,0,24,58}返回值[58,24,0,67]递归方法public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> res = new ArrayList<>(); if(原创 2021-01-04 16:11:34 · 47 阅读 · 0 评论 -
剑指offer二叉树专题
df原创 2020-12-31 14:50:56 · 63 阅读 · 1 评论 -
力扣哈希专题
1.设计哈希表设置哈希集合class MyHashSet { private Bucket[] bucketArray; private int keyRange; /** Initialize your data structure here. */ public MyHashSet() { this.keyRange = 769; this.bucketArray = new Bucket[this.keyRange]; for (int i = 0; i原创 2020-12-04 08:39:48 · 131 阅读 · 0 评论 -
力扣字符串专题
1.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length ==0) return ""; String pub = strs[0]; for(int原创 2020-12-02 15:22:07 · 326 阅读 · 1 评论 -
力扣数组专题
1.移动零移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]双指针法快慢指针class Solution { public void moveZeroes(int[] nums) { int n = nums.length, left = 0, right = 0; while (right < n) {原创 2020-12-01 16:26:12 · 209 阅读 · 0 评论 -
数据结构简介
1.初始化可变数组List<Integer> array = new ArrayList<Integer>();2.链表class ListNode { int val; // 节点值 ListNode next; // 后继节点引用 ListNode(int x) { val = x; }}3.栈先进后出,可以使用链表和数组实现LinkedList<Integer> stack = new LinkedList<原创 2020-11-10 11:31:11 · 83 阅读 · 0 评论 -
JAVA应用程序设计上机报告
实验5.1一.上机目的和要求编写一个类,该类有如下一个方法:public int f(int a, int b){…//要求该方法返回a和b的最大公约数}再编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(ab)/m返...原创 2020-03-24 20:33:58 · 1308 阅读 · 1 评论