自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (6)
  • 收藏
  • 关注

原创 java 类文件结构详解

以上是Java类文件的基本结构,每个部分都有其特定的格式和含义。Java类文件的结构是按照规范定义的,Java虚拟机可以根据类文件的结构加载、解析和执行类的相关操作。Java类文件是Java源代码经过编译后生成的二进制文件,它包含了Java类的结构和信息。

2023-05-25 17:56:53 1067

原创 Java中常见的垃圾回收器 Serial、Parallel、CMS、G1 和 ZGC简介

需要注意的是,具体选择哪种垃圾回收器以及用于哪个代的决策是由JVM根据运行时参数、系统配置和应用程序行为等动态决定的。因此,在实际应用中,可以根据应用的特性和性能需求进行适当的调整和配置。这些步骤中的具体实现方式和细节取决于所使用的垃圾回收算法和具体的垃圾回收器。不同的垃圾回收器可能在标记、清除和压缩等阶段采用不同的策略和技术,以满足不同的性能需求和内存管理目标。Java中有几种常见的垃圾回收器,每种垃圾回收器都有其特定的工作方式和回收策略。下面列举了常见的Java垃圾回收器,并对其进行详细说明。

2023-05-22 23:03:04 907

原创 JVM内存模型概述

JVM内存模型定义了Java程序在运行时如何使用计算机内存。它规定了如何组织和管理内存,以便Java应用程序能够正常运行。

2023-05-20 14:59:38 648

原创 JZ86 在二叉树中找到两个节点的最近公共祖先

示例1输入:{3,5,1,6,2,0,8,#,#,7,4},5,1返回值:3示例2输入:{3,5,1,6,2,0,8,#,#,7,4},2,7返回值:2第一种解法使用递归解决,将每个节点的左子树,每个节点的右子树都当做一个新的完整的树,进行递归判断即可,判断逻辑为* step 1:如果o1和o2中的任一个和root匹配,那么root就是最近公共祖先。* step 2:如果都不匹配,则分别递归左、右子树。* step 3:如果有一个节点出现在左子树,并且另一个节...

2022-04-26 14:20:35 1635

原创 剑指offer-JZ18 删除链表的节点(Java版)

描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。1.此题对比原题有改动2.题目保证链表中节点的值互不相同3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点数据范围:0<=链表节点值<=100000<=链表长度<=10000示例1输入:{2,5,1,9},5返回值:{2,1,9}说明:给定你链表中值为 5 的第二个节

2022-04-11 17:18:37 1007

原创 JZ44 数字序列中某一位的数字(Java版)

描述数字以 0123456789101112131415... 的格式作为一个字符序列,在这个序列中第 2 位(从下标 0 开始计算)是 2 ,第 10 位是 1 ,第 13 位是 1 ,以此类题,请你输出第 n 位对应的数字。示例1输入:0返回值:0示例2输入:2返回值:2示例3输入:10返回值:1示例4输入:13返回值:1第一种解法思路:数学先观察数字规律小于10,1~9,9个数字,9位小于100,10~99,90个数字,180位

2022-03-29 09:07:28 486

原创 JAVA 实现AES加密解密

AES加密模式有ECB,CBC,CTR等AES填充模式有pkcs5padding, pkcs7padding, no padding等AES数据块则有128位 192位 256位AES加密密码,如果选择数据块128位,则要求密码长度为16,数据块192位则要求密码长度为24,数据块长度为256位,则要求密码长度为32AES的偏移量和AES加密类似AES输出则有base64和hex两种AES字符集有gb2312,gbk,utf-8等1 使用CBC+PKCS5Padding+ba.

2022-03-24 15:50:20 20373 1

原创 剑指offer-把数字翻译成字符串(Java版)

描述有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。现在给一串数字,返回有多少种可能的译码结果数据范围:字符串长度满足 0 < n \le 900<n≤90进阶:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)示例1输入:"12"返回值:2说明:2种可能的译码结果(”ab” 或”l”)示例2输入:"31717126241541717"返回值:192说明:192种可能的译码结果

