自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Obscurede的博客

希望能写出帮助到你的博客。

  • 博客(105)
  • 问答 (1)
  • 收藏
  • 关注

原创 多角度对比Websocket和Http协议的区别

Http是一种应用层协议、同是是一种无状态协议,每次的请求都是独立的,Http经常用于网页传输、图片、文本等静态资源。

2024-05-16 20:37:33 622

原创 Http和Https的区别

HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

2024-05-16 19:53:40 472

原创 1分钟快速上手枚举类

一分钟帮助你快速掌握什么是枚举类。

2024-05-12 21:22:19 164

原创 通俗易懂——模板设计模式(Template Method)

详细的介绍模板设计模式

2024-05-12 21:13:57 990

原创 腾讯云智——面试经验总结

项目中用到了MINIO,能说说MINIO和其他存储方式比如阿里的OSS的区别吗?说一下你觉得哪个项目最有挑战,展开说说项目的技术亮点。currentHashMap是如何实现线程安全的?ElasticSearch倒排索引的原理?说一下Redis哨兵模式是如何实现的。cookie和Session的区别。主从如何实现保证数据同步的。http和https的区别。Docker了解的多吗?Linux awk命令。总结:技术深度不够。

2024-05-11 15:13:17 146 2

原创 你能看懂的——单例模式

单例模式的详细讲解

2024-05-09 21:33:02 1283 1

原创 快速掌握子网划分(简单易懂)

子网划分 是指将一个大的IP网络划分为更小、更易于管理的子网络,由大化小,是子网划分的核心理念。

2024-05-09 12:44:10 449

转载 线程和进程、程序、应用程序之间的关系

子进程之后就完全独立了,父进程与子进程之间的关系,与其他进程的关系都是一样的,平等的,谁也管不着谁了,他们也只能采用进程间通信才能相互了解。了解进程与线程的关系,就要了解他们的区别。一个计算机可以有多个进程,这称之为多任务,他们共享的是CPU,硬盘,打印机,显示器,但他们的内存是独立的,所以需要进程间通信,这是计算机发展的第一步。一个进程可以有多个线程,这称之为多线程,他们除了共享进程间的共享内容之外,还共享内存,这是计算机发展的第二步,主要是为了满足并行运算时共享数据,无需额外的通信。

2024-04-23 16:46:45 38

原创 手动导入jar包到Maven的解决方案(简单有效!)

想要导入一个jar包到项目中,这个jar包在Maven中没有可以尝试以下方式。

2024-01-24 21:03:43 913

原创 快速上手Spring AOP切面编程(有实践内容!快速掌握!!)

下载,密码f8tfpwd=f8tf下载后用IDEA打开,执行App类如果出现这里爆红点击然后,把App设置为启动类即可。现在运行APP,先执行update方法,见控制台输出通过查看BookDaoImpl类可知,一个有显示时间的方法,一个没有。我们现在的任务是,在无代码侵入的情况下,给update这个方法加上输出当前时间的功能。实现AOP的具体做法如下导入坐标(pom.xml)制作连接点方法(原始操作,Dao接口与实现类)制作共性功能(通知类与通知)定义切入点。

2023-12-26 13:46:54 950

原创 原码,补码,反码(极简版)

原码,补码,反码计算

2023-12-08 13:50:51 523

原创 Java保留n位小数的方法(超简洁)

最简洁的方法是方法三,使用System.out.printf()方法。它可以直接在输出语句中指定格式化字符串,并输出保留指定位数的小数。这种方法更为简洁和直观。方法三:使用System.out.printf()方法。方法二:使用String.format()方法。方法一:使用DecimalFormat类。我们以保留6位小数为例。

2023-10-31 21:09:37 411

原创 a+=b、a-=b、a*=b和a=a+b、a=a-b以及a=a*b的区别(易混淆)

因此弄懂+=的运算过程十分重要,当b是一个算式的时候,便不能理解为是另一种形式的简写。,这的确在一些情况下是成里的,但是仔细研究后其实运算过程中有一些细微的差别。此时计算过程为s=s+(s.charAt(0)+s.charAt(1))由于char计算是转成对应的ASCII码来计算,所以结果就成了。右面的符号会优先进行计算b+3被括号括起来,然后再和a计算。的时候,往往计算的结果可能不如预期来看下面两个代码。但是当-=右边是一个算式的时候就需要注意了。也就是说计算过程是a=a-(b+3)即。

