自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴声子夜歌的博客

个人学习笔记

  • 博客(1427)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux运维——oh-my-zsh

使用 Linux 的人都知道:*Shell_ 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 的类型有很多种,linux 下默认的是 bash,虽然 bash 的功能已经很强大,但对于以懒惰为美德的程序员来说,bash 的提示功能不够强大,界面也不够炫,并非理想工具。

2025-03-09 13:36:24 1094

原创 Linux运维——软件管理

默认情况下,rpm 会将软件包安装到系统的标准目录中。手动解压 RPM 包并指定安装目录。使用 rpm 命令的 --prefix 选项(如果软件包支持)。安装文件默认位置:根据软件包设计,分散在/usr//etc//var/等目录。配置文件位置:通常位于/etc/目录下。查询文件位置:使用。自定义安装路径:使用--prefix选项(如果支持)。默认情况下,yum 会将软件包安装到系统的标准目录中。手动解压 RPM 包并指定安装目录。

2025-03-02 12:46:54 796

原创 Linux运维——硬件管理

Linux 下的 IO 统计工具如 iostat,nmon 等大多数是只能统计到 per 设备的读写情况,如果你想知道每个进程是如何使用 IO 的就比较麻烦,使用 iotop 命令可以很方便的查看。df 命令用于显示磁盘分区上的可使用的磁盘空间。du 命令也是查看使用空间的,但是与 df 命令不同的是:du 命令是对文件和目录磁盘使用的空间的查看,还是和 df 命令有一些区别的。free 命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。显示指定文件或目录的磁盘使用情况。

2025-02-26 23:11:52 649

原创 Linux运维——网络管理

作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。它可以用来查找域名的 IP 地址、反向查找 IP 地址对应的域名,以及查询域名的其他 DNS 记录(如 MX、NS 等)。它可以用来查找域名的 IP 地址、反向查找 IP 地址对应的域名,以及查询域名的其他 DNS 记录(如 MX、NS 等)。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

2025-02-25 22:51:54 1020

原创 Linux运维——系统管理

ps 命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。crontab 命令被用来提交和管理用户的需要周期性执行的任务,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。kill 可将指定的信息送至程序。

2025-02-13 22:09:59 975

原创 Linux运维——用户管理

‌使用useradd命令时,系统会自动更新相关文件,包括/etc/passwd和/etc/shadow。需要注意的是,useradd命令本身不会为用户创建密码信息,而是使用星号(*)初始化密码字段,随后需要通过passwd或pwdadm命令设置密码。该命令不会操作与用户组关联的文件和目录,但删除用户组后,与该组相关的文件和目录中的组信息可能需要手动更改,以避免权限问题‌。groupadd 命令用于创建一个新的用户组,新用户组的信息将被添加到系统文件中。‌groups命令用于显示用户所属的用户组信息。

2025-02-10 23:54:02 850

原创 Linux运维——文件压缩和解压

gzip 不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和 tar 命令一起构成 Linux 操作系统中比较流行的压缩文件格式。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。gzip 命令用来压缩文件。

2025-02-09 22:37:46 308

原创 Linux运维——文件内容查看编辑

处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。less 命令的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 命令允许用户向前或向后浏览文件,而 more 命令只能向前浏览。more 名单中内置了若干快捷键,常用的有 H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

2025-02-07 22:16:15 769

原创 Linux运维——文件目录管理

scp 命令用于在 Linux 下进行远程拷贝文件的命令,和它类似的命令有 cp,不过 cp 只是在本机进行拷贝不能跨服务器,而且 scp 传输是加密的。Linux 用 户分为:拥有者、组群(Group)、其他(other),Linux 系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及 root 的相关信 息, 都是记录在/etc/passwd文件中。注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。从左至右用 0-9 这些数字来表示。

2025-02-07 21:42:30 1001

原创 Linux运维——查看命令帮助信息