2022-03-12 11:48:38 963

原创 剑指offer-JZ48 最长不含重复字符的子字符串(Java版)

描述请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。数据范围:\ \text{s.length}\le 40000 s.length≤40000示例1输入:"abcabcbb"返回值:3说明:因为无重复字符的最长子串是"abc",所以其长度为 3。示例2输入:"bbbbb"返回值:1说明:因为无重复字符的最长子串是"b",所以其长度为 1。示例3输入:"pwwkew"返回值:3说明:因为无重复字符的最长子串是 "wke

2022-03-07 17:43:30 435

原创 剑指offer-JZ47 礼物的最大价值(Java版)

描述在一个m\times nm×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?如输入这样的一个二维数组,[[1,3,1],[1,5,1],[4,2,1]]那么路径 1→3→5→2→1 可以拿到最多价值的礼物,价值为12示例1输入:[[1,3,1],[1,5,1],[4,2,1]]返回

2022-03-04 15:58:02 552

原创 剑指offer-JZ63 买卖股票的最好时机(一)(Java版)

描述假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费4要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)示例1输入:[8,9,2,5,4,7,1]返回值:5说明:在第3天(股票价格 = 2)..

2022-03-04 14:51:38 122

原创 设计LRU缓存结构(Java版)

描述设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 k ,并有如下两个功能1. set(key, value):将记录(key, value)插入该结构2. get(key):返回key对应的value值提示:1.某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。2.当缓存的大小超过k时,移除最不经常使用的记录。3.输入一个二维数组与k,二维数组每一维有2个或者3个数字,第1个数字为opt,第2,3个数字为key

2022-03-03 11:40:18 734

原创 剑指offer-剪绳子(Java版)

描述给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 , m <= n ),每段绳子的长度记为 k[1],...,k[m] 。请问 k[1]*k[2]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到的最大乘积是 18 。数据范围: 2 \le n \le 602≤n≤60进阶:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)

2022-02-26 11:29:57 235

原创 剑指Offer(六十六):二维数组的运动范围(Java版)

描述地上有一个 rows 行和 cols 列的方格。坐标从 [0,0] 到 [rows-1,cols-1] 。一个机器人从坐标 [0,0] 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 threshold 的格子。 例如,当 threshold 为 18 时,机器人能够进入方格 [35,37] ,因为 3+5+3+7 = 18。但是,它不能进入方格 [35,38] ,因为 3+5+3+8 = 19 。请问该机器人能够达到多少个格子?数据范围

2022-02-17 17:30:50 240

原创 剑指Offer(六十五):矩阵中的路径(Java版)

描述输入:[[a,b,c,e],[s,f,c,s],[a,d,e,e]],"abcced"返回值:true示例2输入:[[a,b,c,e],[s,f,c,s],[a,d,e,e]],"abcb"返回值:false备注:0 <= matrix.length <= 2000 <= matrix[i].length <= 200第一种解法遍历矩阵,找到起点,然后使用递归分别从上下左右找到剩余节点,得注意一点就是,当前节点遍历以后,应该替换为特殊字

2022-02-17 14:49:29 255

原创 剑指Offer(六十四):滑动窗口的最大值(Java版)

描述给定一个长度为 n 的数组 num 和滑动窗口的大小 size ,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6

2022-02-16 16:46:12 705

原创 剑指Offer(六十三):数据流中的中位数(Java版)

描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。数据范围:数据流中数个数满足,大小满足进阶: 空间复杂度, 时间复杂度示例1输入[5,2,3,4,1,6,7,0,8]返回值:"5.00 3.50 3.00 3.50 3.00 3.50 4...

2022-01-11 18:07:17 1420

原创 剑指Offer(六十二):二叉搜索树的第k个结点(Java版)