2023-10-08 13:43:20 2090

原创 微信小程序开发缺少中间证书问题(腾讯云、阿里云等做服务器)

项目使用nginx做负载均衡后,不再采用原来直接用jar包的方式直接开启对应端口,所以需要重新从云服务器上下载证书,写入到Nginx读取的证书路径上即可。

2023-10-06 20:44:24 1170

原创 Redis是否要分库的实践

Redis的分库其实没有带来任何效率上的提升,只是提供了一个命名空间,而这个命名空间可以完全通过key的设计来避开这个问题。一个优雅的Redis的key的设计如下。

2023-10-02 11:06:17 427

原创 Linux下使用yum安装的东西都去哪儿了?(新手友好)

使用yum安装的软件包通常都会遵循相似的目录结构。

2023-09-26 18:18:01 3916

原创 复制一个项目后,错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException:

我看了很多个博客,都没有找到解决方法,而且我之前都没有这个bug,经过我的仔细研究发现,重命名此项目,可以将中文的内容删掉,改为_copy或你想改的,只要没有中文就行。如果有效的话请点个👍吧,Thanks for watching!

2023-09-24 19:33:16 387

原创 RabbitMQ里的几个重要概念

交换机有不同的类型,包括直接交换机(Direct Exchange)、主题交换机(Topic Exchange)、扇形交换机(Fanout Exchange)和头交换机(Header Exchange)。交换机基于消息的路由规则将消息派发给特定的队列。交换机(Exchange)是RabbitMQ中的一种重要组件,它负责接收发送者(生产者)发送的消息,并将其路由到一个或多个队列中。总结来说,RabbitMQ中的交换机起到消息分发和路由的作用,帮助将消息从生产者传递到消费者,实现灵活、可靠的消息通信。

2023-09-22 18:58:20 666

原创 ShardingSphere UnknownDatabaseException: null

这个错误是由于在使用ShardingSphere时,指定了数据库名导致的,

2023-09-15 10:18:13 470

原创 docker登陆mysql,密码正确却提示错误

我举个例子加入你的data是你之前挂载过的,那么你之前的密码比如是qwer123,由于这个data是挂载在你宿主机上的,那么你每次启动就还是原来的qwer123,无论你新设置的环境变量是啥,都不好使,因为之前你挂载的data就没删掉,还是旧的,root密码就是qwer123。经过笔者长达近1个小时的搜索,终于找到了原因,看了其他几篇博客,之说了解决的办法,却没说docker登录Mysql提示密码错误的原因是是啥,遇到这个问题特此记录。本质上你登陆不上的原因,就是密码不对,但是我明明不是用了。

2023-09-08 16:24:07 1096 1

原创 简单的解决 java: java.lang.UnsupportedClassVersionError

你必须让你编译的jar包版本和linux上运行的java版本一致。下面这个Maven可以制定编译成jar包时选择的java版本。然后在Maven编译的时候添加你想要制定的版本。先看你Linux的上运行的java版本,比如我的linux上java版本是。查看linux上的java版本。我的是11所以下面也改成11。

2023-08-26 17:16:04 354

原创 Mybatisplus报错 field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass

这个错误是因为在 Java 9 及之后的版本中,模块化系统 (Module System) 引入了访问限制,导致无法访问 java.lang.invoke.SerializedLambda 的私有字段 capturingClass。其实是Mybatisplus和Java的版本兼容出现了问题。Java8以上的版本可以直接升级到mybatisplus的。所以可以通过升级Mybatisplus的版本来解决。

2023-08-20 11:21:20 5450 6

原创 轻松在Docker上部署Mysql8以上的版本

由于我们通常需要绑定配置文件,还有数据库数据到本地硬盘上,所以要创建数据卷在本地的目录还需要创建一个配置文件进行绑定创建后:wq保存文件。

2023-08-18 11:50:44 245

原创 比较优雅的用Springboot接受Post请求体的单个参数