man 命令是 Unix 和 Linux 系统中不可或缺的工具,用于查看系统命令、配置文件、库函数和其他系统组件的手册页。更有效地使用 man 命令来获取所需的信息,可以提高你的系统管理和开发效率。

2025-02-06 22:49:15 889

原创 Linux——防火墙

防火墙虽然有软件或硬件之分但是主要功能还是依据策略对外部请求进行过滤,成为公网与内网之间的保护屏障,防火墙会监督每一个数据包并判断是否有相应的匹配策略规则,知道满足其中一条策略规则为止,而防火墙规则策略可以是基于来源地址、请求动作或协议来定制的,最终仅让合法的用户请求流入到内网中,其余的均被丢弃。在红帽RHEL7系统中firewalld服务取代了iptables服务,但依然可以使用iptables命令来管理内核的netfilter。

2025-01-31 22:09:13 900

原创 Java—— CompletableFuture

在JAVA8开始引入了全新的CompletableFuture类,它是Future接口的一个实现类。也就是在Future接口的基础上,额外封装提供了一些执行方法,用来解决Future使用场景中的一些不足,对流水线处理能力提供了支持。CompletableFuture 可以从全局的 ForkJoinPool.commonPool() 获得一个线程中执行这些任务。但也可以创建一个线程池并传给 runAsync() 和 supplyAsync() 来让他们从线程池中获取一个线程执行它们的任务。

2024-11-02 14:21:42 1152

原创 Eclipse——Java开发详解

打开,弹出的页面里选择,然后选择,打开如下图界面:然后点击右侧add按钮,打开add jre对话框:点击下一步,打开jre路径选择对话框:选择JRE home之后,自动会填充JRE name和下面的jar,这里也可以设置vm参数,一般直接点击finish完成即可。到此新的JRE已经配置完成,如果配置了多个JDK,可以勾选一个作为默认,如下图:打开,弹出的页面里选择,然后选择,打开如下图界面:右侧可以选择编译的版本号,默认情况下,编译版本和你配置的JDK版本一致。这里设置的编译版本影响ecli

2024-10-20 21:13:54 3445

原创 Docker——Dockerfile构建MySQL并初始化数据

这将在后台启动一个名为mysql-instance的MySQL容器,如果一切顺利,您将看到MySQL容器成功启动并执行了初始化SQL脚本。在上述Dockerfile中,我们使用了MySQL5.7官方镜像作为基础镜像,并将初始化SQL脚本。这样,MySQL容器在启动时会自动执行该SQL脚本。

2024-04-01 16:15:09 1281

原创 Git——IDEA中的使用详解

所以需要先更新你拉的新分支上的代码,将其他人更新的代码合并过来,保证你拉的新分支代码与最新的 master 分支代码一致(以免因为丢失最新修改的代码而造成线上事故)之后再将你的新拉的分支代码合并到 master 分支上面。在实际项目开发过程中,当遇到一个需求时,我们并不会直接就在主分支(master)上面进行开发,而是在主分支的基础上单独创建一个新的分支进行开发,当新建分支的代码经过代码评审以及测试验证通过,确认准确无误之后才会将新增的代码合并到主分支master,这才是一个规范的git操作流程。

2024-03-21 17:00:35 13720 6

原创 Git——GitHub远端协作详解

在多人共同开发时,大家都在自己的分支进行Commit,所以拉回来用一般的方式合并时,常会出现为了合并而生成额外的Commit的情况。在GitHub上有非常多的开源项目,有些项目你很感兴趣,也很想帮忙,于是联系项目的原作者跟他说:“我觉得你的项目很有趣,开个权限给我吧,我来帮你加一些功能”。因为当前项目之前曾推送内容到服务器上,所以远端分支也会记录一份在本机上,同样也是有HEAD和master分支,但会在前面加注远端节点origin,变成origin/ HEAD和origin/master。

2024-03-18 22:13:57 2039 1

原创 Git——标签详解

在Git中,标签(Tag)是一个指向某个Commit的指示标。这看起来好像与分支(Branch)一样,但又有一些不太一样的地方”。

