自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

原创 静态内部类类vs普通内部类

适用场景:当外部类需要使用内部类,而内部类无需外部类资源,并且内部类可以单独创建时,考虑采用静态内部类的设计,在知道如何初始化静态内部类。普通内部类能够访问外部类的静态和非静态成员,静态内部类不能访问外部类的非静态成员,他只能访问外部类的静态成员。一个普通内部类不能脱离外部类实体被创建,且可以访问外部类的数据和方法,因为他就在外部类里面。java中一个类要被声明为static的,只有一种情况,就是静态内部类。普通内部类持有对外部类的引用,静态内部类没有持有外部类的引用。

2023-03-06 11:07:31 678

原创 OSI七层模型

解决两个硬件之间怎么通信的问题,它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。它的具体工作是:通过各种控制协议,接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;这一层的数据叫做帧。应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。表示层负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。

2022-12-10 10:04:07 645

原创 SpringMVC的统一处理

SpringMVC的统一处理。

2022-11-28 12:37:04 1196

原创 统一数据返回格式的实现

(returnValue instanceof ResponseResult)){//返回值本身就是需要的类型,不进行处理。存在的问题:controller请求映射方法,返回值如果是null,不会执行统- -响应封装。//returnValue是Controller请求方法执行完,返回值。* 内容是否需要重写(通过此方法可以选择性部分控制器和方法进行重写)* 返回 true 表示重写。// 构造统一返回对象。//方法返回之前调用此方法。

2022-11-28 11:06:59 656

原创 SpringBoot的异常处理方式

如果项目中有多个controller文件,通常可以在baseController中实现ExceptionHandler的异常处理,而各个contoller继承basecontroller从而达到统一异常处理的目的优点:ExceptionHandler简单易懂,并且对于异常处理没有限定方法格式;

2022-11-28 09:56:53 723

原创 线程创建方法的思维导图

线程创建方法的思维导图。

2022-11-27 18:43:46 549

原创 maven了解

maven是基于java平台的项目构建,依赖管理和项目信息管理的一个工具。

2022-11-22 14:51:07 545

原创 线程创建方式

Runnable 只是来修饰线程所执行的任务,它不是一个线程对象。想要启动Runnable对象,必须将它放到一个线程对象里。2. 创建 Thread 类实例, 调用 Thread 的构造方法时将 Runnable 对象作为 target 参数.Runnable接口和Callable接口的区别。1. 继承 Thread 来创建一个线程类。只是纯粹地去执行run()方法中的代码。方法2 实现 Runnable 接口。run()返回值=》void。方法一:继承Thread类。call()返回值=》泛型。

2022-11-20 17:13:33 346

原创 SpringAOP前备知识

切面 通知 切点 切面

2022-11-09 10:01:54 649

原创 粘包(应用层的数据包)问题

1.发送端需要等缓冲区满才发送出去,造成粘包即发送方将多条消息合并在一个包中发送2.接收方不及时接收缓冲区的包,造成多个包接收接收方不能及时接收,导致多个包同时到达。

2022-11-05 08:47:27 927

原创 TCP 传输控制协议

tcp协议是一个可靠与效率均衡都协议。

2022-11-05 08:34:12 1983

原创 ConcurrentHashMap:并发的hashmap

读操作没有加锁(但是使用了 volatile修饰node 保证从内存读取结果), 只对写操作进行加锁. 加锁的方式仍然是用 synchronized, 但是不是锁整个对象, 而是 "锁桶" (用每个链表的头结点作为锁对象), 大大降低了锁冲突的概率.底层数据:数组+链表+红黑树 每个哈希桶都有一把锁,只有两个线程访问的恰好是同一个哈希桶上的数据才出现锁冲突。发现需要扩容的线程, 只需要创建一个新的数组, 同时只搬几个元素过去.这个期间, 查找需要同时查新数组和老数组。扩容期间, 新老数组同时存在.

2022-11-03 10:27:15 368

原创 http和https通信过程

1、DNS解析,系统DNS将成IP地址2、建立TCP连接,进行TCP的三次握手3、浏览器发送请求4、服务器响应浏览器,向浏览器发送数据5、通信完成,TCP连接关闭。

2022-10-31 13:40:49 1034

原创 模拟堆的实现 java

/child下标 一定是左右孩子最大值的下标。* 用于堆的创建性能更好,当然向上调整也是可以实现的。* 两孩子最大值和父比--》若大--》交换。//如果有右孩子 你才去判断。* 每一刻子树都是大堆那么总树就是一个大堆。* 从后往前每一个都shiftdown。* parent:每次调整的根节点。//说明这棵树没有调整完。* 先插到最后位置再向上调整。* len:每次的结束位置。* 栈顶元素与最后元素交换。* 插入一个元素到堆中。// 和上边一样。

2022-10-29 15:32:11 755

原创 反射是什么

反射机制是:在运行状态中,对于任意一个类,对象,都能够知道所有属性和方法,并且能修改它。反射机制允许程序在运行时取得任何一个已知名称的class的内部信息类名用途Class类代表类的实体,在运行的Java应用程序中表示类和接口Field类代表类的成员变量/类的属性Method类代表类的方法类代表类的构造方法。

2022-10-28 12:01:26 545

原创 索引与事务

索引是帮助MySQL高效获取数据的数据结构1.B树节点,既有数据,又有Page指针。而B+,只有叶子节点有数据。其他节点,只有键值和Page指针2.B+叶子节点,全部相连,而B没有。

2022-10-27 19:13:44 628

原创 Cookie和Session

1.客户端第一次访问服务端的时候, 服务端会针对这次请求创建一个会话(session), 并生成一个唯一的 sessionId 来标注这个会话。Session 表示一个会话, 它是属于服务器端的容器对象, 默认情况下, 针对每一个浏览器的请求。的不足, 简单来说, 服务器端可以利用session 来存储客户端在同一个会话里面的多次请求记录。3.在后续的请求里面, 每次都会携带sessionid, 服务器端就可以根据这个sessionid来识别当前的会话状态。这两者结合使用, 来实现会话状态的存储。

2022-10-23 10:30:23 469

原创 JVM

如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最 终都应该传送到最顶层的启动类加载器中,只有当父加载器反馈自己无 法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去完成加载。JVM 就是 Java 虚拟机, 是⽤来运⾏我们平时所写的 Java 代码的。(遵循双亲委派机制的类加载,类加载器不直接加载,而是委派给父类加载器,以此类推,达到从上到下进行类加载的方式)

2022-10-21 12:43:48 421

原创 剑指 Offer 16. 数值的整数次方

即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。输入:x = 2.00000, n = 10 输出:1024.00000。输入:x = 2.10000, n = 3 输出:9.26100。

2022-09-15 09:58:17 168

原创 剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1]