我想了想还是用fastjson的JSONObject接受没准更好一点,但是这个见仁见智,本身JSONObject也是Map,是Map的子类,但用JSONObject接受可读性也许会好一点,而且JSONObject也有一些处理JSON数据的方法。感觉都没那么优雅,用直接用Map怎么都感觉有点不太得劲,可读性上稍差一些。下面上个例子吧,但对于接受的单个参数用的时候还是得做强转。之前见过用Map声明的,用自定义注解的。如果有更好的接受方式,请在评论区提出✌。

2023-08-16 15:15:43 829

原创 轻松解决docker容器启动闪退

执行这个命令的时候闪退,其实这个是命令是对你的文件夹有一些要求的,有时你如果像直接挂载到你本机的文件夹上需要内部还有一些文件。其实我们有时候没必要直接挂载到你指定的文件夹上,我们可让docker自己帮我们创建这个数据卷,可以把命令改成。mysql_log、mysql_data、mysql_conf这几个数据卷会有docker帮我们管理。比如我直接执行这个命令后,就报错说里面没有这个文件夹。Mountpoint就是挂载点了。这样就完成了容器的启动和挂载😆。

2023-08-15 19:36:46 682

原创 mysql密码策略查看

可以通过查看Mysql当前版本指定的密码策略来设置密码。有时候设置密码的时候总是不满足密码策略。

2023-08-15 11:11:09 450

原创 Markdown编译器的使用

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S

2023-08-15 11:07:34 188

原创 Http请求响应时间一般划分标准

需要注意的是,具体的响应时间标准可能因应用的特性、性能需求和用户期望而有所不同。因此,在实际应用中,需要根据具体情况来确定何时将HTTP请求的响应时间视为长或短,并结合性能优化措施来提升系统的响应速度。快速响应:通常在几百毫秒(100~500ms)的响应时间被认为是快速响应。长时间响应:通常超过数秒钟的响应时间被认为是长时间响应。较长响应:通常在1秒到数秒之间的响应时间被认为是较长响应。中等响应:通常在数百毫秒到1秒之间的响应时间被认为是中等响应。即时响应:通常在毫秒级别的响应时间被认为是即时响应。

2023-08-11 22:19:33 5338

原创 数据库设计,理解第二范式和第三范式的区别

在学习数据库范式的时候,很多人搞不清第二范式和第三范式他到底是有啥区别。想讲清楚第二范式与第三范式的区别,不得不聊到键和相关属性的概念。

2023-08-11 13:48:31 441

原创 Linux systemctl 简单介绍与使用

通过systemctl命令,您可以方便地对各种系统服务进行管理和控制,包括网络服务、文件服务、日志服务等等。在Linux下,systemctl是一个管理系统服务的命令。它提供了对systemd服务的控制和管理。

2023-08-03 11:11:41 774

原创 dependencies,dependencyManagement的区别与使用

在微服务项目中,绕不开的问题就是依赖,在依赖管理中dependency和dependencyManagement是两个十分重要的标签,下面介绍这俩标签的区别与使用。

2023-07-29 12:29:55 663

原创 如何十分优雅简单的升级Linux服务器上的java版本

如果您尚未安装Java 11,可以通过使用包管理器来安装。系统会列出已安装的Java版本,并要求您选择默认版本。输入对应Java 11版本的编号,然后按回车键确认。完成这些步骤后,您的Linux系统中的Java版本应该已经成功升级到Java 11了!首先,检查您的系统是否已安装Java 11。如果Java 11已经安装,则可以直接跳到第4步。接下来,您需要更新系统的Java默认版本。

2023-07-21 16:19:45 4700

原创 简单解释在Java中,什么是POJO(Plain Old Java Object)

POJO(Plain Old Java Object)是指普通的Java对象,它是一个简单的、基本的Java类,没有任何特殊要求或限制。POJO类通常只包含私有字段、公共访问方法(getter和setter)以及一些自定义的方法。// 构造方法 public Person(String name , int age) {} // getter和setter方法 public String getName() {return age;

2023-07-20 10:17:24 995

原创 Springboot中使用@Autowired注入的条件是什么?