2024-03-18 15:15:28 1812

原创 Git——修改历史记录详解

处于Rebase状态的Commit列表与平常看到的记录是相反的,所以如果想在某两个Commit之间再增加Commit,要注意停下来的那个点是不是正确的点。不止这样,因为这两个Commit对象被换掉了,在它之后的Commit因为前面的历史信息被改了,所以后面整串的Commit全部都重做新的Commit对象来替代旧的Commit对象。这里也是一样,看起来只是改字,但因为Commit对象的信息也会影响SHA-1的计算,所以Git会做出新的Commit对象来替代原来的Commit对象。

2024-03-17 22:43:10 4230

原创 Git——分支详解

在Git的世界中,每一次的Commit都是一个对象,它会指向某一个Tree对象(目录),而这些Tree对象会指向其他的Tree对象(子目录)或Blob对象(文件)。事实上不管是谁合并谁,这两个分支上的Commit都是对等的。cat分支与dog分支都是来自master分支,所以不管master是要合并cat分支还是dog分支,Git都会直接使用快转模式(Fast Forward)进行合并,也就是master直接“收割”cat或dog的成果。是的,所谓的“合并分支”,其实是合并“分支指向的那个Commit”。

2024-03-17 21:14:00 12827 4

原创 Git——本地使用详解

HEAD是一个指标,指向某一个分支,通常可以把它当作“当前所在分支”来看待。在.git目录中有一个名为HEAD的文件,其中记录的就是HEAD的内容。从这个文件可以看出,HEAD当前正指向master分支。

2024-03-17 12:36:09 2764

原创 Java——正则表达式详解

Java对正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式。Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()

2024-03-07 13:29:16 13611 4

原创 Java——JAVE(音视频格式转换)

JAVE (Java Audio Video Encoder)是一个纯Java的音视频编码器和解码器库,它是基于FFmpeg。JAVE库提供了一些简单易用的API,用于音频和视频格式的转换、编码、解码等操作。它对于一些基本的音视频处理任务来说是一个不错的选择。这些库都是基于FFmpeg的,并允许在Java中处理音频和视频文件。使用它们可以避免直接调用外部的FFmpeg命令行工具,而是通过Java API来实现音频格式转换等操作。

2024-03-03 17:53:39 18553

原创 Java——高级Swing和图形化编程(二)

目录高级Swing和图形化编程(二)3、高级AWT3.1、绘图操作流程3.2、形状1)、形状类层次结构2)、使用形状类3.3、区域3.4、笔画3.5、着色3.6、坐标变换3.7、剪切3.8、透明与组合4、像素图4.1、图像的读取器和写入器1)、获得适合图像文件类型的读取器和写入器2)、读取和写入带有多个图像的文件3)、示例4)、API4.2、图像处理1)、构建像素图2)、图像过滤高级Swing和图形化编程(二)3、高级AWT3.1、绘图操作流程在最初的JDK1.0中,用来绘制形状的是一种非常简单的机

2024-02-19 21:42:36 1667

原创 Java——高级Swing和图形化编程(一)

目录高级Swing和图形化编程(一)1、表格1.1、一个简单表格1.2、表格模型1.3、对行和列的操作1)、各种列类2)、访问表格列3)、改变列的大小4)、改变行的大小5)、选择行、列和单元格6)、对行排序7)、过滤行8)、隐藏和显示列9)、示例10)、API1.4、单元格的绘制和编辑1)、绘制单元格2)、绘制表头3)、单元格编辑4)、定制编辑器5)、API2、树2.1、简单的树1)、示例2)、编辑树和树的路径3)、API2.2、节点枚举2.3、绘制节点2.4、监听树事件2.5、定制树模型高级Swing和

2024-02-17 15:08:48 1522

原创 Java——Swing详解

