自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLocal

ThreadLocal提供了线程本地的实例,它与普通变量的区别在于,每个使用该变量的线程都会初始化一个完全独立的实例副本,ThreadLocal变量通常被private static修饰,当一个线程结束时,它所用的所有ThreadLocal相对的实例副本都可被回收。线程变量,THreadLocal中填充的变量属于当前线程,该变量对于其他线程而言是隔离的,也就是说该变量是当前线程独有的变量,ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程都可以访问自己内部的副本变量。

2024-09-27 10:16:15 984

原创 java 三层框架完整开发流程

与数据库相对应。

2024-09-26 14:38:20 277

原创 redis01

是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志类型,ker-value数据库,并提供多种语言的API,它支持多种类型的数据结构,:字符串 散列 列表 集合 有序集合。3、隔离性:一个事物的执行不能被其它事物干扰,即一个事物内部的操作及使用激光的数据对于并发的其它事物是隔离的,并发执行的各个事物之间不能互相干扰。4、持久性:持久性也称为永久性,指一个事物一旦被提交,它对数据库中的数据的改变就是永久性的,接下来的其它操作或者故障不应该对其有任何影响。2、效率高,可以用于高速缓存。

2024-09-26 14:29:46 361

原创 数据库01

table新建表。

2024-09-18 10:46:33 177

原创 SSM框架学习

2、SpringMVC:SpringMVC是SPring框架的一部分,专注于构建MVC架构中的Web应用程序,它处理HTTP请求和相应,将请求映射到相应的处理方法,并协调模型、视图和控制器的交互,在SSM中,SpringMVC负责处理WEb层的逻辑,将用户的请求和后端业务逻辑连接起来,并将数据呈现给用户。将这三个框架结合起来,可以实现一个完整的web应用,从前端的用户界面到后端的业务逻辑和数据存储层都能够得到很好的管理,整个程序的结构变得清晰,各个层次之间的协作也更加高效。

2024-09-13 14:45:45 263

原创 java08

HashMap实现了Map接口,根据键的HashCode的值存储数据,具有很快的访问速度,最多允许一条记录的键为NULL,不支持线程同步。通过使用迭代器,我们可以逐个访问集合中的元素而不是通过传统的for循环或者索引,这种方式更加简洁灵活,并且适用于各种类型的集合。java object是所有类的父类,也就是说java的所有类都继承了object,子类可以使用object的所有方法。它提供了统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节。HashMAp是无序的,即不会记录插入的顺序。

2024-09-06 09:01:14 603

原创 java07

一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。

2024-09-05 10:27:05 891

原创 java06

是java中的䘝抽象类型,是抽象方法思维集合,接口通常以interface来声明。一个类通过集成接口的方式从而继承接口的抽象方法接口并不是类,编写接口的方式和类很相似,但是它们并不属于同一种概念,类描述对象的属性和方法,接口则包含类要实现的方法除非实现接口的类是抽象类,否则要定义接口中的所有方法接口无法被实例化,但是可以被实现,一个实现接口的类,必须包含接口内描述的所有方法的实现,否则就必须声明这个类为抽象类。

2024-09-04 08:58:53 701

原创 时间复杂度和空间复杂度

概念:算法中基本操作执行的次数和问题的规模n之间的函数关系记作O(f(n))针对的是问题规模的增长率求解算法的时间复杂度的基本步骤:1、找出算法中的基本语句算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体2、计算基本语句的执行次数的数量级只要保证基本语句执行次数的函数中的最高次幂正确即可3、用O记号表示算法的时间性能0(1):表示执行次数和常数和问题规模没有关系,这个常数也可以是1、100、1000等。

2024-09-02 16:40:59 181

原创 java05

1、抽象类不能被实例化2、抽象类中不一定包含 抽象方法3、抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能4、构造方法,类方法(用static修饰的方法)不能声明为抽象方法5、抽象类的子类必须给出抽象类中抽象方法的具体实现。

2024-09-02 16:40:06 636

原创 java1 编程语言类型

计算机可以直接接受·直接理解的语言机器语言 是微处理器理解和使用的,用于控制它的操作二进制代码特点:编程质量好,占用内存小,用机器指令精准描述代码缺点:难读难记。

2024-08-31 16:18:38 209

原创 java04

重写:重写是指子类定义了一个与其父类中具有相同名称、参数列表、返回值类型的方法,并且子类方法覆盖了父类方法的实现,即外壳不变核心重写 重写的好处在于子类可以根据需要,定义自己的行为,也即是说子类可以选择性的实现子类的方法 重写方法不能抛出新的异常或者比被重写方法申明更加宽泛的异常 在面向对象的原则里,重写意味着可以重写现有的所有方法。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。子类是不继承父类的构造器(构造函数或者构造方法)的,它只是调用(隐式或者显式),

