自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 文章格式混乱问题

博客的文章是不断用juejin同步过来的 博客的格式混乱 原文章在ObjectNotNil 的个人主页 - 动态 - 掘金

2024-01-03 21:09:02 754

原创 Java新特性梳理——Java19

highlight: xcodetheme: vuepress概述JDK 19 于 2022 年 9 月 20 日正式发布以供生产使用,非长期支持版本。不过,JDK 19 中有一些比较重要的新特性值得关注。JDK 19 只有 7 个新特性:JEP 405: Record Patterns(记录模式)[1] (预览)JEP 422: Linux/RISC-V Port[2...

2024-07-20 20:27:33 240

原创 Java新特性梳理——Java18

highlight: xcodetheme: vuepress概述Java 18 在 2022 年 3 月 22 日正式发布,Java 18 不是一个长期支持版本,这次更新共带来 9 个新功能。默认的UTF-8字符编码JDK 一直都是支持 UTF-8 字符编码,这次是把 UTF-8 设置为了默认编码,也就是在不加任何指定的情况下,默认所有需要用到编码的 JDK API 都使...

2024-07-20 20:17:20 271

原创 Java新特性梳理——Java17

highlight: xcodetheme: vuepress概述JDK 16 刚发布半年(2021/03/16),JDK 17 又如期而至(2021/09/14),这个时间点特殊,蹭苹果发布会的热度?记得当年 JDK 15 的发布也是同天。Oracle 宣布,从 JDK 17 开始,后面的 JDK 都全部免费提供!!!JDK 17 是自 2018 年 JDK 11...

2024-07-20 08:40:49 348

原创 Java新特性梳理——Java16

highlight: xcodetheme: vuepress概述2021 年 3 月 16 日正式发布,一共更新了 17 个 JEP。https://openjdk.java.net/projects/jdk/16/语法层面变化密封类(第二次预览)通过密封的类和接口来增强 Java 编程语言,这是新的预览特性。用于限制超类的使用密封的类和接口限制其他可继承或者实现...

2024-07-17 22:12:43 244

原创 聊聊常见的分布式ID解决方案

highlight: xcodetheme: vuepress为什么要使用分布式ID?随着 Web 开发技术的不断发展,单体的系统逐步走向分布式系统。在分布式系统中,使用分布式 ID(Distributed IDs)主要是为了在没有单点故障的情况下生成唯一标识符。这些唯一标识符在很多场景中非常重要,例如数据库记录的主键、消息队列中的消息ID、日志系统中的唯一事件ID等。使用分布式 ...

2024-07-14 22:53:54 1090

原创 [Java]Swing版坦克大战小游戏项目开发(1)——new出一个窗口

highlight: xcodetheme: vuepress前言本系列文章带领 Java 初学者学习使用 Java 语言结合 Swing 技术以及设计模式开发一款经典小游戏——坦克大战。通过这个小游戏,你可以学会很多实用的设计模式思想,并且提高你的编码水平。熟悉FrameFrame 类是 Java Swing 技术的核心类,它表示一个窗口。然后开发者可以在这个窗口里面画各...

2024-07-08 22:06:22 265

原创 Java新特性梳理——Java15

highlight: xcodetheme: vuepress概述2020 年 9 月 15 日,Java 15 正式发布,(风平浪静的一个版本)共有 14 个 JEP,是时间驱动形式发布的第六个版本。相关文档:https://openjdk.java.net/projects/jdk/15/语法层面变化密封类通过密封的类和接口来增强 Java 编程语言,这是新的预...

2024-07-03 22:53:36 351

原创 Java新特性梳理——Java14

highlight: xcodetheme: vuepress概述Oracle 在 2020 年 3 月 17 日宣布 Java 14 全面上市,Java 14 通过每六个月发布一次新功能,为企业和开发人员社区提供增强功能,继续了 Oracle 加快创新的承诺。最新的 Java 开发工具包提供了新功能,其中包括两项备受期待的新预览功能,实例匹配的匹配模式(JEP 305)和记录(J...

2024-06-30 22:32:13 792 1

原创 Java新特性梳理——Java13

highlight: xcodetheme: vuepress概述2019 年 9 月 17 日,国际知名的 OpenJDK 开源社区发布了 Java 编程语言环境的最新版本 OpenJDK 13。Features:总共有 5 个新的 JEP(JDK Enhancement Proposals):http://openjdk.java.net/projects/jdk/13/...

2024-06-24 21:16:13 519

原创 解决你的浏览器“由你的组织管理问题”

highlight: xcodetheme: vuepress问题引入昨天晚上突然想起来要把浏览器的主页改一下,总是看到 2345 网址导航的作为主页满屏的牛皮癣广告,看得我十分不舒服,所以就想改一下主页。点击设置,突然发现最下面有一行字:“由你的组织管理”。真是奇怪我的电脑也没有中毒啊,怎么会变成了这样?后来我点击进入设置主页的页面发现无法设置主页了,竟然被锁定了。再...

2024-06-23 22:46:23 332

原创 Java新特性梳理——Java12

highlight: xcodetheme: vuepress概述2019 年 3 月 19 日,Java 12 正式发布了,总共有 8 个新的 JEP(JDK Enhancement Proposals)。Java 12 的版本特性地址:http://openjdk.java.net/projects/jdk/12/语法层次改变switch表达式(Preview)...

2024-06-20 22:42:41 950

原创 Java新特性梳理——Java11

highlight: xcodetheme: healer-readable概述2018 年 9 月 26 日,Oracle 官方发布 Java 11。这是 Java 大版本周期变化后的第一个长期支持版本,非常值得关注。最新发布的 Java 11 将带来 ZGC、HttpClient 等重要特性,一共 17 个需要我们关注的 JEP。参考文档:http://openjdk.ja...

2024-06-19 22:22:02 297

原创 Java新特性梳理——Java10

highlight: xcodetheme: vuepress概述2018 年 3 月 21 日, Oracle 官方宣布 Java 10 正式发布。Java 9 和 Java 10 都不是 LTS(Long-Term-Support)版本。和过去的 Java 大版本升级不同,这两个只有半年左右的开发和维护时间。而 Java 11 也是就是 18.9,才是 Java 之后的第一...

2024-06-16 21:50:53 365

原创 Java新特性梳理——Java9

highlight: xcodetheme: vuepress简介Java 8 及之前,版本都是特性驱动的版本更新,就是有重大的特性产生,然后进行更新。Java 9 开始,JDK 开始以时间为驱动进行更新,以半年为周期,到时即更新。三年出一个长期支持版,其他都是短暂的版本。目前的长期支持版有 Java 8、Java 11 和 Java 17。这些版本大家注意在将来的工作中使...

2024-06-15 19:46:20 401

原创 尝试写一下2024江苏语文高考作文,AI并不会让我们的问题越来越少!

theme: devui-blue前言偶然之间,在微信公众号南京本地宝发的帖子看到高考作文揭晓的标题,于是好奇地打开了这篇帖子。看到第一个作文题目,这是一个非命题作文题。简单来说就是让你发表对互联网、AI 的看法,它们帮我们解决了很多问题,我们的问题是否真的越来越少?这个题目确实挺有意思,真的与时俱进。想当年,江苏高考语文充斥着风花雪月、虚无缥缈的东西,自从改革之后就和社会发展...

2024-06-09 21:51:33 981

原创 如何快速导入并构建Spring Framework源码?

highlight: xcodetheme: vuepress问题引入Spring Framework 的源代码是一位高级 Java 程序员必须要掌握的,之前学习源码很多时候都是通过 IDEA 反编译来查看 Spring 源码的。学习源码最好还是把官方的代码下载下来然后导入到 IDEA 编译构建,然后一步一步调试。之前尝试了很多次构建 Spring 源码要么就是 IDEA 一直...

2024-06-03 20:10:29 324

原创 优雅地设计一个Restful响应体类(结构体)——R

highlight: xcodetheme: vuepress简介今天给大家介绍一下如何设计一个业务数据响应体类,就是前端每次请求后端返回的数据我们要统一数据结构,不能想怎么写就怎么写。规定一个通用的后端数据响应体类十分必要。响应体类R其实也很简单,只需要声明一个类,随便你叫什么。R、Result、RestResponse 都行啦,我这边为了简洁声明为了 R 类。R ...

2024-05-29 22:37:59 395

原创 面试官:我这边没什么问题了,你还有什么问题要问我的吗?

简介在我们找工作面试的时候,到最后的环节,面试官总是会问:“我这边没什么问题了,你还有什么问题要问我的吗”。这基本上每次面试是必定会有的问题。我们一般要怎么回答呢?有的朋友没有掌握技巧,总是瞎问一通,没有目的性,给面试官留下不好的印象。本篇文章就给大家提供几个参考话术,祝愿各位都可以取得心仪的 Offer!什么人问你?问你的人通常是两种人,一种人是技术面试官,可能将来是你的领导...

2024-05-28 23:11:56 169

原创 聊聊几种常见的分布式Session解决方案

highlight: xcodetheme: vuepress问题引入:什么是分布式Session?分布式 Session 是指在多台服务器之间共享和管理用户的会话数据,使得用户的会话状态能够在不同的服务器上保持一致。这样,无论用户的请求被路由到哪台服务器,都能够访问到相同的会话信息,从而保证用户体验的一致性。回顾一下单机服务的 HttpSession 的存储:在传统的 J...

2024-05-26 22:47:54 475

原创 新奇玩法!在Vue3中使用class component、注解和TSX!

问题引入可能你看到标题会很奇怪,Vue3 不是已经不推荐在 Vue 中使用类组件了吗?因为类组件其实和 export default 选项式的对象写法本质差不多,但是这样不利于复用。在 Vue3 中主张的一个思想就是组合函数复用,只要有 setup 的地方就可以使用组合函数。第二个问题,为什么要使用注解?哦哦,可能是 Java 里面叫习惯了,JavaScript 中对应的是叫“装饰器”...

2024-05-20 21:42:12 487

原创 开发一个极简的IoC容器实现声明式注入,业余时间做点小玩具。

highlight: xcodetheme: vuepress前置知识回顾一下Spring FrameworkBeanFactory 作为 Spring Framework 最顶层的一个接口,定义了 IOC 容器的基本功能规范。从类图中我们可以发现最终的默认实现类是 DefaultListableBeanFactory,它实现了所有的接口。那么为何要定义这么多层次的接口呢?...

2024-05-13 21:13:51 261

原创 有尝试过开发自定义Spring Boot Starter吗?没有的话不妨来试一下!

theme: smartbluehighlight: xcode问题引入Spring Boot 框架如今是一名 JavaER 必备的技能,使用它非常简单,只要创建好一个工程之后引入 parent 依赖以及几个必要的 Spring Boot Starter 就可以构建一个 Spring Boot 应用程序了。很多人工作了很多年了,都只是引入官方或者第三方的 Spring Boot...

2024-05-12 22:55:20 340

原创 聊聊Mybatis中的设计模式,最适合JavaER的第一个源码阅读材料。

highlight: xcodetheme: vuepress回顾一下MybatisMyBatis 是一个用 Java 编写的持久层框架,它提供了一种以简单的 XML 或注解配置的方式来进行数据库操作的方法。MyBatis 的核心思想是将 SQL 语句与 Java 方法进行映射,从而避免了传统的 JDBC 编码中的大量样板代码,使得数据库操作更加简单和直观。MyBatis ...

2024-04-27 11:44:59 237

原创 浅谈Spring Framework中的设计模式,构建极简的IOC容器实战。

theme: vuepresshighlight: xcodeSpring Framework简单介绍Spring 是面向 Bean 编程的 Java 应用程序框架(BOP: Bean Oriented Programming)。Bean 在 Spring 中才是真正的主角。Bean 在 Spring 中作用就像 Object 对 OOP 的意义一样,没有对象的概念就像没有面向对象...

2024-04-05 21:50:23 694

原创 2023年一年经验的码农工作总结,经历有点魔幻。

theme: vuepress简述光阴似箭,2023 年一眨眼就过去了。第一次做年度工作总结(Abnormal),就浅浅地记录一下 2023 在码场搬砖的一年。现在已经是三月了,写去年的年终总结可能是有点“不合时令”了。哈哈,文章也是要讲究一个季节时令。一切都得从考研说起2022 年我只工作了半年(其实我从 2022 年 1 月就开始实习了,后来因为 Covid-19 gap ...

2024-03-17 16:07:11 693

原创 开发一款Typora自定义图片上传命令行工具,上传到你自己的图床!

highlight: xcodetheme: vuepress为什么要开发这款工具?Typora 是一款 IT 界常用的 Markdown 笔记软件,它有强大的 Markdown 语法功能。同时它也可以粘贴图片、音频、视频等媒体文件。通常,从剪切板粘贴的图片都会默认保存到本地的 assets 同级目录中,文件名称为截图工具生成的名称。保存在本地虽然说可以长时间保存,但是如果...

2024-02-12 14:59:18 933

原创 [Go数据结构与算法]3. 二叉树的结构与实现

highlight: xcodetheme: vuepress二叉树的定义二叉树是一种常见的数据结构,区别于一般的线性表,它有一个节点保存了指向其他两个节点的指针。对于它指向的两个节点,同时也保存了指向了其他两个节点的指针。二叉树节点的定义Val 字段保存了数据,Left 和 Right 字段分别表示指向根节点的左右子节点的指针go// 二叉树节点 type Tr...

2024-02-11 22:25:59 370

原创 [Go数据结构与算法]2. 栈与队列的结构与实现

theme: vuepresshighlight: xcode栈的定义栈是一种基于线性表实现的数据结构,特性是先进后出。先进入栈的元素后出来。结构体定义先定义栈的接口 Stack:```go// 栈的接口 type Stack[T comparable] interface { // 判空 IsEmpty() bool // 返回大小 Siz...

2024-01-21 18:18:05 895

原创 [Go数据结构与算法]1. 线性表的结构与实现(基于泛型实现),码农一定要学好算法。...

highlight: xcodetheme: vuepress前言笔者发现关于 Go 语言方面的数据结构算法教程十分稀少,包括书籍和视频还有文章,所以决定出一系列关于 Go 语言实现的数据结构算法教程。本教程基于 Go SDK 1.20 还有 1.18 版本集成进来的新特性,例如泛型编程等。预计会出 8~10 篇文章,不间断更新。 数组列表的定义Go 语言内置的切片其实就是...

2024-01-20 23:26:07 830

原创 Webstorm无法识别Vite构建的工程的@别名符号解决方案——偷梁换柱骚操作。

问题简述在 2022.1 版本 Webstorm IDE 里面,创建好一个 Vite 工程之后,IDE 会提示 Cannot resolve xxx。意思就是说无法解析 @ 符号表示的路径。问题分析可能是版本比较老旧的原因,新版的 2023 就没有这个问题,因为它自身集成了 Vite 官方的语法插件。旧版的只是自己手动下载了一个第三方的 Vite Integrated 插件,可能语...

2024-01-01 10:03:22 1597

原创 使用Wails构建跨平台GUI程序快速入门,Electron的不错平替方案。

theme: juejinhighlight: xcodeWails简介Wails 是一个能让你使用 Go 和 Web 技术栈构建桌面应用程序的项目。你可能听说过 Electron,这是 Github 开源的一个跨平台桌面应用程序开发的解决方案。像我们熟知的 VS Code、Typora 都是使用 Electron 开发的,界面部门使用 Web 技术栈实现,所以你会感觉跟使用浏...

2023-12-27 22:37:12 1752

原创 使用备忘录模式来优化判断数据是否发生修改,堆屎也是一门艺术!

场景复现在后台管理系统的 CRUD 开发当中,免不了需要校验表单的操作。比如,校验表单的参数是否合法,当然,很多组件库的表单组件都支持表单校验,码农们只需要写好校验规则即可。今天遇到的需求场景就是在编辑一条表格中的数据的时候要判断用户是否修改了表单的数据,如果没有,那么就提示没有发生修改,无法提交! 如果用户修改了数据才可以提交。这时候你可能会想到拷贝一份表单的备份数据,然后在提交...

2023-12-24 22:08:57 1138

原创 Element Plus表单调用resetFields方法失效解决方案,论nextTick函数的重要性!

场景复现在我们日常 Vue3 开发当中,总是会离不开 Element UI 组件库,组件库中还是得属表单和表格的使用频率最高。比如,后台管理系统中,会大量地使用表格和表单。而且,我们通常都会在开发 CRUD 接口的时候复用同一个表单和对话框来实现查看详情、新增数据、修改数据的效果,这样可以大大减少冗余视图结构代码,提高代码复用性。具体一点讲,在点击新增按钮的时候,会弹出对话框显示添加数...

2023-12-21 23:28:37 921 1

原创 Node Exporter源码分析以及二次开发,玩转Prometheus生态组件!

Node Exporter源码分析Node Exporter 是一款使用 Go 语言编写的基于 Prometheus 生态的采集器程序,它可以用来采集目标机器的 CPU、内存、磁盘、网络 I/O 等指标信息,最后等待 Prometheus Server 通过 HTTP 接口拉取指标数据存储到 Prometheus Server 内置的 TSDB 中。Node Exporter 是基于 Pr...

2023-08-17 15:59:59 1011

原创 [Goroutine]使用多协程并发地按照顺序打印字母表

theme: channing-cyan今天分享一道非常经典的并发问题,使用多个协程按照顺序打印字母表的字母,每个打印 10 次。思路:显然这里是要我们管道和协程完成同步交替打印,先把问题缩小,思考三个协程打印 a、b、c 的情形。最直接的思路就是定义三个管道,第 1 个协程打印完之后之后通知下一个协程,最后一个协程打印完成之后通知第 1 个协程继续打印,从而形成一个环。代码如下:...

2023-08-01 17:11:57 360

原创 [Docker]使用Docker部署常见的中间件

theme: healer-readablehighlight: xcode本篇文章给大家介绍如何使用 Docker 部署在企业工作中常用的中间件服务。Nginxshelldocker run -d \ -p 80:80 --name nginx-server-conf \ -v /opt/nginx-server-conf:/usr/share/ngin...

2023-07-26 15:18:51 433

原创 [wire]Go依赖注入库wire最佳实践

Wire简介Wire 是一款使用了依赖注入的来让连接组件变得自动化的代码生成工具。组件之间依赖关系在 Wire 种体现为函数的参数,Wire 鼓励显式地初始化参数而不是定义全局变量。因为 Wire 在运行时不依赖运行时状态和反射,使用 Wire 写出来的代码甚至可以替代手写的初始化代码。官方介绍文档:introductory blog post.安装使用下面的命令安装:sh...

2023-07-11 17:35:30 477

原创 [Docker]使用Docker部署Kafka

Kafka 是一个分布式流处理平台,它依赖于 ZooKeeper 作为其协调服务。在 Kafka 集群中,ZooKeeper 负责管理和协调 Kafka 的各个节点。因此,要在 Docker 容器中启动 Kafka,通常需要同时启动一个 ZooKeeper 服务作为其依赖。可以按照以下步骤来启动 Kafka 容器,并确保同时启动了 ZooKeeper 服务:创建一个 Docker 网络:...

2023-06-21 13:45:51 1128

原创 [Fiber]基于FastHttp引擎的高性能Web Framework简单入门

highlight: xcode简单介绍Fiber 是一个受著名的 Node.js 的 Web Framework —— Express.js 启发的 Web 框架,建立在 Fasthttp 之上,Fasthttp 是 Go 最快的 HTTP 引擎。旨在简化快速开发,同时考虑零内存分配和性能。安装首先,需要下载并安装 Go SDK 1.17 或更高版本。输入以下命令安装 F...

2023-06-19 16:16:27 179

空空如也

空空如也

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

TA关注的人

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