自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 socket模型创建流程

/ read(fd) 读socket获取客户端数据。// connect() 与服务器建立连接。// bind() 绑定服务器地址结构。// accept() 阻塞监听客户端连接。阻塞等待客户端建立连接,成功,返回一个与客户端成功连接的socket文件描述符。addr:传出参数,传出成功与服务器建立连接的客户端的地质结构。

2024-05-15 11:18:14 917

原创 Socket编程

因为实际定义有效的内容是struct sockaddr,这是古早的数据类型,现在常用为struct sockaddr_in,所以在传入古早函数bind时需要进行强转。192.168.1.110->string->atoi->int->htonl->网络字节序(早期繁琐)htonl:--> host to network long:本地专网络(IP)拿到的是结构体,直接取地址没有用,需要进行初始化,在这里进行。dst:传出,转换后的网络字节序的IP地址。计算机采用小端法,网络采用大端法,因此需要转换。

2024-05-14 21:33:02 344

原创 网络编程基础

源Ip:32位--4字节 192.168.1.108(点分十进制) --- 二进制。优点 缓存大量数据,速度快 安全性高,跨平台,TTL timetolive 8位生存时间 每经过一个路由器,称为下一跳,每过一条,TTL--,最后丢弃。数据传输时需要进行封装,按着应用层 传输层 网络层 链路层 层层封装,才可以进行传输。IP地址+端口号:可以在网络环境中,唯一标识一个进程。端口号:可以在网络的一台主机上,唯一标识一个进程。

2024-05-14 17:11:49 148

原创 指针的学习

struct 结构体名 数组名[个数]={{}...{}..}struct 结构体名 { 结构体成员列表 }指针的指向不可以改,但是指针指向的值可以改。指针指向可以改但是指针指向的值不可以改。利用->访问结构体属性。const两者都修饰。

2024-03-02 15:07:16 369

原创 C++大概

创建字符型变量要用单引号,并且只能有一个字符。const 数据类型 常量名 = 量值。用于记录程序中不可更改的数据。const修饰的变量。cin>>输入的变量。

2024-03-01 17:26:30 356

原创 MySql-约束

alter table 表名 add constrant 外键名称 foreign key (外键字段名) references 主表(主表列明)[constrant][外键名称] foreign key(外键字段名) references 主表(主表列明)用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。) comment '用户表';

2023-12-25 19:57:51 455

原创 MySQL数据库

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释] [约束];),(值1,值2);SELECT * FROM 表名 ORDER BY 字段1 ,排序方式 ,自断2 ,排序方式;UPDATE 表名 SET 字段名1=值1,字段名2=值2,。INSERT INTO 表名 VALUES (值1,值2.。),(值1,值2);INSERT INTO 表名(字段1,字段2)VALUES(值1,值2);字段1 字段1类型[COMMENT 字段1注释],

2023-12-22 20:21:27 392

原创 Linux使用操作

tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar 文件内,并没有太多文件体积的减少,仅仅是简单的封装。当前Linux的IP地址是通过DHCP服务获取的,他会动态获取IP,每次重启后都会获取依次,导致IP地址频繁变更。物理端口:又可称之为接口,是可见的端口,如usb,rj45网口,HDMI端口。语法:tar[-c -v -x -f -z -C] 参数1,参数2,。选项:-O 用于下载文件,当url是下载链接时,可以使用此选项保存文件。

2023-11-22 21:12:07 130

原创 Linux的root用户

g:指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如果存在同名组,必须使用-g。权限共9位, --- --- ---,前三位对应用户,后三位对应用户组,最后三位对应其他用户。参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root。-r:删除用户的home目录,不使用-r,删除用户时,HOME目录保留。切换用户后,可以通过exit命令退回上一个用户,也可以CTRL+d。-d:指定用户HOME路径,不指定,默认在/home/用户名。

2023-11-13 20:19:06 507

原创 Linux命令

vim是vi的加强版本,兼容vi的所有指令,而且还具有shell程序编程的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。-options:可选,非必填 命令的一些选项,可以通过选项控制命令的行为细节。parameter:可选,非必填 命令的参数,多数用于命令的指向目标。命令模式下,所敲击的案件编辑器都理解为命令,以命令驱动执行不同的功能。参数,文件路径,必填。参数二:移动去的地方,如果目标不存在,则进行改名,确保目标存在。cd命令直接执行,不写参数,表示回到用户的home目录。

2023-11-05 11:35:51 123

原创 异常的学习

/此处出现了异常。//拿着这个对象到catch里面的小括号里比,哭哭小括号中的变量是否可以接收。//如果能接收,就表示该异常被捕获,执行catch里的代码。注意:写在方法内,结束方法,手动抛出异常对象,交给调用者,方法中下面的代码不再执行了。注意:写在方法定义出,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常。//手动创建一个异常对象,并把这个异常交给调用者处理。System.out.println("索引越界了");把异常的名称,原因,出现位置输出在控制台,并停止进程。

