自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【frp】用 frp 搭建内网穿透服务 de 例子(新版toml配置文件)

在公司内部搭建了内部服务器,配置还不错,而且搭建了本地文件存储:4个8T 硬盘 ,RAID5;另外搭建了测试服务器,提供给开发人员测试使用。现在使用frp, 让开发人员发布代码,测试代码都在公司内部服务器上,他们在公司外面也可以使用公司内部服务器资源。frp 目前使用的版本:服务端0.53.2 , 客户端:0.53.2 、 0.55.1;frp 使用环境 服务端:Alibaba Cloud Linux release 3 (Soaring Falcon)

2024-03-21 13:43:53 813 3

原创 【frp】新版本 frp 参考配置分享

使用 frp 把公司内部的 nextcloud 网盘可以外网访问,nextcloud 中有部分视频,如果查看经过 frps 的服务器需要流量比较大,frp 支持通过 xtcp 协议支持 p2p ,点对点访问不占用服务器流量。注意:上面为 frps 完整配置,在使用前请先更先根据需求修改对应设置,保持为 frps.toml 文件以供工具调用。注意:上面为 frpc 完整配置,在使用前请先更先根据需求修改对应设置,保持为 frpc.toml 文件以供工具调用。

2024-03-11 23:01:08 1239 5

原创 【Linux】使用 acme.sh 实现了 acme 协议生成免费的SSL 证书

acme.sh 实现了 acme 协议, 可以从多个CA提供商获取SSL证书,包括从 letsencrypt 获取生成免费的证书.下面详细介绍如下:

2024-02-22 14:10:15 1416

原创 【Linux】Ubuntu 22.04 升级 nodejs 到 v18

Ubuntu 22.04 已经安装的nodejs 版本 nodejs is already the newest version (12.22.9~dfsg-1ubuntu3.3).

2024-02-07 17:33:29 1503

原创 【Web】 9 种 HTTP 请求方法

它不是幂等的,制作两个相同的 POST 将复制资源创建。多个相同的请求返回相同的结果。这将更新或创建资源。多个相同的请求将更新同一资源。多个相同的请求将删除同一资源。CONNECT 方法建立到目标资源标识的服务器的隧道。HTTP CONNECT HTTP 连接。HTTP OPTIONS HTTP 选项。HTTP DELETE HTTP 删除。HTTP PATCH HTTP 补丁。这将沿目标资源的路径执行消息环回测试。HTTP HEAD HTTP 头。这描述了目标资源的通信选项。

2024-01-08 10:48:51 436

原创 【Linux】Ubuntu 22.04 上安装最新版 Nextcloud Hub 7 (28.0.1) & Update to 28.0.5

安装多个 PHP 版本的最简单方法是使用来自 Debian 开发人员 Ondřej Surý 的 PPA。要添加此 PPA,请在终端中运行以下命令。如果要从 PPA 安装软件,则需要 software-properties-common 包。它会自动安装在 Ubuntu 桌面上,但可能会在您的 Ubuntu 服务器上丢失。SURY 存储库包含 PHP 8.1、8.0、7.4、7.3、7.2、7.1、7.0 和 PHP 5.6。由于 PHP 的最新稳定版本是 8.0,但许多网站仍然需要 PHP 7。

2024-01-08 10:43:07 1490

原创 【Linux】Firewalld防火墙新增端口、开启、查看等

Firewall开启常见端口命令。

2023-12-14 12:12:05 685

原创 【Database】什么是数据库?常见的数据库类型有哪些?

什么是数据库?常见的数据库类型有哪些?首先,什么是数据库?把它想象成一个数字游乐场,我们以结构化的方式组织和存储大量信息。现在,让我们来谈谈数据库的主要类型。

2023-12-13 12:03:21 665

原创 【Web】一张动图告诉你,输入网址之后,发生了什么事情?

让我们一步一步地来看这个过程。

2023-12-13 10:46:50 384

原创 【Java】集合 之 使用 Set