数据范围: 0 \le n \le10000≤n≤1000,0 \le k \le10000≤k≤1000,树上每个结点的值满足0 \le val \le 10000≤val≤1000进阶:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)如输入{5,3,7,2,4,6,8},3时,二叉树{5,3,7,2,4,6,8}如下图所示:该二叉树所有节点按结点值升序排列后可得[2,3,4,5,6,7,8],所以第3个结点的结点值为4,故返回对应结点值为4的结点即可。示例1输入

2022-01-11 16:25:13 1733

原创 剑指Offer(六十一):序列化二叉树(Java版)

描述请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。二叉树的序列化(Serialize)是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树等遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#)二叉树的反序列化(Deserialize)是指:根据某种遍历顺序得到

2022-01-11 15:05:43 1794

原创 try-with-resources优于try-finally

最近在看《Effective Java》看到第九点,try-with-resources优先于try-finally。为了理解更加透彻,个人重新分析了一下,内容如下。在java开发中,一些网络链接或者是文件资源都需要程序员去手动调用close方法关闭,比如InputStream、OutputStream和java.sql.Connection。如果忘关了就可能造成严重的性能后果。而关闭的方法有很多种。比如finalizer、try-catch-finally、try-w...

2022-01-10 10:16:41 1991

原创 剑指Offer(六十):把二叉树打印成多行(Java版)

描述给定一个节点数为 n 二叉树,要求从上到下按层打印二叉树的 val 值,同一层结点从左至右输出,每一层输出一行,将输出的结果存放到一个二维数组中返回。例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树多行打印层序遍历的结果是[[1],[2,3],[4,5]]数据范围:二叉树的节点数0 \le n \le 10000≤n≤1000,0 \le val \le 10000≤val≤1000要求:空间复杂度O(n)O(n),时间复杂度O(n)O...

2022-01-07 14:40:52 1565

原创 剑指Offer(五十九):按之字顺序打印二叉树(Java版)

描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)数据范围:0 \le n \le 15000≤n≤1500,树上每个节点的val满足|val| <= 100∣val∣<=100要求:空间复杂度:O(n)O(n),时间复杂度:O(n)O(n)例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树之字形层序遍历的结果是[[1],[3,2],[4,5]]示例1输入:{1,2,3,#,#,.

2022-01-07 11:49:21 1545

原创 剑指Offer(五十八):对称的二叉树(Java版)

描述给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)例如: 下面这棵二叉树是对称的下面这棵二叉树不对称。数据范围:节点数满足0 \le n \le 10000≤n≤1000,节点上的值满足|val| \le 1000∣val∣≤1000要求:空间复杂度O(n)O(n),时间复杂度O(n)O(n)备注:你可以用递归和迭代两种方法解决这个问题示例1输入:{1,2,2,3,4,4,3}返回...

2021-12-31 16:04:43 2296

原创 剑指Offer(五十七):二叉树的下一个结点(Java版)

描述给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。下图为一棵有9个节点的二叉树。树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的用虚线表示示例:输入:{8,6,10,5,7,9,11},8返回:9解析:这个组装传入的子树根节点,其实就是整颗树,中序遍历{5,6,7,8,9,10,11},根节点8的下一个节点就是9,应该返回{9,10,11},后台只打印子树的下一个节点,所以只

2021-12-30 10:16:37 1841

原创 Springboot+shardingsphere实现一库多表分表(对多个表进行分表操作)

Springboot+shardingsphere实现多一个数据库里面的多个表进行分表操作,本文是针对mysql数据库中,两个表进行分表操作,实现根据分表字段自动创建不存在的表以及自动根据分表字段实现查询数据库操作。所使用的主要技术栈为shardingsphere+sqi。maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artif...

2021-12-20 15:23:25 5882

原创 剑指Offer(五十六):删除链表中重复的结点(Java版)

描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足,链表中的值满足进阶:空间复杂度,时间复杂度例如输入{1,2,3,3,4,4,5}时,对应的输出为{1,2,5},对应的输入输出链表如下图所示:示例1输入:{1,2,3,3,4,4,5}返回值:{1,2,5}示例2...