2024-08-30 15:56:26 1353

原创 java03

继承就是子类继承父类的行为和特征,使子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为 类的继承格式 class 父类 { } class 子类 extends 父类 { } supper关键字 java继承的类型:单继承、多重继承、不同类型继承同一个类、多继承(java不支持多继承)用于在方法声明中指定该方法可能抛出的异常,当方法内部抛出指定类型的异常时,该异常会被传力给调用该方法的代码,并且在该代码中处理异常。在合适的位置进行捕获,对异常进行适当的处理。

2024-08-30 09:23:00 1124 1

原创 java02

finalize:java允许存在的函数,它在对象被回收之前调用,它用来清理回收对象,可以使用它来确保打开的文件被关闭了,必须要指定在对象销毁的时候要执行的操作。构造方法:在对象被创建时会调用构造方法,如果类没有给出特定的构造方法,那么编译器会提供一个默认的构造方法,默认构造方法的访问修饰符和类的访问修饰符相同。变量作用域,变量在程序中可以被引用的部分,方法内被定义的变量称为局部变量,局部变量必须声明才可以使用。当程序调用一个方法时,程序的控制权交给方法,当方法执行完成之后,控制权交换给程序,

2024-08-28 16:20:57 154 1

原创 java01

【代码】java01。

2024-08-28 16:19:58 224

原创 数据结构-算法概念与程序设计

1、时候统计法,很多计算机内部都具有计时功能,不同的而算法程序可以通过一组或者多组相同的统计数据以分辨优劣,但是这中办法有两中弊端:1、必须先运行依赖算法编制的程序。2、所得的时间的统计量依赖于计算机的硬件软件等环境因素,容易掩盖算法本身的优劣。(2)确定性:算法中的每一条指令必须有确切的含义,在任何条件下,算法只有唯一的一条执行路径,对于相同的输入只能得到相同的输出。程序主要是为了人的阅读与交流,其次才是机器执行,可读性好有助于人对于算法的理解,晦涩难懂的程序容易隐藏错误,难以调试和修改。

2023-12-25 22:07:59 483

原创 面试-数组中的重复数字

数组存放1-n,在数组中存在一个重复的数,找出这个重复的数。

2023-12-25 20:56:17 354

原创 面试-判断数组序列是否具有单调性

bool类型的两个函数,如果单调递增返回值为真,单调递减返回值也为真,两者都不满足返回值为假。数组序列从大到小或者从小到大。单调递增或者单调递减。

2023-12-20 20:37:42 485

原创 面试-旋转数组的三种方法

将原来的数组分割成两个部分,直接向后移的,和往前移的,先把旋转到前面的写入到新申请的空间,后面补上向后移的,最后将新空间的内容依次赋值给原来的数组,然后释放申请的空间,并将指针置为空。题目:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。先将数组全部逆置,然后把前k个元素和剩下的元素分别逆置。再编写函数调用K次右移一位的函数。先编写右移一位的函数。

2023-12-20 17:59:11 423

原创 面试题-合并两个有序数组

在两个数组都没有写进去的情况下,进行比较,小的先写,写完进行下一个的比较,直到其中一个数组完全写完,然后退出比较,将没有写完的数组再写道入新数组中。从后向前依次放去,如果数组2先放完,则排序成功,如果数组一先放完,将数组二剩下的依次放入到数组一剩下的位置中。顺序表的结构存放在栈区,存放的内容在堆区。3、将两个数组写进去新申请的空间中。2、申请新空间为两个数组大小之和。

2023-12-20 17:06:49 360

原创 数据结构-顺序表的大小

cpu访问内存(通过地址)8个二进制位称为一个存储单元(一个字节)

2023-12-18 18:04:43 542

原创 数据结构-typedef关键字讲解

凡是合法的变量声明都可以使用typedef转换成类型声明。给结构体起别名可以在使用时不用写struct。typedef就是给已有的类型名起一个别名。

2023-12-15 16:18:46 83

原创 数据结构-线性表的详解

线性表中的数据元素可以是各种各样的,但是同一个线性表中的数据元素必须具有相同的特性,属于同一种数据对象,相邻数据元素之间存在序偶关系。线性表的顺序指的是,用一组地址连续的存储单元,一次存储线性表的数据结构。(4)除了最后一个以外,集合中的每一个数据元素均只有一个后继。(3)除了第一个以外,集合中的每一个数据元素均只有一个前驱。(2)存在唯一的一个被称为最后一个的数据元素。(1)存在唯一的一个被称为第一个的数据元素。一个线性表是n个数据元素的有限序列。线性表的数据元素必须是连续的。

2023-12-15 16:00:00 57

原创 数据结构-数据结构导论