2023-11-02 09:43:18 108

原创 方法引用的学习

假设流里的数据都是字符串,把么使用这种方法进行方法引用,只能引用String这个类中的方法。第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法。3.被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。第一个参数:表示被引用方法的调用者,决定了可以引用的那些类中的方法。把已经有的方法拿过来用,当作函数时接口中抽象方法的方法体。* 把这个方法当作抽象方法的方法体。其他类: 其他类对象::方法名。

2023-10-31 16:56:37 106

原创 Stream流

list.stream().filter(s->s.startsWith("张")).forEach(s-> System.out.println(s ));中间方法,返回新的stream流,原来的stream只能使用一次,建议使用链式编程。* apply中的形参:流中数据的个数,要跟数组的长度保持一致。//toArray方法的返回值:是一个装着流里面所有数据的数组。//toArray方法的参数的作用:创建一个指定类型的数组。//底层:会依次得到流李的每一个元素,并把数据存到数组当中。

2023-10-31 14:03:30 271

原创 HashMap的基本使用

public static <T> boolean addAll(Collection<T> c,T...elements) 批量添加元素。Map集合参数是有上线的,只能存10个键值对,如果要传递多个键值对对象,可以把键跟值看成一个整体,传递进去。底层数据结构是哈希表,知识每个键值对元素又额外多了一个双链表来记录存储的顺序。* 假设需要定会一一个方法,可以计算n个数的和。如果键存储的是自定义对象,需要重写这两个方法。* 可变参数底层是一个数组。由键决定:有序,不重复,无索引。不重复,无索引,可排序。

2023-10-27 21:32:19 108

原创 双列集合的学习

/遍历单列集合,获取每一个键(增强for)m.put("大傻猪", "是李小");//获取所有的键,把键放到一个单列集合中。//利用map中的键获取每一个值。m.put("傻猪", "是李");m.put("猪", "李");m.put("大傻猪", "是李小");//4.遍历集合,得到每一个键值对对象。V put(k,v) 添加元素。m.put("傻猪", "是李");m.put("猪", "李");m.put("大傻猪", "是李小");m.put("傻猪", "是李");

2023-10-10 20:11:46 100

原创 JavaWeb-前端开发

var jsonstr = '{ "name": "Tom", "age"=18," addr"=["北京","上海"]}';var jsonStr = '{ "name": "Tom","age"=18,"addr"=["北京","上海"]}';<input type="button" onclick="on" value="按钮1"><img src="../HTML/1.jpeg"width="100px"> 我是慧慧!console.log("定时器执行了" + i + "次")

2023-10-08 20:51:34 253

原创 Python-模块

从物理上看,包就是一个文件夹,在该文件夹下包含一个_init_.py文件,该文件夹可用于包含多个模块文件,从逻辑上看,包的本质依然是模块。可以在模块内调用main变量,把想要测试的方法写在里面,这样调用的时候就不会在执行,只有在模块里执行才会执行。python模块(Module),是一个python 文件,以.py结尾,模块可以定义函数,类和变量。当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用的是后面导入的模块的功能。新建一个py文件,并且定义函数就可以。

2023-09-18 21:05:24 87

原创 Python-异常

f = open("C:/Users/aaaaadongcn/Desktop/测试/0.txt", 'r', encoding="UTF-8")f = open("C:/Users/aaaaadongcn/Desktop/测试/0.txt", 'w', encoding="UTF-8")finally表示的是无论是否异常都要执行的代码,例如关闭文件。print("异常出现")print("开始")print("结束")print("开始")print("结束")print("开始")print("开始")

2023-09-13 10:45:58 75

原创 Python-文件

f = open("C:/Users/aaaaadongcn/Desktop/素材/测试.txt", "r", encoding="UTF-8")方法可以把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行数据为一个元素。在python中,使用open函数,可以打开一个已经从存在的文件,或者创建一个新文件。num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,就会读取所有。mode:访问模式:只读,写入,追加。文件对象.read(num)name:名字、具体路径。

2023-09-12 21:00:07 71

原创 Python-函数进阶

args参数的类型是<class 'dict'>,内容是{'name': 'sb', 'age': 14, 'gender': '男'}# args参数的类型是<class 'tuple'>,内容是(1, 2, 3, 'sb', True)print(f"args参数的类型是{type(kwargs)},内容是{kwargs}")print(f"args参数的类型是{type(args)},内容是{args}")user_info(name="sb", age=14, gender="男")

2023-09-12 10:45:40 174

原创 Python-数据容器

