自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

桓公子的博客

是桓公子吖!微信订阅号:是小Huan吖!

  • 博客(20)
  • 收藏
  • 关注

转载 Go继承与组合

那么PrintName函数是属于ClassA的,他打印的是ClassA的名字,那当然和ClassB的Name没关系。继承让一个类获得另一个类的属性和方法,形成层级关系,子类可以重用父类的功能。相比继承,组合更加灵活,降低了类之间的耦合度,使得代码更易于维护和扩展。但实际上,classB只是覆盖了Name方法,而没有重写他,对于classB里面的classA,其仍然与classB隔离。当classA访问Name方法时,不会用到classB的Name方法,依然是classA的Name方法。

2024-01-16 19:53:49 95 1

转载 Javac多模块编译

文件名就是模块名(即使模块名包含".“,文件名也是包含”."的模块名,而不是多级目录),这些文件名下直接就有module-info.java文件。此时,hello包将编译在.\target\build2\hello位置,那么.\target\build2就是包存放的位置了。通过上面的操作,我们就能自己编译我们的java多模块工程了。然后是test,是我们的主模块,包含一个test包,里面有个叫Main的主类。首先,我们模拟,我们具有这两个类的源码时的编译。然后编译test,此时使用-p来指示模块的位置。

2024-01-12 14:44:10 86

转载 证书和私钥

私钥,即加密的密钥,证书所使用的私钥是非对称加密中的私钥。其中,证书的Subject就是证书的标识,其就像一个人的名字,由国家(C)、省份(S)、城市(L)、单位(O)、单位单元(OU)、公用名(CN)组成。在实际配置Https的时候,往往需要提供证书链,这就是避免中间证书没内置在用户电脑,导致证书链不完整,我们的证书不能被信任的问题。但是提供证书链往往不需要包含根证书,因为根证书内置在用户电脑,如果不内置在用户电脑,提供了也没用(因为根证书是自签证书,浏览器不信任你提供的,只信任系统内置的)。

2024-01-12 14:43:37 302

转载 找项目外包需要注意什么?

我想说的就这么多,希望大家不要踩这些坑。外包公司水平参差不齐。人力外包是一个好的选择。

2024-01-07 15:21:56 49 1

转载 K8s和声明式编程

Kubernetes(K8s)是一种开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它简化了容器化应用的管理,提供自动化、可扩展的部署,并允许高效管理跨多个主机的容器化应用程序。在Kubernetes中有许多对象。其中,Deployment创建ReplicaSets,ReplicaSets负责创建Pod。ReplicaSets它们是一组具有相同配置的Pod的集合。Pod是Kubernetes的最小部署单元,可容纳一个或多个容器。

2024-01-07 15:20:59 54 1

转载 DNS中CNAME和MX解析记录的冲突

在DNS解析中,CNAME记录与其他记录往往是互斥的。最常见的是CNAME记录和MX记录的互斥。例如我们在http://example.com部署官网,通过CNAME解析到后端网关的IP地址。但是http://example.com往往也是我们的邮件地址,需要添加MX解析记录和SPF-TXT记录。如果有CNAME记录的存在,可能会导致他们失效(有时候也不会,要看实际访问的主机是否缓存了CNAME记录)。那么你可能会问了,为什么http://example.com使用CNAME记录而不是A记录呢?

2024-01-07 15:19:33 103 1

转载 Ubuntu搭建邮件服务器

关于邮件服务器的工作原理我就不再赘述了。Postfix是优秀的MTA,而Dovecot则是优秀的MDA。前者负责发信、收信,提供smtp服务;后者负责邮件保存到邮箱,提供pop3和imap服务。这里介绍使用Postfix+Dovecot模式的邮件服务系统,同时Postfix使用Dovecot提供的SASL完成用户认证。用户使用MySQL存储的虚拟用户,而不是服务器的实际用户。同时使用opendkim完成邮件的dkim签名,SpamAssassin完成反垃圾邮件。

2024-01-07 14:47:59 362 1

原创 ncurses 与 menu

ncurses 与 menu一下位ncurses和菜单库menu的demo程序#include <menu.h>#include <ncurses.h>#include <stdlib.h>#include <string.h>#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))#define CTRLD 4char *choices[] = { "Choice 1",

2020-08-23 17:34:37 602 1

原创 ncurses 与 panel

ncurses 与 panel一下是ncurses使用面板库panel的一个demo程序。#include <ncurses.h>#include <panel.h>#include <string.h>void init_wins(WINDOW **wins, int n);void win_show(WINDOW *win, char *label, int label_color);void print_in_middle(WINDOW *win,

2020-08-23 15:02:14 317

原创 取消deepin-wine TIM置顶

取消把deepin-wine TIM置顶问题在manjaro系统下,使用deepin-wine安装了tim。点击了tim的置顶功能后无法取消了。无法取消的原因是,弹出取消置顶的弹框会被置顶的tim窗口遮住。解决方法删掉tim的配置文件,相当于重新安装tim。但是经过尝试,使用pacman -Rn deepin.com.qq.office是无法彻底删除配置文件的。所以,在卸载tim之后,要进入~/.deepin目录,手动删除tim的文件夹,然后再次重装即可。...