数据元素:是数据的基本组成单位,在计算机中通常作为一个整体进行考虑和处理,一个数据元素可以被分成若干个数据项,数据项是数据元素不可分割的最小单位。数据元素之间的关系在计算机中有两种不同的表示方式:顺序映像和非顺序映像,由此得到两种不同的存储结构:顺序存储结构和链式存储结构。数据的逻辑关系和物理关系是密切相关的两个方面,任何一个算法的设计取决于选定的逻辑结构,而算法的实现依赖于物理结构。数据元素在计算机中的存储称为存储结构,又称为数据的物理结构,包括数据元素的表示和关系的表示。数据元素之间存在一对多的关系。

2023-12-15 15:30:11 169

原创 http协议和HTTP编程流程

服务器与浏览器建立连接之后,如果两次以上的请求复用同一个TCP链接,就称为长连接,如果浏览器发送一次请求报文,服务器一次应答就断开,下次交互再重新进行三次握手连接,就称为短链接,长连接更好,减少网络中的同步报文,也使服务器的响应速度变快。浏览器和web服务器在应用层通信使用的是http协议,HTTP协议在传输层使用的是TCP协议,浏览器和web服务区三次握手建立连接之后,才能发送HTTP请求报文,那么服务器收到请求报文之后,向浏览器回复http应答报文。(超文本传输协议)(80)[应用层协议]

2023-08-23 10:41:15 1539

原创 TCP特点UDP编程

对于udp编程,因为是无连接的,所以可以多个客户端发送,客户端关闭,服务器端不回收到任何数据,服务器端关闭后,对于客户端无影响。解决办法:让接收的时候能区分出来,用不同的报文、在报文前面描述数据有多大、不连续send。只有在握手和挥手的时候回引起TCP协议的变化,稳定收发连接的时候状态时不会发生改变的。3、接收recvfrom()//需要指定对方的IP和端口。2、发送sendto()//需要指定对方的IP和端口。多次发送的数据被一次性收到了,误以为是一次性收到的。2、指定IP和端口bind()

2023-08-21 15:16:03 2035

原创 TCP编程流程(补充)

客户端发送的数据和服务器返回的数据,数量对不上是正确的,因为发送数据是从发送缓冲区进行发送,接收是从接收缓冲区进行接收,所以真正接收到的数据和发送的数据可能不相同,真正发送的,和接收到的数据也可能不相同。netstat _natp:查看缓冲区还有多少个数据,查看是送的缓冲缓冲区还没有发送,还是接收缓冲取还没有被接收。如果只有一个线程,南那么只能接收一个客户端,被堵塞住了,如果先要链接多个客户端,就需要启用多个线程。执行listen会创建一个监听队列。

2023-08-20 15:10:53 495

原创 TCP编程流程

主机字节序列分为大端字节序和小端字节序大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节序列存储在内存的高地址处。小端字节序是指整数的高位字节存储在高地址处,低位字节序列存储在内存的低地址处。网路字节序列:大端字节序列,转换为大端:htons()

2023-08-19 19:38:59 796

原创 网络编程基础(1)

为应用层提供可靠的面向连接的和基于流的服务,TCP协议使用超时重传,确认应答等方式来确保数据包被正确的发送至目的端,TCP协议是可靠的,使用TCP协议通讯的双方必须先建立TCP连接,并在内核中为该连接维持一些必要的数据结构,比如连接状态、读写缓冲区等,等通讯结束后,双方必须关闭连接以释放这些内核数据,TCP服务是基于流的,基于流的数据没有长度限制,他远远不断的从通讯的一端流向另外一端,发送端可以逐个字节的向数据流中写入数据,接收端也可以逐个字节的将他们读出。四个字节,每个字节8位,共32位,用十进制表示。

2023-08-18 14:07:12 1912

原创 linux17 线程安全 线程同步

多线程程序无论调度顺序如何,都能保证程序 的正确性,就说该程序处于线程安全的状态1)、同步2)、线程安全函数//有的函数不适合多线程使用,是函数自身的原因。

2023-08-17 14:59:38 229

原创 Linux16(2)生产者消费者

【代码】Linux16(2)生产者消费者。

2023-08-16 18:02:59 39

原创 Linux16(1) 线程同步

用户级线程:模拟出来多条路径,在内核眼里依旧是一条路径,他的出现不需要操作系统参与,可以创建特别多的线程,开销小但是无法使用多个处理器(只能并发)当有线程持有读模式锁时,其他线程也可以继续获取读模式锁,但不能获取写模式锁。在Linux系统上,没有线程的概念,每一个线程都是当作进程来实现的,是一个和其他进程共享某些资源的进程,都拥有属于自己的内存控制块。组合:可以利用多处理器的资源,在用户空间可以创建更多线程,对于后期线程的创建来说,开销小。加锁:pthread_mutex_lock(&mutex);