2021-12-14 20:19:17 2768

原创 剑指Offer(五十五):链表中环的入口结点(Java版)

描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围:n\le10000n≤10000,1<=结点值<=100001<=结点值<=10000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。输入描述:输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台会根据第二...

2021-12-13 19:37:23 2769

原创 剑指Offer(五十四):字符流中第一个不重复的字符(Java版)

描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符 "go" 时,第一个只出现一次的字符是 "g" 。当从该字符流中读出前六个字符 “google" 时,第一个只出现一次的字符是"l"。数据范围:字符串长度满足,字符串中出现的字符一定在 ASCII 码内。进阶:空间复杂度,时间复杂度后台会用以下方式调用Insert 和FirstAppearingOnce 函数string caseout = "";1.读入测试用例字符串casei...

2021-11-30 15:47:10 3026

原创 剑指Offer(五十三):表示数值的字符串(Java)

描述请实现一个函数用来判断字符串str是否表示数值(包括科学计数法的数字,小数和整数)。科学计数法的数字(按顺序)可以分成以下几个部分:1.若干空格2.一个整数或者小数3.(可选)一个'e'或'E',后面跟着一个整数(可正可负)4.若干空格小数(按顺序)可以分成以下几个部分:1.若干空格2.(可选)一个符号字符('+'或'-')3. 可能是以下描述格式之一:3.1至少一位数字,后面跟着一个点'.'3.2至少一位数字,后面跟着一个点'.',...

2021-11-12 17:38:27 3571

原创 剑指Offer(五十二):正则表达式匹配(Java版)

描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配数据范围:1.str 可能为空,且只包含从a-z的小写字母。2.pattern 可能为空,且只包含从a-z的小写字母以及字符.和*,无连续的'*'。3.1 <= str....

2021-11-10 10:58:13 3728

原创 Springboot + mybatis-plus + dynamic-datasource-spring-boot-starter整合多数据源

环境<dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.4.1</version></dependency><dependency> <groupId>co

2021-11-03 16:33:54 4696

原创 剑指Offer(五十一):构建乘积数组(Java版)