容器之间也是可以相互转换的,跟强制类型转换一样,但是转换不了字典,因为不是键值对。列表也是有下标索引的,不同的是,py中的索引可以反向,如最后一个元素下标为-1。字符串是一个无法修改的数据容器,如果必须要做,只能得到一个新的字符串。定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据。按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表中。但是如果直接对字典进行for循环,结果是一样的,也是取出key。可以去重,不保证顺序,不支持下标索引访问,允许修改。

2023-09-12 10:15:29 52

原创 Python-函数

在函数内声明变量为全局变量。相当于null,NULL。

2023-09-10 10:15:18 129

原创 Python-逻辑运算

guess_num = int(input("请输入你猜测的数字:\n"))待处理数据集严格来讲称为序列类型,序列类型指,其内容可以一个个依次取出的一种类型。print(f"你的年龄是{age},你成年了")获取一个从num1开始到num2结束的数字序列,包左不包右。age = int(input("请输入你的年龄:"))获取一个从0开始,到num结束的数字序列,包左不包右。获取一个从num1开始,到num2结束的数字序列。数字之间的步长,以step为准,step默认为1。print(f"你没成年")

2023-09-09 20:36:30 115

原创 Python中的数据输入

print(f"数据类型是{type(name)}")# str。使用input()可以从键盘获取输入,使用一个变量来接收。print(f"我知道了,你是{name}")print(f"我知道了,你是{name}")name = input("你是谁?num = input("请输入数字")# print("你是谁?input语句里也可以提示语句。print("你是谁?获取的永远都是字符串类型的。

2023-09-07 20:40:46 191

原创 Python-初识

print("%s你好,我是%s,我今年%s岁了" % (message, name, age))print("%s你好,我是%s" % (message, name))print("1+1的结果是:%s:" % (type(1 + 1)))print("钱包还有:", money, "一加一等于:", i)print("数字11宽度限制1:%1d" % num1)print("1+1的结果是:%d" % (1 + 1))print(f"1+1的结果是:{1 + 1}")

2023-09-07 20:32:48 187

原创 集合的进阶学习

/因为Collection里面定义的方法是共性的方法,所以不能通过索引进行删除,智能通过元素的对象进行删除。Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。无索引:没有带索引的方法,所以不能使用普通for遍历,也不能通过索引获取元素。//获取一个列表迭代器对象,同样的里面的指针也是指向零索引。迭代器在Java中的类是Iterator,迭代器是集合专用的遍历方式。增强for的底层就是迭代器,为了简化迭代器的代码书写的。List系列集合:添加的元素是有序的、可重复、有索引。

2023-09-06 21:12:04 207

原创 泛型的学习

把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。//如果我们没有给集合指定类型,默认认为所有的数据类型都是Object类。当我在编写一个类的时候,不确定类型,那么这个类型就可以定义为泛型类。//带来一个坏处,我们在获取数据的时候,无法使用他的特有行为。//此时推出了泛型,可以在添加数据的时候,将数据类型统一。指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型。当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类。

2023-08-31 19:38:50 1968

原创 Lambda表达式

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,它可以写出更简洁,更灵活的代码。函数式接口:有且只有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionnalInterFace注解。//调用一个方法时,如果方法的形参是一个接口,那么我们要传递这个接口的实现类对象。System.out.println("游泳!如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略。System.out.println("游泳");

2023-08-12 10:47:30 117

原创 常见算法的API-Arrays

/第二个参数是一个接口,在调用方法时,需要传递这个接口的实现类对象,作为排序的规则。//拿着A元素,根插入点的元素进行比较,比较的规则就是compare方法的方法体‘//遍历无序的序列得到里面每一个元素,假设当前遍历得到的元素是A元素。//把A元素往有序序列中插入,插入的时候用二分查找确定A元素的插入点。细节1:二分查找的前提,数组中的元素必须有序,数组中的元素必须是升序。//0:表示当前插入的元素跟现在的元素比是一样的,也放在后面。//正数:表示当前插入的元素是大的,放在后面。

2023-08-04 19:49:50 158

原创 常见的算法

将0索引的元素到N索引的元素看作是有序的,把N+1索引的元素到最后一个当成是无序的。遍历无需的元素,将遍历到的元素插入有序序列中适当的位置,如遇到相同数据,插在后面。从0索引开始,拿着每一个索引的元素与后面的元素依次比较,小的放前面,大的放后面。原则1:前一块中的最大数据,小于后一块中所有的数据(块内无序,块间有序)第一轮:把0索引的数字作为基准数,确定基准数在数组中正确的位置。//调用方法,传递索引表,数组,查找的元素。//1.找到无序的那一组,是从哪个索引开始的。//获取这一块的起始索引和结束索引。

2023-07-28 20:40:26 138

原创 包装类的学习

