自定义类加载器
Created|Java
Java类加载机制自定义类加载器实现先写一个类,编译成class文件12345public class MyClass { static { System.out.println("Hello World!"); }}
1javac MyClass.java
创建自己的ClassLoader类1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859import java.io.*;/** * @author sam */public class MyClassLoader extends ClassLoader { // 继承ClassLoader private String path; private String classLoaderName; public MyClassLoader(String ...
Go语言写单元测试
Created|Go
在 Go 语言中,编写单元测试是通过标准库中的 testing 包实现的。
一、基本结构
测试文件命名测试文件必须以 _test.go 结尾。测试函数必须以 Test 开头,后跟大写字母,例如 TestAdd。测试函数接受一个 *testing.T 参数。
示例:简单加法测试 123456// add.gopackage mainfunc Add(a, b int) int { return a + b}
12345678910111213// add_test.gopackage mainimport "testing"func TestAdd(t *testing.T) { result := Add(2, 3) expected := 5 if result != expected { t.Errorf("Add(2,3) = %d; expected %d", result, expected) }}
二、表格驱动测试(Table- ...
简单DNS客户端编写
Created|DNS
简单DNS客户端编写目标:
可使用参数来设置解析的域名类型,拨测数量,期望结果
执行DNS解析并获取结果
Java123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990import org.xbill.DNS.Lookup;import org.xbill.DNS.Type;import org.xbill.DNS.Record;public class DNSClient { public static void main(String[] args) { // 参数解析 if (args.length < 4) { System.out.println("Usage: java DNSClient ...
DNS基本工具
Created|DNS
DNS基本工具使用命令行工具如dig、nslookup进行DNS查询dig参考 系统极客
dig 命令可以查询各种类型 DNS 记录信息,包括:主机名称记录(A、AAAA)、邮件交换记录(MX)和别名记录(CNAME)等等。由于其灵活性和易用性,它是系统管理员解决 DNS 问题时最常用的工具。
验证是否安装dig
1dig -v
dig命令语法
1dig [server] [name] [type]
[server]查询指向的主机名或 IP 地址
[name]要查询服务器的 DNS(域名服务器)
[type]要检索的 DNS 记录类型。默认情况下(或如果留空),dig 查询 A 记录。
dig命令输出
1dig www.aliyun.com
第一行显示 dig 命令的版本,以及查询的域名;
第二行显示全局选项(默认情况下,仅有 cmd)
HEADER部分显示从被请求机构(DNS 服务器)收到响应的详细技术信息。标题显示由 dig 执行操作的「操作码」和「操作状态」的「标头」,上述示例中的「操作状态」是NOERROR,这意味着被请求的 DNS 服务器可以没有任何阻碍 ...
DNS基础知识
Created|DNS
DNS基本概念漫画网站介绍howdns work,感觉挺有意思
DNS的主要功能DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。
解析域名:将域名解析成相应的IP地址
域名管理:管理互联网上的所有域名,包括注册、续费、修改、删除等操作。
负载均衡:将请求分发到不同的服务器上,实现负载均衡和高可用性。
在底层原理方面,DNS服务主要依赖于分布式数据库系统和递归查询机制。具体来说,DNS服务将所有的域名和IP地址存储在一个分布式的数据库系统中,每个DNS服务器都存储了一部分数据。当用户输入一个域名时,本地DNS服务器会先进行查询,如果本地DNS服务器没有相应的记录,则会向根域名服务器发送请求。根域名服务器将返回一个指向相应顶级域名服务器的IP地址。然后本地DNS服务器再向顶级域名服务器发送请求,顶级域名服务器会返回一个指向相应二级域名服务器的IP地址,以此类推,直到最终得到目标域名的IP地址。
需要注意的是,DNS查询过程中采用的是递归查询机制,即本地DNS服务器会向根域名服务器、顶级域名服务器、 ...
Java常见手撕整理
Created|Java
素数筛
Created
一般筛法从2到sqrt(n)判断有没有因子
123456789bool isPrime(int n) { if (n == 1){ return false; } for(int i = 2;i <= sqrt(n);i++){ if(n%i == 0) return false; } return true;}
Java集合源码分析
Created|Java
ArrayList简介底层是数组队列,与Java中的数组相比,它的容量可以动态增长。
继承于AbstractList, 实现了List,RandomAccess,Cloneable,java.io.Serializeable接口
可以存储任何类型的对象,包括null值,但是不建议向ArrayList添加null值
扩容机制(JDK8)以无参数构造方法创建ArrayList时,实际上初始化赋值的是一个空数组。当真正对数组进行添加元素操作时,才真正分配容量。即向数组中添加第一个元素时,数组容量扩为10。
扩容 grow()函数先将新容量扩大为原来的1.5倍判断新容量是否大于最小需要容量如果小于,最小需要容量就作为新容量判断新容量是否大于MAX_ARRAY_SIZE如果大于,进入hugeCapacity()函数,比较最小需要容量和MAX_ARRAY_SIZE,如果最小需要容量大于MAX_ARRAY_SIZE,新容量为Integer.MAX_VALUE,否则,新容量为MAX_ARRAY_SIZE,即为Integer.MAX_VALUE-8
LinkedList简介基于双向链表实现,项目中一般不 ...
排序算法整理
Created
冒泡排序插入排序选择排序快速排序最好情况O(nlogn),最坏情况 $O(n^2)$ ,平均情况O(nlogn)
1234567891011121314151617181920212223void quickSort(int l, int r, vector<int>& nums){ if(l >= r) return ; int mid = partition(l, r, nums); //递归排序左边和右边 quickSort(mid+1, r, nums); quickSort(l, mid-1, nums);}int partition(int l, int r, vector<int>& nums){ int pivot = nums[l]; //以最左边元素为基准 while(l < r){ while(l < r && nums[r] >= pivot) r--; nums[l] = ...
Hello World
Created
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
Announcement
This is my Blog
Recent Post
Info
Article :
10
UV :
PV :
Last Push :