我们知道,Map用于存储key-value的映射,对于充当key的对象,是不能重复的,并且,不但需要正确覆写equals()方法,还要正确覆写hashCode()方法。如果我们只需要存储不重复的key,并不需要存储映射的value,那么就可以使用Set。Set用于存储不重复的元素集合,它主要提供以下几个方法:将元素添加进将元素从Set<E>实际上相当于只存储key、不存储value的Map。我们经常用Set用于去除重复元素。因为放入Set的元素和Map的key类似,都要正确实现equals()

2023-12-07 17:26:04 389

原创 【Linux】Linux的启动过程(很漂亮的动图)

总的来说,Linux的启动过程是一个自上而下的过程,从BIOS自检开始,到最后进入正常启动状态。在整个过程中,操作系统会自动加载各种必要的驱动程序和服务,以确保系统能够正常运行。

2023-12-07 10:40:46 526

原创 【Java】集合 之 使用 Properties

在编写应用程序的时候,经常需要读写配置文件。配置文件的特点是,它的Key-Value一般都是类型的,因此我们完全可以用来表示它。因为配置文件非常常用,所以Java集合库提供了一个Properties来表示一组“配置”。由于历史遗留原因,Properties内部本质上是一个Hashtable,但我们只需要用到Properties自身关于读写配置的接口。读取配置文件用Properties读取配置文件非常简单。Java默认配置文件以为扩展名,每行以key=value表示,以#课开头的是注释。调用。

2023-12-07 10:22:28 811

原创 【Java】集合 之 使用 TreeMap

我们已经知道,HashMap是一种以空间换时间的映射表,它的实现原理决定了内部的Key是无序的,即遍历HashMap的Key时,其顺序是不可预测的(但每个Key都会遍历一次且仅遍历一次)。还有一种Map,它在内部会对Key进行排序,这种Map就是SortedMap。注意到SortedMap是接口,它的实现类是TreeMap。保证遍历时以Key的顺序来进行排序。例如,放入的Key是"apple""pear""orange",遍历的顺序一定是"apple""orange""pear",因为String使用。

2023-12-04 10:19:34 521

原创 【Java】集合 之 使用EnumMap

因为HashMap是一种通过对key计算hashCode(),通过空间换时间的方式,直接定位到value所在的内部数组的索引,因此,查找效率非常高。如果作为key的对象是enum类型,那么,还可以使用Java集合库提供的一种EnumMap,它在内部以一个非常紧凑的数组存储value,并且根据enum类型的key直接定位到内部数组的索引,并不需要计算hashCode(),不但效率最高,而且没有额外的空间浪费。我们以DayOfWeek使用EnumMap的时候,我们总是用Map接口来引用它,因此,实际上把。

2023-12-04 10:08:47 419

原创 【Java】集合 之 编写equals和hashCode

我们知道Map是一种键-值映射表,可以通过key快速查找对应的value。以HashMap之所以能根据key直接拿到value,原因是它内部通过空间换时间的方法,用一个大数组存储所有value,并根据key直接计算出value如果key的值为"a",计算得到的索引总是1,因此返回,如果key的值为"b",计算得到的索引总是5,因此返回value为,这样,就不必遍历整个数组,即可直接读取key对应的value。当我们使用key存取value的时候,就会引出一个问题:我们放入Map的key是字符串"a"

2023-12-01 10:43:14 872

原创 【Java】集合 之 使用 Map

我们知道,List是一种顺序列表,如果有一个存储学生Student实例的List,要在List中根据name查找某个指定的Student的分数,应该怎么办?最简单的方法是遍历List并判断name这种需求其实非常常见,即通过一个键去查询对应的值。使用List来实现存在效率非常低的问题,因为平均需要扫描一半的元素才能确定,而Map这种键值映射表的数据结构,作用就是能高效通过key快速查找value(元素)。用Map来实现根据name查询某个StudentMap是一种键-值映射表,当我们调用。

2023-11-30 10:30:14 599

原创 【Java】集合 之 编写 equals 方法

List还提供了方法来判断List是否包含某个指定元素。此外,方法可以返回某个元素的索引,如果元素不存在,就返回-1。这里我们注意一个问题,我们往List中添加的 “C” 和调用传入的"C"是不是同一个实例?如果这两个"C"不是同一个实例,这段代码是否还能得到正确的结果?因为我们传入的是,所以一定是不同的实例。结果仍然符合预期,这是为什么呢?因为List内部并不是通过==判断两个元素是否相等,而是使用equals()方法判断两个元素是否相等,例如contains()因此,要正确使用List的。

