自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP的演变

这个问题之前一直没有关注过,后来在面试的过程中,面试官总喜欢问http1.0和http1.1之间的区别是啥,改进是啥以及优缺点。在今天进行一个总结。

2022-11-03 21:56:40 394 1

原创 有关JWT的面试问题总结

这个问题我们要知道JWT它是如何进行加密的。首先它有自己的一个加密算法,虽然该算法是可逆的,也就是说它是有可能被破解的,这个其实不需要担心,因为它还有一个签名,也就是签名+加密算法都要正确才能解锁,所以我们完全不害怕JWT被拦截伪造。以上就是我在JTW登录中常遇到的一些问题,也写了一些我的理解,如有错误,请练习我。对于这个问题,首先我们要明白啥是有状态,啥事无状态?

2022-11-03 17:16:38 1392

原创 数据库总结之高级篇

从上图我们可以查看出 MySQL 当前默认的存储引擎是 InnoDB,并且在 5.7 版本所有的存储引擎中只有 InnoDB 是事务性存储引擎,也就是说只有 InnoDB 支持事务。1.是否支持行级锁MyISAM只有表级锁,而InnoDB支持行级锁和表级锁,默认为行级锁2.是否支持事物MyISAM不支持事物InnoDB提供事物支持,具有提交(commit)和回滚(rollback)事物的能力3.是否支持外键MyISAM不支持,InnoDB支持补充:一般不建议使用外键,应用层面可以解决4.是否支持数据库异常

2022-07-14 00:11:48 893 3

原创 关于DFS和BFS的思考

1,如果只需要我们找的结果是可不可行,或者只要求返回一个结果,那么用深度优先遍历会更加高效,因为它是一直往下走,不能走后进行回溯,只要有一种结果就返回的,所以自然就会更加高效一点点。而BFS必须对每一种可能行都要进行尝试,所以会浪费很多时间。2,如果是要求找最值问题,一般就采用BFS算法,因为它是进行所有可能性进行同步前进的,这样子的好处是谁先到目标位置,那么谁就是最值而DFS则需要将所有的结果进行跑一遍,代码不好写容易出错。1,感染类:BFS2,最短路径类:BFS3,岛屿个数类:BFS4,可达

2022-07-06 23:07:27 286

原创 数据库总结之基础知识篇

在卸载之前,先停止MySQL8.0的服务。按键盘上的“Ctrl + Alt + Delete”组合键,打开“任务管理器”对话框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停止”选项停止MySQL8.0的服务,如图所示。方式1:通过控制面板方式卸载MySQL8.0的程序可以和其他桌面应用程序一样直接在“控制面板”选择“卸载程序”,并在程序列表中找到MySQL8.0服务器程序,直接双击卸载即可,如图所示。这种方式删除,数据目录下的数据不会跟着删除。方式2

2022-07-06 09:58:33 2839

原创 Java值传递

Java值传递

2022-06-13 09:45:28 133

原创 字节码与类的加载篇

解析代码如下:public class Demo { private int num = 1; public int add(){ num = num + 2; return num; }}一,Class文件结构1,Class字节码文件结构2,Class文件数据类型3,魔数Magic Number(魔数)每个Class文件开头的4个字节的无符号整数称为魔数(Magic Number)它的唯一作用是确定这个文件是否为一

2022-06-01 00:22:53 484

原创 JVM内存与垃圾回收篇

一,JVM与Java体系结构1,前言作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接OOM想解决线上JVM GC问题,但却无从下手新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就JJ了每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优VM参数,如何解决GC、OOM等问题,一脸懵逼我们大部分的程序员都只用上层的一些技术,可以熟练的使用各种框架,但是对于Java

2022-05-31 16:20:29 2307

原创 Nacos笔记(初级)

参考文档:Nacos官网 博客一,基本概述Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。从这段话中我们发现,相较于Spring.

2022-05-28 17:52:49 381

原创 SpringCloud笔记