描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-1] = A[0] * A[1] * ... * A[n-2];)对于A长度为1的情况,B无意义,故而无法构建,因此该情况不会存在。示例1输入:[1,2,3,4,5]返回值:[120,60,40,3

2021-10-29 10:56:44 4089

原创 剑指Offer(五十):数组中重复的数字(Java版)

描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1示例1输入:[2,3,1,0,2,5,3]返回值:2说明:2或3都是对的第一种解法简单粗暴,直接双重循环,如果有重复的数据,直接返回即可。代码如下public int firstDup.

2021-10-28 19:28:49 4118

原创 剑指Offer(四十九):把字符串转换成整数(Java版)

描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空返回值描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入:"+2147483647"返回值:2147483647示例2输入:"1a33"返回值:0第一种解法首先将第一个字符提取出来,判断是否是“+”或者“-”,直接利用java的工具类转换,如果报错说明不是合法的数字字符串,返回0即可

2021-10-25 15:12:17 4224

原创 剑指Offer(四十八-不用加减乘除的加法(Java版)

描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。数据范围:两个数都满足0 \le n \le 10000≤n≤1000进阶:空间复杂度O(1)O(1),时间复杂度O(1)O(1)示例1输入:1,2返回值:3示例2输入:0,0返回值:0第一种解法由于不能用四则运算符号,则只能考虑异或(^ 转换为二进制进行计算,从高位开始比较,相同则为0,相异则为1)或者与(&转换为二进制进行计算,从开始开始比较...

2021-10-22 15:39:39 4315

原创 Kafka 再均衡(rebalance)触发的条件

新版的消费者客户端对此进行了重新设计,将全部消费组分成多个子集,每个消费组的子集在服务端对应一个GroupCoordinator对其进行管理,GroupCoordinator是Kafka服务端中用于管理消费组的组件。而消费者客户端中的ConsumerCoordinator组件负责与GroupCoordinator进行交互。ConsumerCoordinator与GroupCoordinator之间最重要的职责就是负责执行消费者再均衡的操作,包括前面提及的分区分配的工作也是在...

2021-10-21 09:30:39 5567

原创 剑指Offer(四十七)-求1+2+3+…+n(Java版)

描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。数据范围:0 < n \le 2000<n≤200进阶: 空间复杂度O(1)O(1),时间复杂度O(n)O(n)示例1输入:5返回值:15示例2输入:1返回值:1第一种解法上述问题明显是一个等差数列求和问题,等差数列求和公式 sn = (a1 + an)*n /2 ,其中an = n,a1 =1;...

2021-10-20 10:33:19 4560

原创 剑指offer(四十六)-孩子们的游戏(圆圈中最后剩下的数)(Java版)

描述每年六一儿童节,牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中,有个游戏是这样的:首先,让 n 个小朋友们围成一个大圈,小朋友们的编号是0~n-1。然后,随机指定一个数 m ,让编号为0的小朋友开始报数。每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下最后一个小朋友,可以不用表演,并且拿到牛客礼品,请你试着想下,哪个小朋友会得到这份礼品呢?数据范围...

2021-10-15 10:37:19 5632

原创 剑指offer(四十五)-扑克牌顺子(Java版)

描述现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。有如下规则:1. A为1,J为11,Q为12,K为13,A不能视为142. 大、小王为 0,0可以看作任意牌3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为 [0, 13]要求:空间复杂度O(1)O(1),时间复杂度O(nlogn)O(nlogn),本题也有时间复杂度O(n)O(n)的解法...

2021-10-14 15:45:03 4662

原创 剑指offer(四十四)-翻转单词序列(Java版)

描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?示例1输入:"nowcoder. a am I"返回值:"I am a nowcoder."第一种解法使用栈来实现,

2021-10-12 17:50:57 4668

Springboot 断点续传大文件

本人测试上传3G多的文件,未发现问题,但是还有优化空间。 原理 曾经上传过:前端通过计算,拿到整个文件的md5,请求后台是否曾经已经上传过,如果曾经上传过,直接返回成功 曾经没有上传过:后台返回前端,表示从未上传过此文件,前端通过技术,将大文件分隔成无数个小文件,一一上传 曾经上传一部分:前端在上传每个模块之前,先请求后台,判断此模块是否已经上传过,如果已经上传过,则不需要再上传,否则上传。 注:启动以后直接访问http://localhost:9002/demo/largeUpload/open,如果本地运行需要修改maven私服地址 ,使用idea首先需要安装Lombok插件,压缩包包含数据库表脚本文件,数据库名称需要自己创建,使用mysql demo测试网站: http://118.89.41.69:9002/demo/largeUpload/open

2020-07-01

ESManager.zip

具体使用见 https://blog.csdn.net/juanqiao7497/article/details/103196082

2019-11-22

JAVA解析纯真IP地址库,得到运营商,省市信息

java语言编写,其他语言需要做相应代码改变,里面包含QQWay.dat文件,QQWryIPUtil工具栏,IPZone实体类,具体操作见链接https://blog.csdn.net/juanqiao7497/article/details/98747958

2019-08-07

docker.zip

CentOS7.2环境下docker-ce-17.06.0.ce-1.el7.centos.x86_64离线安装包,附有各种依赖

2019-07-22

nginx离线安装包

nginx离线安装包,版本为nginx1.14版本,操作系统为centos7.3.1611版本,nginx离线安装的所有资源都有,包括gcc和g++,pcre安装文件、zlib安装文件、openssl安装文件、nginx安装文件

2019-07-22

elaticsearch5.6.16

elaticsearch5.6.16的zip下载安装包,官方下载地址为https://www.elastic.co/cn/downloads/past-releases/elasticsearch-5-6-16。

2019-04-23

空空如也

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

TA关注的人

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