2023-11-30 09:58:19 776

原创 【Web】单点登录(SingleSignOn,SSO) Keycloak OAuth 2.0 OpenID Connect JWT (JSON Web Token) SAML CAS

Keycloak 是一个身份和访问管理开源解决方案,它支持多种身份验证和授权协议,常用的包括 OpenID Connect (OIDC) 和 OAuth 2.0 协议。

2023-11-29 19:10:37 1420

原创 【Linux】Alibaba Cloud Linux 3 yum 安装 PHP8.1

【代码】【Linux】Alibaba Cloud Linux 3 安装 PHP8.1。

2023-11-17 18:35:32 610

原创 【MacOS】go-musicfox - 一款网易云音乐命令行客户端, 文件很小Mac版本只有16.5M

go-musicfox 是用 Go 写的又一款网易云音乐命令行客户端,支持各种音质级别、UnblockNeteaseMusic、Last.fm、MPRIS 和 macOS 交互响应(睡眠暂停、蓝牙耳机连接断开响应和菜单栏控制等)等功能特性。下载和安装 LyricsX 的 go-musicfox 的 fork 版本 在 LyricsX。Last.fm 授权。macOS 歌词显示。

2023-11-02 10:25:43 470

原创 【Java】集合 之 使用List

在集合类中,List是最基础的一种集合:它是一种有序列表。List的行为和数组几乎完全相同:List内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。数组和List类似,也是有序结构,如果我们使用数组,在添加和删除元素的时候,会非常不方便。这个“删除”操作实际上是把’C’后面的元素依次往前挪一个位置,而“添加”操作实际上是把指定位置以后的元素都依次向后挪一个位置,腾出来的位置给新加的元素。这两种操作,用数组实现非常麻烦。

2023-09-27 16:08:47 665

原创 【Java】集合 之 Java集合简介

什么是集合(Collection)?集合就是“由若干个确定的元素所构成的整体”。在数学中,我们经常遇到集合的概念。例如:有限集合:一个班所有的同学构成的集合;一个网站所有的商品构成的集合;无限集合:全体自然数集合:1,2,3,……有理数集合;实数集合;为什么要在计算机中引入集合呢?这是为了便于处理一组类似的数据,例如:计算所有同学的总成绩和平均成绩;列举所有的商品名称和价格;……

2023-09-26 17:06:08 120

原创 【Java】泛型 之 泛型和反射

Java的部分反射API也是泛型。Class调用Class的方法返回的Class类型是构造方法使用泛型数组要特别小心,因为数组实际上在运行期没有泛型,编译器可以强制检查变量ps,因为它的类型是泛型数组。但是,编译器不会检查变量arr,因为它不是泛型数组。上面的代码中,由于拿不到原始数组的引用,就只能对泛型数组ps进行操作,这种操作就是安全的。谨慎使用泛型可变参数似乎可以安全地创建一个泛型数组。但实际上,这种方法非常危险。直接调用似乎没有问题,但是在另一个方法中,我们返回一个泛型数组就会产生。

2023-09-25 17:20:11 247

原创 【Java】泛型 之 super通配符

extendssupe不是的子类。传入是允许的,但是传入是不允许的。和extends通配符相反,这次,我们希望接受类型,以及,因为Number和Object是Integer的父类,和实际上允许接受Integer类型。我们使用super注意到表示,方法参数接受所有泛型类型为Integer或Integer父类的Pair类型。考察的setFirst()因此,可以安全地传入Integer类型。再考察的getFirst()这里注意到我们无法使用Integer类型来接收getFirst()

2023-09-25 16:53:27 606

原创 【Java】泛型 之 extends通配符

不是的子类。假设我们定义了Pair

2023-09-25 15:29:33 411

原创 【Java】泛型 之 擦拭法