这个阶段该如何学习1.回顾前面学习的知识点JavaSE数据库前端ServletHttpMybatisSpringSpringMVCSpringBootDubbo、Zookeeper、分布式基础Maven、GitAjax、Json2.学习SpringCloud的基础数据库MybatisSpringSpringMVCSpringBootDubbo、Zookeeper、分布式基础Maven、GitAjax、Json3.为什么要学习SpringCloud1.M

2022-05-27 16:15:42 403

原创 RabbitMQ学习笔记

一,消息队列1,MQ的相关概念1.1,什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不 用依赖其他服务。1.2, 为什么要用 MQ流量消峰举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,

2022-05-24 16:09:36 712

原创 Redis笔记

NoSQL概述为什么要用Nosql我们现在是处于大数据时代;1,单机MySQL在以前,一个网站的访问量一般不会太大,所以单个数据库就足够了。而且都是静态页面,服务器无压力。这种情况下:整个网站的瓶颈是什么?数据量如果太大,一个机器放不下数据的索引(B+ Tree),一个机器内存放不下访问量(读写混合),一个服务器承受不了出现以上三种情况之一,那么就必须晋级2,Memcached(缓存)+ MySQL + 垂直分离(读写分离)网站80%的情况都在读,每次都要去查询数据库的话

2022-05-22 16:24:26 976 1

原创 Linux学习笔记

一,购买并配置阿里云购买云服务(最接近公司环境)有经济来源的话,可以购买阿里云服务器,因为这才是最近接公司中原生环境的云服务器就是一个远程电脑,服务器一般不会关机!虚拟机安装后占用空间,也会有些卡顿,我们作为程序员其实可以选择购买一台自己的服务器,这样的话更加接近真实线上工作1.安全组配置首先我们需要设置云服务器的安全组,在阿里云上使用云服务器,我们除了需要打开Linux防火墙的对应端口之外,我们还需要在阿里云控制面板上设置对应的安全组,否则即使我们设置Linux防火墙打开了端口,我

2022-05-16 01:16:43 503

原创 剑指Offer31—40题(leetcode 剑指Offer第二版)