2023-08-16 16:08:00 181

原创 Linux15 消息队列 线程

信号量 共享内存 消息队列 管道 套接字。

2023-08-16 11:09:21 206

原创 linux14信号量 信号量共享内存

信号量是一个特殊的变量,一般取正数值,他的值代表允许被访问的资源数目,获取资源时,要对信号量的值进行原子减1,该操作被称为p操作,当信号量的值为1时,代表没有资源可用,P操作会堵塞,释放资源时,需要对信号量的值+1,称为v操作,信号量主要用来同步进程临界资源:同一时刻,只允许被一个进程或线程访问的资源//可以是一个虚拟机,我正在使用别人就不行,也可以是一个buff,都有可能是一个临界资源临界值(区):访问临界资源的代码段。

2023-08-15 17:24:27 70

原创 linux 13 管道

linux基本命令类型:d目录 -普通 p管道权限:r w x chomd静态库libxx.a 共享库libxx.so直接拷贝 使用时拷贝 -L路径 l库名进程 复制进程fork exec替换 信号 SIGINT kill 9SIGCHLD。

2023-08-15 13:03:19 58

原创 Linux12 信号

ctrul+c(命令)——>发送信号//用信号代表这件事情产生了中断(软中断)//信号打断了进程当某个进程正在执行时,用户在终端键盘上按下某些键时,此时会产生一个硬件中断。此时终端驱动程序会将其解释为某一种信号,操作系统得知后会将该信号发送个正在前台运行的进程。并在合适的时机去处理该信号大部分信号的产生都是因为进程产生了异常只有信号才能把进程终止信号自定义signal(),将信号改变成自定义的信号,当调用signal时,内核收到信号,直接调用相应的方法忽略SIG_IGN。

2023-08-15 13:01:53 100

原创 Linux11 进程替换

库函数的是实现在库里,属于用户自己的代码,系统调用就是内核中的函数,编译内核的时候就实现了他,系统调用的函数用户可以指定,内核中的函数,用户无法指定。8、每一个进程都会有一个进程控制块PCB,是一个结构体,有多少个进程就有多少个进程控制块。3、先打开文件再进行复制,父进程和子进程轮流对文件进行操作,共享文件。4、先复制再到开文件,父进程和子进程分别对文件进行操作。2、父进程打开的文件fork后,子进程中使用。9、进程复制:先复制进程控制块,再复制进程。6、文件表 1024。

2023-08-15 12:59:49 32

原创 Linux10 僵死进程-文件操作

/0,1,2被占用0:标准输入:1:stdin标准输出(屏幕) 2:标准错误输出。如果子进程的父进程结束了,子进程会变成孤儿进程,它会被系统中的init(pid=1)收养。子进程先于父进程结束,父进程没有获取子进程的退出码,子进程就变成了将死进程。wait(pid)//获取 sys/wait.h//头文件。在终端中所有的进程的父进程都是bash(命令解释器)write(写入到那个文件,”数据“,数据大小);父进程结束之后,就会给出提示符,子进程自行执行。linux不存在文本和二进制之分。

2023-08-15 12:56:45 46

原创 Linux9fork 进程地址空间

放访问虚拟内存中的页面时,虚拟内存才会调回到物理内存中。当前物理内存剩余空间+虚拟内存剩余空间能否满足申请条件。malloc申请空间,当程序结束后,会被系统回收。物理内存和虚拟内存,加起来是最大能申请的空间。malloc能申请多大,32位,理论

2023-08-15 12:43:22 38

原创 Linux8 fork

代码段:存放可执行文件的操作指令,可执行程序在内存中的镜像,只允许读取,是不可写的数据段:用来存放可执行程序中已经初始化全局变量,就是放程序静态分配的变量和全局变量bss段:包含了程序中未初始化的全局变量,在内存bss段全部置零堆:用来存放进程运行中被动态分配的内存段,他的大小是不固定的,可动用函数分配内存时,新分配的内存就被添加到堆上,当使用函数释放内存时,被释放的内存从堆中剔除。

2023-08-15 12:42:20 33

2022.12.03matlab实验12

2022.12.03matlab实验12

2023-04-17

2022.12.03matlab实验11

2022.12.03matlab实验11

2023-04-17

2022.11.27matlab实验十

2022.11.27matlab实验十

2023-04-17

2022.11.27matlab实验九

2022.11.27matlab实验九

2023-04-17

2022.11.24matlab实验八

2022.11.24matlab实验八

2023-04-17

2022.11.24matlab实验七

2022.11.24matlab实验七

2023-04-17

空空如也

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

TA关注的人

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