泛型是一种类似”模板代码“的技术,不同语言的泛型实现方式不一定相同。Java语言的泛型实现方式是擦拭法(所谓擦拭法是指,虚拟机对泛型其实一无所知,所有的工作都是编译器做的。例如,我们编写了一个泛型类Pair而虚拟机根本不知道泛型。所以,Java的泛型是由编译器在编译时实行的,编译器内部永远把所有类型T视为Object处理,但是,在需要转型的时候,编译器会根据T的类型自动为我们实行安全地强制转型。

2023-09-22 15:34:32 507

原创 【Java】泛型 之 编写泛型

写泛型类比普通类要复杂。通常来说,泛型类一般用在集合类中,例如,我们很少需要编写泛型类。如果我们确实需要编写一个泛型类,那么,应该如何编写它?可以按照以下步骤来编写一个泛型类。String然后,标记所有的特定类型,这里是String最后,把特定类型String替换为T,并申明熟练后即可直接从T开始编写。

2023-09-22 15:18:42 411

原创 【Java】泛型 之 使用泛型

使用ArrayList时,如果不定义泛型类型时,泛型类型实际上就是Object此时,只能把当作Object使用,没有发挥泛型的优势。当我们定义泛型类型后,List的泛型接口变为强类型L当我们定义泛型类型后,List的泛型接口变为强类型编译器如果能自动推断出泛型类型,就可以省略后面的泛型类型。编译器看到泛型类型就可以自动推断出后面的的泛型类型必须是。

2023-09-22 14:31:26 101

原创 【Java】泛型 之 什么是泛型

泛型是一种“代码模板”,可以用一套代码套用各种类型。在讲解什么是泛型之前,我们先观察Java标准库提供的ArrayList,它可以看作“可变长度”的数组,因为用起来比数组更方便。实际上ArrayList内部就是一个Object[]这样一来,存入的必须是String,取出的也一定是String问题暂时解决。然而,新的问题是,如果要存储Integer,还需要为Integer单独编写一种ArrayList实际上,还需要为其他所有class单独编写一种ArrayList这是不可能的,JDK的class。

2023-09-21 17:11:19 107

原创 【Java】注解 之 处理注解

Java的注解本身对代码逻辑没有任何影响。根据@RetentionSOURCECLASSclassJVMRUNTIMEJVM如何使用注解完全由工具决定。SOURCE类型的注解主要由编译器使用,因此我们一般只使用,不编写。CLASS类型的注解主要由底层工具库使用,涉及到class的加载,一般我们很少用到。只有RUNTIME类型的注解不但要使用,还经常需要编写。因此,我们只讨论如何读取RUNTIME类型的注解。因为注解定义后也是一种class,所有的注解都继承自,因此,读取注解,需要使用反射API。

2023-09-21 14:44:25 81

原创 【Java】注解 之 定义注解

Java语言使用@interface语法来定义注解注解的参数类似无参数方法,可以用default设定一个默认值(强烈推荐)。最常用的参数应当命名为value。

2023-09-20 17:05:34 139

原创 【Java】注解 之 使用注解

注释会被编译器直接忽略,注解则可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”。

2023-09-20 16:36:08 73

原创 【Java】反射 之 动态代理

我们来比较Java的class和interface的区别:可以实例化class(非abstract);不能实例化interface。有没有可能不编写实现类,直接在运行期创建某个interface的实例呢?这是可能的,因为Java标准库提供了一种动态代理的机制:可以在运行期动态创建某个interface的实例。什么叫运行期动态创建?听起来好像很复杂。所谓动态代理,是和静态相对应的。我们来看静态代码怎么写:这种方式就是我们通常编写代码的方式。

2023-09-08 16:04:07 187

原创 【Java】反射 之 获取继承关系

当我们获取到某Class还可以用实例的getClass()最后一种获取Class的方法是通过这三种方式获取的Class实例都是同一个实例,因为JVM对每个加载的Class只创建一个Class实例来表示它的类型。获取父类的Class运行上述代码,可以看到,Integer的父类类型是NumberNumber的父类是ObjectObject的父类是null。除Object外,其他任何非interface的Class都必定存在一个父类类型。获取interface。

2023-09-07 17:27:10 181

原创 【网站】解压放松的治愈白噪音ASMR

70年代中期国际上新创立的无穷维Schwartz广泛函数理论,应用所严加安研究员是建立和完善该理论的数学框架的主要贡献者之一,他与法国科学院通讯院士Meyer教授提出的框架被称为Meyer-Yan空间。他与Kondratiev等新近发表的论文建立了完善的无穷维非高斯分析的数学框架。今后拟在这方面进行开拓性研究。由于白噪声分析有深刻的物理背景,在量子物理中有着愈来愈深刻的应用。说人话就是:混合令人放松的声音,创造您自己最喜欢的用于放松、睡眠或集中精力的混合曲目。

2023-08-29 21:25:18 153

原创 【Java】反射 之 调用构造方法

如果通过反射来创建新的实例,可以调用Class提供的调用的局限是,它只能调用该类的public无参数构造方法。如果构造方法带有参数,或者不是public,就无法直接通过来调用。为了调用任意的构造方法,Java的反射API提供了对象,它包含一个构造方法的所有信息,可以创建一个实例。对象和Method获取某个public的;:获取某个;:获取所有public的:获取所有注意总是当前类定义的构造方法,和父类无关,因此不存在多态的问题。调用非public的时,必须首先通过设置允许访问。可能会失败。

2023-08-25 18:30:28 392

原创 【Java】反射 之 调用方法

我们已经能通过Class实例获取所有Field对象,同样的,可以通过Class实例获取所有Method信息。Class类提供了以下几个方法来获取MethodpublicMethodMethodpublicMethodMethod上述代码首先获取Student的Class实例,然后,分别获取public方法、继承的public方法以及private方法,打印出的Method一个MethodgetName()

2023-08-25 18:15:51 870

原创 【Nginx】Nginx 简介

其实是这样的,我们前面说 master 不负责具体的工作,而是调用 worker 工作,他只是负责读取配置文件,因此当一个模块修改或者配置文件发生变化,是由 master 进行读取,因此此时不会影响到 worker 工作。图中有两点需要注意,第一,如果可以把加权轮询算法分为先深搜索和先广搜索,那么 nginx 采用的是先深搜索算法,即将首先将请求都分给高权重的机器,直到该机器的权值降到了比其他机器低,才开始将请求分给下一个高权重的机器;流水线,指的是一个用户请求,由多个模块组合各自的功能依次实现完成的。

2023-08-23 17:48:20 165

原创 【Java】反射 之 访问字段

对任意的一个Object实例,只要我们获取了它的Class,就可以获取它的一切信息。我们先看看如何通过Class实例获取字段信息。Class上述代码首先获取Student的Class实例,然后,分别获取public字段、继承的public字段以及private字段,打印出的Field一个FieldgetName():返回字段名称,例如,“name”;getType():返回字段类型,也是一个Class实例,例如,;:返回字段的修饰符,它是一个int,不同的bit表示不同的含义。以String类的。

2023-08-18 14:42:19 151

原创 【Nginx】Nginx 配置文件详解,一文让你了解 Nginx 配置文件

Nginx (engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。

2023-08-18 14:18:41 477 1

SuiteCRM 8.5.1

其中一些是Salesforce Cloud,SugarCRM,Microsoft Dynamic。其中一些是付费的(通常是每月用户)。然而,对于中小型公司而言,开源CRM也具有扎实的商业意义。 SuiteCRM是基于PHP构建的开源客户关系管理解决方案。它可以在托管或云端托管。SuiteCRM还可以根据业务需求进行大量定制。 SuiteCRM是一款开源的客户关系管理(CRM)软件,提供了丰富的功能和灵活的定制选项。SuiteCRM 8.5和SuiteCRM 7.14是两个不同的版本,它们之间有一些区别。 用户界面:SuiteCRM 8.5采用了全新的用户界面设计,更加现代化和直观。它提供了更好的用户体验和易用性。 移动端支持:SuiteCRM 8.5对移动设备的支持更加完善,可以在手机和平板电脑上进行更方便的访问和操作。 性能优化:SuiteCRM 8.5在性能方面进行了优化,提升了系统的响应速度和处理能力,使用户能够更高效地使用CRM系统。 新功能和改进:SuiteCRM 8.5引入了一些新的功能和改进,例如增强的报表和分析功能、更强大的工作流引擎、更灵活的定制选项等。 技

2024-02-10

空空如也

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

TA关注的人

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