目录Swing1、Swing和MVC设计模式2、布局管理2.1、布局管理器2.2、边框布局2.3、网格布局3、文本输入3.1、文本域3.2、标签和标签组件3.3、密码域3.4、文本区3.5、滚动窗格4、选择组件4.1、复选框4.2、单选按钮4.3、边框4.4、组合框4.5、滑动条5、菜单5.1、菜单构建5.2、菜单项中的图标5.3、复选框和单选按钮菜单项5.4、弹出菜单5.5、键盘助记符和加速器5.6、启用和禁用菜单项5.7、工具条5.8、工具提示6、复杂的布局管理6.1、网格包布局1)、gridx、gri

2024-02-14 02:10:16 10200 2

原创 Java——AWT详解

接口方法参数/访问方法时间源JComboBoxJTextFieldTimerJScrollbarItemEvent.getItem()JComboBoxfocusLostFocusEventComponentkeyTypedKeyEventComponentMouseEvent.getX().getY()ComponentmouseMovedMouseEventComponentComponentWindowWindowWindow。

2024-02-12 19:34:35 4749 1

原创 Java——常用JSON解析库详解(fastjson2、gson、jackson)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,相比xml数据交换格式来说,因为解析xml比较的复杂且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过JSON来进行交换。JSON简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。fastjson:阿里gson:谷歌jackson:SpringMVC自带。

2024-02-07 23:19:49 4597

原创 Java——二维码详解

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一种编码方式。它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。二维条码/二维码()是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;

2024-02-03 00:59:26 5710 2

原创 SpringBoot Test详解

spring-boot-test项目:包含核心功能spring-boot-test-autoconfigure项目:支持自动配置通常情况下,我们通过spring-boot-starter-test的Starter来引入SpringBoot的核心支持项目以及单元测试项目以及单元测试库。JUnit:一个Java语言的单元测试框架:为SpringBoot应用提供集成测试和工具支持:支持流式断言的Java测试框架Hamcrest:一个匹配器库Mockito:一个Java Mock框架。

2024-02-01 15:45:25 16957

原创 JsonPath详解

JsonPath是用来解析多层嵌套的JSON数据。可以认为JsonPath就是JSON版本的XPath。它是一种信息抽取类库,是从JSON文档中抽取指定信息的工具。JsonPath对于JSON来说,就相当于XPath之于XML。@Test//自定义谓词@Override。

2024-01-28 17:24:25 8831

原创 JSONassert详解

在开发过程中,我们经常需要验证返回结果的正确性。RESTful API接口,返回的数据通常是JSON格式,因此需要一种简单的方法来检查JSON的结构和内容是否符合预期。Java JSONassert是帮助我们实现这一目标的常用工具。Maven依赖:</</</</</JSONAssert.assertEquals(预期JSON ,实际JSON , strictMode );JSONassert有如下4种比较模式,这些不同的模式为JSON的测试比较定义了不同的行为。可扩展性和严格排序LENIENT。

2024-01-26 16:13:28 1380

原创 AssertJ详解

AssertJ 是一个 Java 库,它提供了丰富的断言集和真正有用的错误消息,提高了测试代码的可读性。核心模块:为 JDK 类型(String、Iterable、Stream、Path、File、Map,…)提供断言Guava模块:为 Guava 类型提供断言(Multimap、Optional,…​)Joda Time模块:为Joda Time 类型(DateTime、LocalDateTime)提供断言Neo4J模块:为 Neo4J 类型(路径、节点、关系……)提供断言Swing模块。

2024-01-25 18:22:58 1960

原创 JUnit5.x详解