31,从上到下打印二叉树 III思路分析在上一个道题的基础上修改一个添加的方法。如果是偶数层就从尾部添加,反之就头部添加注意:是修改的temp的添加方式,而不是队列的代码实现首先先了解一下linkedList的添加结果顺序public class Test { public static void main(String[] args) { //add的加入顺序 1234 LinkedList<Integer> list = new Link

2022-05-12 11:24:13 96

原创 剑指Offer41—50题(leetcode 剑指Offer第二版)

41,数字序列中某一位的数字思路分析:代码实现:/** * @version v1.0 * @ProjectName: 数据结构 * @ClassName: Solution35 * @Description: 请描述该类的功能 * @Author: ming * @Date: 2022/5/3 16:36 */public class Solution35 { public int findNthDigit(int n) { //表示n所在位置的数的位数

2022-05-12 11:18:16 162

原创 Mybatis-Plus的详细使用

一,MyBatisPlus概述需要的基础:MyBatis,Spring,SpringMVC学完为什么要学习呢?它可以节省我们大量的工作时间,所有的JDBC都可以自动化完成!JPA,tk-mapper,MyBatisPlus简介是什么?MyBatis本来就是为简化JDBC操作的!官方: MyBatisPlus ,简化MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上

2022-05-08 15:38:31 11058

原创 关于Mybatis-plus3.5.1版本的逻辑删除修改

在这个版本的逻辑删除已经不需要配置一些多余的数据了。只要一个注解@TableLogic就可以了,如果在yml中进行配置,反而会出错。该现象可能是从3.3.0版本开始的。讲真的,有被恶心到。一直报错,希望大家别踩坑。关于是不时3.3.0开始,有待商讨。...

2022-05-08 00:11:14 542

原创 SpringBoot笔记

微服务阶段javase:OOPmysql:持久化html+css+js+jquery+框架:视图,框架不熟练,css不好javaWeb:独立开发MVC三层架构的网站了,原始ssm:框架,简化了我们开发的流程,配置也开始较为复杂;war:tomcat运行spring再简化:springBoot jar:内嵌tomcat;微服务架构!服务越来越多:springcloud;约定大于配置:maven,spring,springMvc,springBoot一,SpringBoot的概述1,

2022-05-06 15:46:05 4081

原创 剑指Offer31—40题(leetcode 剑指Offer第二版)

31,从上到下打印二叉树 III思路分析在上一个道题的基础上修改一个添加的方法。如果是偶数层就从尾部添加,反之就头部添加注意:是修改的temp的添加方式,而不是队列的代码实现首先先了解一下linkedList的添加结果顺序public class Test { public static void main(String[] args) { //add的加入顺序 1234 LinkedList<Integer> list = new Link

2022-05-02 08:45:42 160

原创 Unable to import maven project: See logs for details解决办法

这个提示的时不能加载maven项目,要让你去看日志解决。在这里我先告诉你原因:就是IDEA2019版本与maven版本不兼容问题。听说再2019.3之后的版本解决了。首先我们先看看日志:所以现在开始下载Maven3.5.2 具体流程如下:官方下载地址或者可以用百度网盘下载链接:https://pan.baidu.com/s/10gt0vbowfc8bxAPwu4cpEA提取码:6666安装Maven的过程如下:解压该文件配置环境变量系统变量添加在系统变量path中添加然

2022-04-30 17:32:42 425

原创 SpringMVC笔记

SpringMVC来自狂神的课ssm: mybatis + Spring + SpringMVC MVC三层架构JavaSE,javaWeb:认真学习。老师带,入门快SSM:研究官方的文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力SpringMVC + Vue + SpringBoot + SpringCloud + LinuxSSM = JavaWeb做项目Spring:IOC和AOPSpringMVC:SpringMVC的执行流程 和 框架整合一,回顾Servlet

2022-04-26 17:28:22 299

原创 Mybatis笔记

一、MyBatis简介1、MyBatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和D

2022-04-23 22:00:37 948

原创 设计模式(现在只总结了常用的8种)

一,设计模式的七大原则1, 设计模式的目的编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好代码复用性(相同功能的代码只需要写一次)可读性(代码简单易读)可扩展性(当我们后期需要添加功能时,可以很容易实现,且不会代码的可用性)可靠性(当我们增加功能后,不会对原有的功能影响)高内聚低耦合分享金句:设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”Sc

2022-04-22 23:06:19 4446

原创 Spring学习笔记

1,Spring1.1,简介Spring:春天---->给软件行业带来了春天2002年,首次推出了Spring框架的雏形:interface框架!Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24号发布了1.0正式版本。Rod Johnson,Spring Framework创始人,著名作者。很难想象他的学历,真的让好多人大吃一惊,他是悉尼大学的音乐学博士Spring理念:使现有的技术更容易使用,本身是一个大杂烩,整合了所有的技术框

2022-04-20 10:55:41 251

原创 剑指Offer21—30题(leetcode 剑指Offer第二版)

21, 反转链表思路分析通过双指针进行修改指针的方向拿1->2举例说明创建一个next指针,指向head的下一个节点,也就是2的位置在创建一个新的为null的指针pre因为是反转,开头的第一个指针的next应该是null,所以,head.next = pre然后在让per移向head,head移向next之后一次调用代码实现public class Solution19 { public class ListNode { int val;

2022-04-17 18:41:30 318

原创 剑指Offer11—20题(leetcode 剑指Offer第二版)

11,机器人的运动范围思路分析这道题需要注意的是两个点,一个是n,m的范围,他们都是100及其以内的值。另外一个是他是从(0,0)开始的,然后以此向别的方法走。上面的两个条件就确定了他不需要进行每个点的遍历,只能从初始点开始找,且我们也确定了判断能否进入格子的算法。剩下的就很简单了,就是一个深度优先遍历,这个大家应该都会吧。代码实现/** * @version v1.0 * @ProjectName: 数据结构 * @ClassName: Solution9 * @Descriptio

2022-04-14 14:53:33 132

原创 快速幂及其实战

快速幂

2022-04-12 18:46:33 261

原创 设计模式的七大原则(重点)

设计模式的七大原则

2022-04-11 23:22:08 441

原创 Java集合类详解

集合的实现及其源码解释

2022-04-11 10:45:27 795

原创 剑指Offer1—10题(leetcode 剑指Offer第二版)

1,用两个栈实现队列import java.util.Stack;/** * @version v1.0 * @ProjectName: 数据结构 * @ClassName: CQueue * @Description: 请描述该类的功能 * @Author: ming * @Date: 2022/4/4 20:08 * 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若

2022-04-10 22:07:23 521

原创 KMP算法

在讲述KMP算法前,首先要理解什么是部分匹配表。1,部分匹配表在这里插入图片描述2,KMP算法题目思路分析为什么可以进行上面的这种写法呢?是因为我们已经知道了最大前缀和后缀了, 那么我们下一回找的时候完全可以直接将str移动到最大后缀的地方,省下了不少的空间。算法实现package kmp.zuochenyun;/** * @version v1.0 * @ProjectName: 数据结构 * @ClassName: Code01_KMP * @Description:

2022-04-04 19:54:40 255

原创 力扣题目11 盛最多水的容器

题目思路分析这道题可以看作求长方形最大面积的问题,我的第一思路是我从第一和第二条边开始一个个试,但是显示的超时了,于是就想着用双指针搞出来。于是就有了一个问题,就是如何能确保我们遍历过的位置能找到长方形面积最大值。就是保证我们左边的边一定要比右边高。详细解释:因为我们两边的指针是逐渐往里靠的,所以肯定会有一条边先到最优解,这里假设是左指针先到,这个时候右指针是在右最优解的右边,假设右指针所在的边是大于左指针的边,那么面积就是由数组的下标所决定的,且最优解就不在右指针的左边了,违背了我们的结果

2022-04-03 21:53:12 79

原创 力扣题目10 正则表达式匹配

10,正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = "aa", p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例 2:输入:s = "aa", p = "a*"输出:true解释:因为 '

2022-03-04 11:39:15 59

原创 从底层了解自增运算符

3.8,彻底搞定++运算符很多博客都在讲自增运算符,但是我当初始终感觉讲的不太清晰,于是乎便有了这一片文章,但是由于++操作涉及的知识点比较深,是由字节码搞的鬼,所以使用图和文字的形式去书写,希望对大家有所启发。举例一public void method7(){ int i = 10; int a = i++; int j = 20; int b = ++j;}字节码如下 0 bipush 10 2 istore_1 3 iload_1 4 iinc

2022-03-03 22:34:38 203 2

原创 力扣题目9 回文数

9,回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。解题思路:这道题是比较简单的,只需要判断是否是回文数这一个知识点,所以只需要考虑如何去判断一个数

2022-03-03 10:20:23 263

原创 力扣题目8 字符串转换整数 (atoi)

8,字符串转换整数 (atoi)请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这

2022-03-02 10:47:09 107

原创 力扣题目7 整数反转

7,整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321这个题目的思路有两种,一个就是利用字符串的反转功能,一个是利用秦九韶算法。方式一:利用字符串反转public static int reverse2(int x

2022-03-01 10:37:10 100

原创 力扣题目6 Z字形变换

6,Z 字形变换将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:

2022-02-28 10:29:57 57

原创 字符串常量池(StringTable)

1,String的基本特性String:字符串,使用一对""引起来表示String a = "avc";//字面量定义String b = new String("avc");String声明为final的,不可被继承String实现了Serializable接口:表示字符串是支持序列化的。String实现了Comparable接口:表示string可以比较大小String在jdk8及以前内部定义了final char[] value用于存储字符串数据。JDK9时改为by

2022-02-27 22:02:04 4387 2

原创 力扣题目5 最长回文子串

5,最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字和英文字母组成思路分析这个题目中,说明了s的长度在1000以内,就说明可以使用暴力法进行解决。找的是回文子串,回文串大体上分为两种:一种是奇数次的,例如bab,他的特点是中点两边的字符相同。

2022-02-27 10:05:31 50

空空如也

空空如也

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

TA关注的人

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