2022-09-14 08:26:40 163

原创 剑指 Offer 06. 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。2.新建一个stack.size();3.将stack中每一个元素存储在ret中。1.将所有节点储存在栈里。

2022-09-13 17:58:37 234

原创 OR63 删除公共字符

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

2022-09-11 11:21:48 122

原创 JZ39 数组中出现次数超过一半的数字

JZ39 数组中出现次数超过一半的数字。

2022-09-11 10:37:10 117

原创 OR59 字符串中找出连续最长的数字串 - 题解

遍历字符串,使用tmp去记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串跟之前的数字串比较,如果更长,则更新更长的数字串更新到ret。个测试输入包含1个测试用例,一个字符串str,长度不超过255。读入一个字符串str,输出字符串str中的连续最长的数字串。输入:abcd12345ed125ss123456789。在一行内输出str中里连续最长的数字串。复制输出:123456789。

2022-09-11 10:12:38 234

原创 n进制转换 - 题解

本题思路很简单,首先想清楚原理:N进制数,每个进制位的值分别是X0*N^0,X1*N^1, X2*N^2.....,X0,X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)boolean flg = false;给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数。输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。

2022-09-11 09:50:16 299

原创 DD1 连续最大和 - 题解

dp[i] 就是以数组下标为 i 的数做为结尾的最大子序列和,注意是以 i 为结尾,比如说现在有一个数组{6,-3,-2,7,-15,1,2,2},dp[2]就是以-2为结尾的,那么显然dp[3]的最大值就是1咯(6,-3,-2),dp[3]要以7结尾那么以7结尾的子序列最大和就是8(6,-3,-2,7)。第一行一个整数n(1

2022-09-11 08:42:46 124

原创 CM46 合法括号序列判断 - 题解

请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。

2022-09-10 11:22:17 189

原创 HJ108 求最小公倍数

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。数据范围:1 \le a,b \le 100000 \1≤a,b≤100000。//最小公倍数 = 两数之积除以最大公约数。输出A和B的最小公倍数。输入两个正整数A和B。

2022-09-10 10:58:06 174

原创 WY20 两种排序方法 - 题解

考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。输入第一行为字符串个数n(n ≤ 100) 接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成。考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。如果这些字符串是根据字典序排列而不是根据长度排列输出"lexicographically",2. 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值。

2022-09-10 10:26:13 126

原创 HJ91 走方格的方案数 - 牛客网

请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。数据范围: 1 \le n,m \le 8 \1≤n,m≤8。输入两个正整数n和m,用空格隔开。注:沿棋盘格之间的边缘线行走。

2022-09-10 09:33:57 368

原创 CM72 另类加法

计算当前 xx 和 yy 的进位:B= (A& B)

2022-09-09 19:37:30 171

原创 HJ86 求最大连续bit数

获取第i位的值: (n >> i) & 1。如果1连续,则计数累加,如果不连续,则从0开始计数。数据范围:数据组数:1\le t\le 5\1≤t≤5 ,1\le n\le 500000\1≤n≤500000。while (in.hasNextInt()) { // 注意 while 处理多个 case。求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1。进阶:时间复杂度:O(logn)\O(logn) ,空间复杂度:O(1)\O(1)

2022-09-09 18:55:16 324

原创 CM24 最近公共祖先

将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。

2022-09-09 16:32:45 199

原创 HJ60 查找组成一个偶数最接近的两个素数 - 牛客网题解

本题首先需要判断素数,素数表示除过1和本身,不能被其它数整除。通过循环遍历来判断一个数是否为素数。最近的两个素数应该从最中间的位置开始向两边查找。任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。数据范围:输入的数据满足 4 \le n \le 1000 \4≤n≤1000。输入一个大于2的偶数。从小到大输出两个素数。

2022-09-09 15:11:04 154

原创 HJ73 计算日期到天数转换

用一个数组存放每月的累积天数{31,59, 90, 120, 151, 181, 212,243, 273, 304, 334, 365} 输入的日期天数=当月的天数 + 当月之前的累积天数 如果包含二月,再去判断是否为闰年,如果是闰年,再加1天即可。while (in.hasNextInt()) { // 注意 while 处理多个 case。进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(1)\O(1)输入一行,每行空格分割,分别是年,月,日。根据输入的日期,计算是这一年的第几天。

2022-09-09 13:19:51 313

原创 HJ62 查找输入整数二进制中1的个数

本题是计算一个数二进制表示中1的个数,通过(n >> i) & 1可以获取第i位的二进制值,每次n右移一位,可以获取一位的二进制值,右移32次,n变成0,循环终止。数据范围: 1 \le n \le 2^{31}-1 \1≤n≤231−1。输入一个正整数,计算它在二进制下的1的个数。5的二进制表示是101,有2个1。计算整数二进制中1的个数。

2022-09-09 10:56:40 432

原创 OR44 扑克牌大小

(2)除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系(如,对子跟对子比较,三个跟三个比较),不考虑拆牌情况(如:将对子拆分成个子)(1)输入每手牌可能是个子,对子,顺子(连续5张),三个,炸弹(四个)和对王中的一种,不存在其他情况,由输入保证两手牌都是合法的,顺子已经从小到大排列;输入两手牌,两手牌之间用“-”连接,每手牌的每张牌以空格分隔,“-”两边没有空格,如:4 4 4 4-joker JOKER。请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。

2022-09-09 10:44:28 166

原创 HJ56 完全数计算 - 题解

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。while (in.hasNext()) { // 注意 while 处理多个 case。数据范围: 1 \le n \le 5 \times 10^{5} \1≤n≤5×105。完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。输入n,请输出n以内(含n)完全数的个数。

2022-09-09 10:18:12 296

原创 二叉树的镜像__牛客网题解

数据范围:二叉树的节点数 0≤n≤10000 \le n \le 10000≤n≤1000 , 二叉树每个节点的值 0≤val≤10000\le val \le 1000 0≤val≤1000。要求: 空间复杂度 O(n)O(n)O(n)。本题也有原地操作,即空间复杂度 O(1)O(1)O(1) 的解法,时间复杂度 O(n)O(n)O(n)操作给定的二叉树,将其变换为源二叉树的镜像。//处理根节点,交换左右节点。

2022-09-09 09:26:11 136

原创 HJ37 统计每个月兔子的总数

第n个月的兔子数量由两部分组成,一部分是上个月的兔子f(n-1),另一部是满足3个月大的兔子,会生一只兔子f(n-2)。所以第n个月兔子总数: f(n) = f(n - 1) + f(n - 2)。有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?数据范围:输入满足 1 \le n \le 31 \1≤n≤31。

2022-09-08 16:33:22 213

IDMan_3.1.1.exe

idman.exe

2022-01-04

空空如也

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

TA关注的人

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