2020-08-14 20:47:21 350

原创 manjaro下使用deepin-wine5解决wechat无法发送图片的问题

问题在manjaro操作系统下,使用了deepin-wine安装wechat。但是,wechat运行无法发送较大图片且截图功能也有问题。解决在参考了github之后,我找到了解决方案。附上链接:github上找到的解决方案具体步骤如下使用yay -S deepin-wine5安装deepin-wine5修改/opt/deepinwine/apps/Deepin-WeChat/run.sh中的WINE_CMD为deepin-wine5,并且保存退出微信,杀死所有wine进程。重启电脑也可以。

2020-08-13 15:25:02 3381

原创 C realloc(): invalid next size错误

C realloc(): invalid next size问题代码#include <stdio.h>#include <stdlib.h>int *getNumber();void printfList(int const* list);int main(){ int *list = getNumber(); printfList(list); free(list); return 0;}int *getNumber(){

2020-08-10 15:57:42 2244

转载 C 按位显示二进制

C 按位显示二进制在C语言的printf中不能直接显示一个数字的二进制。但我们可以通过位运算获取数字每一位的值然后显示。获取数字最小位的值我们以25为例子,其二进制为1101,那么我们要获取其最底位的值就是1。通过位与运算1101 & 0001 = 0001可以得到结果。同理,我们若想获得其第二位的值也是同理,只需要把第二位变成最小位即可,(1101 >> 1) & 0001 = 0110 & 0001 = 0000。借助此,我们可以写出如下函数:void

2020-08-07 12:37:04 1949 2

原创 在终端输入EOF

在终端输入EOF问题如下是一个计算校验和的程序,其中使用了while循环,需要在标准输入中读取到EOF才能跳出循环。#include <stdio.h>int main(){ int checksum = 0; int ch = 0; while ((ch = getchar()) != EOF){ checksum += ch; putchar(ch); } printf("\nchecksum = %d\n",

2020-08-07 09:22:52 911

转载 const和C指针

const和C指针众所周知,C中可以使用const来声明常量,即限定变量的值不可以修改。当把const用在指针上面的时候,他有两个左右:指针本身不能修改指针指向的值不能被修改修改指针和修改指针的值的区别int main(){ int a = 10, c = 10, *b = &a; b = &c; // 这一步叫做修改指针 *b = 20 // 这一步叫修改指针的值}const在指针的用法如下,定义一个指针为:int * const a表示指针a本身不可以被

2020-08-05 09:28:29 113

转载 C语言使用dlfcn动态载入.so动态库

C语言使用dlfcn动态载入.so动态库使用dlfcn.h通过指定.so文件的位置,动态载入.so文件。在编译的时候,不需要提前链接.so文件,也不需要头文件。代码主程序(main.c)代码如下#include <stdio.h>// 首先导入了dlfcn.h头文件#include <dlfcn.h>int main() { void* handle = dlopen("../lib/build/libmt.so", RTLD_LAZY); // dlope

2020-07-21 22:07:47 1048 2

原创 pacman下载时经常出现Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds

问题我在manjaro系统上使用pacman下载软件的时候,经常出现以下报错:错误:无法从 mirrors.tuna.tsinghua.edu.cn : Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds 获取文件 'wps-office-11.1.0.9604-1-x86_64.pkg.tar.zst'###########################################----------

2020-07-10 09:01:02 4064

原创 透过皮亚诺公理看自然数

透过皮亚诺公理看自然数皮亚诺公理0是自然数每一个确定的自然数aaa都有后继数,记作a′a'a′,后继数a′a'a′也是自然数。(数aaa的后继数就是紧挨着aaa的一个整数,即a′=a+1a' = a + 1a′=a+1)0不是任何自然数的后继数不同的自然数有不同的后继数,如果自然数bbb和ccc的后继数都是自然数aaa,那么b=cb = cb=c;数学归纳法:设法则P(n)P(n)P(n)是关于自然数nnn的法则,若P(0)P(0)P(0)成立,且假设P(N)P(N)P(N)

2020-06-26 15:35:49 905

原创 用C实现HashTable

简述HashTable的原理HashTable是一种数据结构,通过key可以直接的到value,查找值时间总为常数级别O(1)。原理HashTable底层是使用了数组实现的。数组只要知道了索引,查找值的速度是很快的,为常数级别O(1)。数组的索引为数组,HashTable通过一个Hash函数,把key(字符串、数字等可哈希的对象)变成数组的索引。然后就像操作数组一样来查值和找值。我使用的是...

2020-04-23 18:03:24 1149 1

原创 用Python来查询聊天记录

前言用Python来查询聊天记录代码import redef Start(First_Date, Second_Date, First_Name, Second_Name): First = re.compile(f'^{First_Date} .* {First_Name}$') # 个人聊天 Second = re.compile(f'^{Second_Date} ...

2020-04-23 17:10:34 564

空空如也

空空如也

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

TA关注的人

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