编程开发
未读
八股文系列——Java并发
线程和进程的区别 本质区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位 开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切
编程开发
未读
八股文系列——消息队列
消息队列有什么用? 通常来说,消息队列有三个作用: 异步 削峰 解耦 除此之外,消息队列还有一个频繁使用的场景是延时队列。 异步 通过将次要操作异步处理,可以减少接口的响应时间,提高系统性能。 比如在购买火车票的场景中,用户在下订单时不需要立马发送短信通知,可以将发送短信通知放入消息队列中,由消费者
编程开发
未读
SpringBoot多版本接口实现
一般来说,Restful API接口是提供给其它模块,系统或是其他公司使用,不能随意频繁的变更。然而,需求和业务不断变化,接口和参数也会发生相应的变化。如果直接对原来的接口进行修改,势必会影响线其他系统的正常运行。这就必须对api 接口进行有效的版本控制。
教程
未读
Jetbrains全家桶/DataGrip/IDEA激活教程——Mac版
注:该教程仅适用于Mac版,仅供学习交流,严禁用于商业用途,请于24小时内删除 IntelliJ IDEA 2023.3.2 (Ultimate Edition)测试有效 DataGrip 2023.3.2测试有效 准备工作 1、官网下载并安装IDEA/DataGrip等软件 下载地址(如已下载可跳
教程
未读
自建图床的方案思考以及搭建教程
前言 现在markdown越来越受欢迎,但是markdown有一个很麻烦而且一直很难解决的问题就是文章中图片资源的处理。 不像word、pdf这种将图片内嵌在文件中,markdown只能引用外部的图片资源,这意味着要么在本地弄一个文件夹专门用来存放图片,通过相对路径引用;要么将图片存放在网上,通过图
问题排查
未读
动态代理导致的Metaspace OOM(元空间内存溢出)问题
我们团队的一个项目,测试环境最近隔三岔五报错,虽然不是生产环境,但既然有报错那还是得排查下,以免带到了生产环境导致事故。
登录上测试环境服务器,查了下日志,发现是Metaspace内存溢出。
问题排查
未读
记一次Serializable序列化和反序列化导致的线上报错
背景 某个需求上线后告警群里面收到了报错的消息,报错摘要如下: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Fail
编程开发
未读
到底为什么不建议使用SELECT *?
“不要使用 SELECT *”几乎已经成为了使用MySQL的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用 *作为查询的字段列表,更是让这条规则拥有了权威的加持。 不过我在开发过程中直接使用 SELECT *还是比较多的,原因有两个: 因为简单,开发效率非常高,而且如果后期频繁添加或修
教程
未读
手把手教你如何从0到1搭建一套基于Halo的博客站点
最近准备找新的工作了,在准备面试的过程突然感觉到,一个程序员没有自己专属的网站,总是感觉似乎少了点什么。从我这么多年学习和工作的经验来看,一个程序员要想保持对技术的热情,除了不断地学习新知识外,对技术的深度思考以及将这些思考分享出来也是很重要的。
而回顾这些年自己积累的东西,除了学习时记录的那些笔记之外,似乎还没有属于自己思考过的东西。
正所谓“学而不思则罔,思而不学则殆”,只是埋头学习技术,而不去深入思考其本质,去总结,学习的永远只是表层的东西,学再久也只能成为熟练的工具使用者,而不是创造者。
如何给服务器创建swap分区
我们在安装系统的时候已经建立了 swap 分区。swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。 ——百度百科 当我们想要搭建一个自己用来学习或分享知识的网站的时候
编程开发
未读
使用Java原生库封装一个简单好用的Http请求工具类
需求 最近在写一个Spring boot的Java后端小项目,而在项目的需求中需要向网络发送http请求收集(爬取)网络上的信息。具体的需求如下: 能发送get、post请求; 通过方法添加查询参数而不是用拼接url的方式; 发送post请求能携带表单数据和json格式的数据; 能添加自定义头信息;