目录JUnit5.x1、概述1.1、简介1.2、Maven依赖1.3、核心概念2、Junit4迁移到JUnit Jupiter3、生命周期方法4、@TestInstance(生命周期模式)5、显示测试名称5.1、@DisplayName5.2、@DisplayNameGeneration6、条件测试6.1、操作系统条件6.2、Java运行环境条件6.3、系统属性条件6.4、环境变量条件6.5、自定义条件7、执行顺序7.1、@TestMethodOrder(方法顺序)7.2、@TestClassOrder(类

2024-01-14 22:53:05 1402

原创 Mockito3.x详解

/ 在验证失败时,会打印自定义的消息// 任何验证模式下都能使用这种方式Answer接口只有一个方法,Java 8 使用lambda表达式来实现它非常简单。// answer每次都返回12// 用参数里的一个值作为返回值 - 转换成你想要的正确类型可以定义answer/actions,用被调用方法的参数作为answer/actions中lambda的入参。它们依赖的相关answer接口在org.mockito.stubbing包下,Answer接口最多支持5个参数。

2024-01-08 16:53:40 1611

原创 TestNG详解

目录TestNG1、概述1.1、Maven依赖1.2、功能2、启动方式2.1、Idea直接运行2.2、XML调用1)IDEA直接运行xml文件2)、maven使用surefire插件3、XML配置文件3.1、suite标签3.2、suite-files标签3.3、parameter标签3.4、method-selectors标签3.5、test标签1)、选择一个包中的全部测试脚本(包含子包)2)、选择一个类中的全部测试脚本3)、选择一个类中的部分测试脚本4)、选择一个包中的某些组5)、排除一个包中的某些组3

2024-01-07 18:34:35 1189

原创 EasyMock详解

EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。EasyMock提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。Maven依赖:</</</</</创建目标类的Mock录制(Recording)其预期行为,包括动作、结果、调用次数、异常等录制完成后,我们将其切换到重播(Replay)模式,以便Mock在被使用者调用时,表现得和录制时一样。

2024-01-05 01:39:20 2865

原创 JUnit4.x详解

JUnit是一个Java测试框架,使编写可靠和高效的测试变得容易。它可以用于大多数语言制作的应用程序,但特别适合于测试Java应用程序。JUnit也可以用来创建自动测试。JUnit框架是最流行的Java测试框架之一。它提供了一些功能,使编写测试变得容易,包括支持多个测试用例、断言和报告。JUnit也是多功能的,允许用各种语言编写测试。它允许你有效地创建和运行测试,并已成为最流行的Java测试框架之一。xUnit框架激发了Smalltalk和C++的JUnit。

2024-01-04 06:49:36 1110

原创 SpringBoot——集成Jersey

在Jersey中引入Spring MVC会带来根路径冲突的问题,因为它们各自的Servlet都默认处理根路径。注意:jersety starter模式使用jackson解析JSON。声明根路径,那么yml中的配置会覆盖注解中的配置。,jersey的跟路径为。actuator的端口为。注意,如果同时也使用了。,jersey的端口为。

2023-12-28 00:11:42 968

原创 WebService——JAX-RS2(Jersey)客户端详解

与Apache HTTP Client和HttpURLConnection相比,客户端API是可感知REST的高层API,可以与Providers集成,返回值直接对应高层的业务类实例,而不是JAXB对象或者更为低层的数据类型。作为REST框架,JAX-RS2不希望开发者编码实现对客户端实例的资源管理,Response实例的readEntity(在返回响应实体的同时,即完成了对客户端资源的释放。默认情况下,HTTP方法调用的返回类型是Response类型,同时也支持泛型类型的返回值。

2023-12-27 21:39:07 1505

原创 WebService——JAX-RS2(Jersey)扩展点详解

根据对象的不同,返回不同的JettisonJaxbContext实例,以实现不同的JSON解析效果。@Provider//前置处理@Override//获取请求方法和地址//获取请求头信息@Override@Override@Override//获取容器响应状态return b;List<

2023-12-27 00:09:44 1386

vuedevtools安装.zip

用于Chrome本地安装vue-devtools,无脑安装!!!! 安装过程: 1.Chrome=》设置=》更多工具=》扩展程序 2.打开开发者模式 3.加载已解压的扩展程序=》选择解压后的文件夹 4.重启浏览器 5.如果失败,在加载后的vuedevtools设置页面开启“允许访问文件网址”

2019-10-27

空空如也

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

TA关注的人

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