/弊端:当我们在使用next nextInt nextDouble接收数据的时候,遇到空格,回车,制表符的时候就停止了。会提前将-128 - 127范围内的数字创建好对象,不在范围创建新的,在范围返回已经创建好的对象。//如果想要键盘录入,不管什么类型,统一使用nextLine。//8种包装类,除了Character都有对应的parse方法进行类型转换。//键盘录入123 123只能接受前面的数据。//在类型转换的时候,括号内只能是数字,不然会报错。//1.把整数转为二进制。

2023-07-09 19:32:14 302

原创 时间相关类

/isBefore:判断调用者的时间是否在参数表示的时间后面。//isAfter:判断调用者的时间是否在参数表示的时间前面。//minus表示减少,只能减少年月日,返回一个新的对象。//plus表示增加,只能增加年月日,返回一个新的对象。//通过Instant+时区的方式获取时间对象。//1.获取当前时间的日历对象(只包含年月日)//with方法修改年月日,并产生一个新的对象。//1.获取当前时间的Instant 对象。//getTime获取当前时间的毫秒值。//2.获取指定的时间对象(带时区)

2023-07-08 18:23:12 151

原创 分组的妙用

String str = "我要学学编编编编编编编编编编编编编编程程程程程程程程程程程程程程程程程程程程程程程程";// \\组号:表示把第x组的内容再拿出来用一次。// \\2:把首字母拿出来再次使用。//(.)把首字母看作一组。// *表示0次或者多次。后续还要继续使用本组的数据。//把重复的内容替换为单个。正则内部使用:\\组号。正则外部使用: $组号。

2023-07-06 15:09:00 76

原创 爬虫的学习

1994年,Gosling用Java7语言开发了一个实用性较高、可靠、安全、有交互功能的新型Web浏览" "器,它不依赖与任何硬件平台和软件平台,该浏览器被命名为HotJava,并于1995年在业界发表,引起了巨大的轰动,Java61语言的地位随之得到了肯定;"器,它不依赖与任何硬件平台和软件平台,该浏览器被命名为HotJava,并于1995年在业界发表,引起了巨大的轰动,JAVa11语言的地位随之得" +//文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取。//获取正则表达式的对象。

2023-07-06 14:40:19 4152 1

原创 正则表达式的练习

/ System.out.println("输入电话");// System.out.println("座机");// System.out.println("邮箱");

2023-07-06 09:38:39 302

原创 正则表达式

正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。//规则:6-20位 第一位不为0,全是数字。//if首先进行异常情况判断。在一段文本中查找满足要求的内容。校验字符串是否满足规则。

2023-07-04 16:29:24 255

原创 常用API-BigInteger、BigDecimal

如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。如果BigInteger表示的超出long的范围,可以用构造方法获取。//如果要表示的数字不大,没有超出double的范围,建议使用静态方法。//如果传递的是0~10之间的整数,会返回Java已经创建好的对象。//能表示的范围比较小,在long 的范围下取值,超出会报错。//提前吧这个范围的数字创建好了对象,多次获取不会创建新的。计算机中的小数,是由二进制的整数部分和小数部分组成的。//字符串中的数字必须跟进制吻合,否则会报错。

2023-07-04 11:10:48 71

原创 常用API-Object、Objects

/判断对象是否为空,为true,反之false。//判断对象是否为空,与isNull的结果相反。//默认情况下,toString方法返回的是地址值,所以默认情况下,打印一个对象打印的就是地址值,如果。//核心逻辑:当我们打印一个对象的时候,底层调用toString,把对象转化为字符串。//现在Cloneable表示一旦实现,那么当前类的对象可以被克隆。把A对象的属性值完全拷贝给B对象,也叫做对象拷贝,对象复制。//字符串里的equals方法先判断是不是字符串,//先把被克隆的对象中的数组获取出来。

2023-07-02 23:00:32 113

原创 常用API-System 、Runtime

/如果数据源数组和目的地数组都是基本数据类型,那么两种类型都要保持一致,否则报错。//如果数据源数组与目的地数组,都是引用数据类型,那么子类型可以赋值给父类。//拷贝时需要考虑数组的长度,否则会出现索引越界。//-s -t指定时间:指定关机时间。//-s 默认再一分钟之后关机。//shutdown:关机。//-a 取消关机操作。//加上参数才能运行。//-r 关机并重启。

2023-07-02 11:06:21 104

原创 常用API-Math类

/以int为例,取值范围为:-2147483648 ~ 2147483647。//如果没有正数与之对应,就会有bug。//abs 获取参数的绝对值。//进一法,往数轴的正半轴进。//获取1-100的随机数。//floor 向下取整。//获取两个整数的最大值。//ceil向上取整。

2023-07-02 10:04:36 112

空空如也

空空如也

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

TA关注的人

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