被注入的类必须在Spring容器中进行管理,也就是说它需要被扫描到并注册到Spring容器中。可以通过在主应用程序类上使用@SpringBootApplication注解或在配置类上使用@Configuration注解来开启组件扫描。被注入的类需要有一个无参构造函数。这是因为Spring Boot使用默认的构造函数来实例化被注入的类对象。被注入的类必须在运行时可见,即不能是private或protected的,同时也不能是final的。被注入的类不能是一个接口或抽象类,必须是一个具体的类。

2023-07-12 12:20:00 1069

原创 如何生动的理解Java8对集合操作的流

流水线操作:流提供了一系列的中间操作方法,如筛选、映射、排序等,这些方法都是将数据进行转换或处理,并返回一个新的流。通过这种方式,流可以帮助我们以一种更简洁、易读和灵活的方式来处理数据。它能够简化集合的操作,并提供了丰富的操作方法,使得我们能够以更函数式和声明性的方式处理数据。终止操作:当你调用流的终止操作方法时,才会触发流的计算,执行一系列的中间操作,并返回最终的结果。惰性计算:流是惰性计算的,也就是说当你调用流的操作方法时,并不立即执行计算,而是将操作添加到流的流水线中。方法将列表转换为流,然后使用。

2023-07-09 22:57:37 251

原创 Mybatis不得不说的一个好用的特性

比如这里有一个PostDO类的对象,此时这个PostDO类的对象 postResult,是没有id的,我们并没有给他指定id,因为我们需要把这个postResult这个对象插入的mysql的表里,mysql在这个postResult所在表的id是自增的,所以我们无需处理。在Mybatis使用的过程中,不只是有增删改查,在开发过程中我往往容易忽略这样的一个特性。插入完成,此时如果你想获得postResult可以直接用。而无需写一条sql语句去获取。PostDO类的实现如下。

2023-07-01 11:30:08 114

原创 JSONObject.toJSONString方法解析对象时的细节

JSONObject.toJSONString在解析一个对象的时候,如果某些属性比如User类里面有name,age属性,如果有些属性为空,没有设置值,则解析时不会进行解析,只会解析被设置了值的属性,不会解析没有设置值的属性。在Alibaba库下的JSONObject类。假入有一个User类。

2023-06-24 12:51:29 568

原创 关于ThreadLocal里的值可以被WebSocket的afterConnectionEstablished获取,但无法被afterConnectionClosed获取的问题

在使用ThreadLocal存储用户的openid时(这里的openid是用于微信小程序开发的,在你的开发环境中可以换成任意的你想存放在ThreadLocal即本地线程中的变量),需要注意ThreadLocal的作用范围。ThreadLocal是基于线程的,它为每个线程提供了一个独立的副本,并且在WebSocket的生命周期中,afterConnectionEstablished和afterConnectionClosed方法运行在不同的线程上。

2023-06-16 10:58:28 399

原创 同样是存储在内存中,为什么我们不选择将数据存储在Java内存中,而是将数据存储在Redis里?

需要注意的是,Redis作为一个独立的数据库服务,与应用程序通过网络进行通信,而Java内存的Map直接在应用程序内部使用。对于较小规模的数据集和简单的数据需求,直接使用Java内存的Map可能更加适合。但对于大规模的、需要持久化、分布式支持以及复杂数据操作的场景,Redis是一个更强大和适用的选择。高级数据结构:Redis提供了丰富的数据结构,如字符串、哈希表、列表、集合和有序集合等,并且支持在这些数据结构上执行各种原子操作和高级操作。而使用Java内存的Map,当应用程序关闭或重启时,数据将会丢失。

2023-06-16 10:05:50 411

原创 如何简单通俗的理解什么是跨域

例如,当页面在http://www.example.com 中,它只能够请求网站内部的资源,而不能请求 http://www.baidu.com 的资源。解决跨域问题可以有多种方式,例如在服务器端设置响应头Access-Control-Allow-Origin来允许特定的域名或者所有域名的请求,或者通过 JSONP、CORS、代理等方式。而跨域请求就是指与当前域名不同的域名或端口的请求。这种情况下,如果服务器响应头信息中没有设置允许跨域,则浏览器就会限制向该跨域的请求发送数据,即出现跨域问题。

2023-06-10 17:24:29 68

空空如也

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

TA关注的人

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