自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的多线程编程2

多线程是一个独立的执行流,解决并发编程这样的问题(虽然进程也能行,但是不如线程更轻量)上面说的“就绪”和“阻塞”都是针对系统层面上的线程的状态(PCB)在java中Thread类,对于线程的状态又进一步细化了把Thread对象创建好了,但是还没有调用start操作系统的线程已经执行完毕,销毁了但是Thread对象还在以上两个状态,是java内部搞出来的状态。就和操作系统PCB没有任何关系。

2024-07-15 14:20:48 768

原创 Java中的多线程编程1

上节课内容回顾进程, 进程调度, PCB结构,进程的虚拟空间地址,进程间的通信多线程仍然是最主流最常见的一种并发编程的方式Java中如何进行多线程编程;在Java标准库中,就提供了一个Thread类来表示操作线程Thread可以视为Java标准库提供的API创建好的Thread实例,其实和操作系统的线程是一一对应的关系,操作系统提供了一组关于线程的API(C语言风格)Java对于这组API进一步封装,就成了Thread类。

2024-07-15 12:09:57 616

原创 【日志消息类的编写】

这个类的实现就是:什么时间,哪个线程,哪个文件的哪一行,发生了什么等级的日志,日志机器名字是什么,日志的消息。由于上篇的代码比较简单,今天就多写两段代码顺便把日志消息类编写完成。日志消息类也就编写完成了。

2024-06-27 17:12:31 210

原创 【日志等级类编写】

我们使用的时候传入的是一个等级,我们需要将它转换为字符串。这篇文章接着上篇文章,继续来完成日志系统。在一个日志文件当中,有各种各样的等级日志。

2024-06-27 16:58:27 248

原创 【工具类的编写】

最近在写一个C++的项目,发现编写项目的过程真是曲折,所以写通过博客方式来对本项目进行一个重新的梳理。以便于自己来更好的了解这个项目。

2024-06-24 17:18:51 328

原创 【动态规划】01背包问题

01背包、分割等和子集、目标和、最后一块石头的重量

2023-09-11 18:58:15 462 2

原创 【动态规划】两个数组问题

最长公共子序列、不相交的线、不同的子序列、交错字符串、两个字符串的最小ASCII、最长重复子数组、通配符问题

2023-08-18 10:35:02 495 15

原创 【动态规划】回文串问题

回文子串、最长回文子串、回文串分割、最长回文子序列、让字符串称为回文串的最小插入次数

2023-08-15 11:58:43 369 8

原创 【Linux】网络基础2

站在应用层的角度看到的是一连串的数字应用程序看到这一连串的字节数据,就不知道那个部分开始啊到那个部分,是一个完整的数据报。这通常用于临时性的重定向,例如当一个网页被移到了新的URL上时,服务器可以返回302状态码和新的URL,以便客户端自动跳转到新的URL。找到一个最小的时间,保证“确认应答一定能在这个时间内返回”,但是这个事件段的长短,随着网络环境的不同也是有差异的。如果设置的时间太长,会影响整体的重传效率,如果设置的时间太短,有可能频繁发送重复的包。接收端处理数据的速度是有限的,如果发送端发送的太快。

2023-08-11 19:54:27 2226 16

原创 【Linux】网络编程套接字

是把返回结果放到了静态区,这个时候不需要手动释放。如果多次调用,会覆盖掉上一次的值。声明socket fd处于监听状态,并且允许多个客户端来连接等待状态。不管这台主机是大端还是小端,就需要先将数据转换为大端字节序。TCP由于是全双工的,所以初始化工作一共有五步。三次握手完成后,调用服务器连接,客户端需要调用这个函数连接服务器。TCP 简单的客户端。

2023-08-10 14:34:04 656 7

原创 【Linux】网络基础1

局域网任何时刻只允许一个人向局域网中发送消息,任何人要通信都要有一个唯一的标识符,对于计算机来说每台计算机都配有网卡。软件分层之后,每一层只关注自己同层的功能,只使用下层的接口,任何一层出现问题都不会影响到下一层,大大减少开发者的维护成本。计算机生产的厂商很多,计算机的操作系统也很多,计算机的网络硬件也很多。MAC地址是用来识别数据链路层中的相邻的节点,在网卡出厂时就已经确定了并且不能修改,mac地址是唯一的。它的最大优点是将服务、接口、协议三个概念明显的区分开来,但是它复杂又不实用,所以一般都谈。

2023-08-09 14:07:12 295 2

原创 【动态规划】子序列系列

最长递增子序列、摆动序列、最长递增子序列的个数、最长数链对、最长定差子序列、最长的斐波那契子序列的长度、最长等差子序列、等差数列划分 ||

2023-07-31 23:38:41 554 20

原创 【动态规划】子数组系列

最大子数组和、环形子数组的最大和、乘积最大子数组、乘积为正数的最长子数组的长度、等差数列化划分、最长湍流子数组、单词拆分、环形字符串中唯一的子字符串

2023-07-30 13:46:47 424 12

原创 【动态规划】简单多状态

按摩师、打家劫舍、粉刷房子、删除并获得点数、买卖股票的最佳时机系列

2023-07-26 20:57:48 451 19

原创 【动态规划】路径问题

不同路径、礼物的最大价值、下降最小和、最短路径、地下城游戏

2023-07-25 15:05:51 323 11

原创 【动态规划】斐波那契数列模型

第 N 个泰波那契数、三步问题、使用最小花费爬楼梯、解码方法

2023-07-23 20:16:16 315 3

原创 【C++】C++11

在C++11之前,涉及到多线程的问题,都是和平台相关的。window和Linux都有自己的接口,这就让代码的移植性比较差。C++11当中最重要的特性就是对线程进行了支持,使C++在编程时不需要依赖第三方库注意:线程是操作系统中的概念,线程对象可以关联一个线程,用来控制线程以及获取线程的状态当创建一个线程时, 没有提供线程函数,该对象实际没有对应任何线程当创建一个线程对象后,并且线程关联线程函数,这个线程就被启动。与主线程一起运行。函数指针lambda表达式函数对象。

2023-07-20 20:52:31 141 10

原创 【数据结构】红黑树

public :在节点的定义当中,为什么将节点的默认颜色给为红色?通过把新插入的节点默认为红色,可以较快地满足红黑树的性质,并且减少了插入操作时需要进行的旋转操作次数,提高了插入操作的效率。同时,红色节点相对于黑色节点来说,占用的存储空间更小,节省了内存空间。因此,在红黑树中,默认将节点的颜色给为红色。

2023-07-08 18:16:29 691 16

原创 【数据结构】AVL树

AVL树

2023-07-08 16:12:29 670 4

原创 【数据结构】map和set

这四种容器的共同特点是:使用平衡搜索树(即红黑树)作为底层,容器中的元素是一个有序的序列。注意:multimap与map唯一不同的是:map当中的key是唯一的,但是multimap当中的值是可以重复的。也是用来存储数据的,但是里面存储的是结构的键值对。因为底层是线性序列的数据结构,里面存储的是元素本身。Alloc:set当中元素空间的管理方式,使用STL提供的空间适配器来管理。key代表的是键值,value表示与key对应的信息。剩下的操作文档当中,都有显示,使用的时候查看即可。

2023-07-08 11:07:24 632

原创 【数据结构】二叉树经典题目

二叉树创建字符串、二叉树的层序遍历、二叉树的最近公共祖先、二叉搜索树与双向链表、前序与中序构造二叉树、二叉树的三种非递归遍历方法

2023-06-14 21:32:13 1092 13

原创 【数据结构】二叉搜索树

二叉搜索树的概念、二叉搜索树的操作、二叉搜索树的实现、二叉搜索树的性能分析

2023-06-11 18:27:10 1255 6

原创 【C++】多态

多态是在不同继承关系的类对象,去调用同一个函数,产生了不同的行为。比如Student对象继承Person。Person对象买票全价,Student对象买票半价在继承中要构成多态还有两个条件必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写在虚函数的后面加上=0这个虚函数表示纯虚函数。**包含纯虚函数的类叫做抽象类(也叫作接口类),抽象类不能实例化出对象)派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。

2023-05-22 20:37:26 906 15

原创 【C++】继承

继承的概念及定义、基类和派生类对象赋值转换、继承中作用域、派生类的默认成员函数、继承与友元、继承与静态成员、菱形继承

2023-04-17 20:54:57 813 23

原创 【C++】模板进阶

非类型模板的参数、函数模板的特化、类模板的特化、模板分离编译

2023-04-12 21:30:08 721 15

原创 【Linux】文件系统

了解磁盘的物理结构、磁盘的具体物理结构、逻辑抽象、软硬连接,动静态库

2023-04-07 20:17:17 1945 23

原创 【Linux】基础IO

系统文件IO,接口的介绍,open函数返回值、文件描述符、文件描述符的分配规则,使用dup2函数实现系统调用、FILE

2023-04-05 10:34:38 1208 17

原创 【Linux】进程控制

进程创建、进程终止、进程等待、进程的程序替换、函数和进程的相似性

2023-03-29 22:03:16 1382 32

原创 【Linux】进程概念二

进程状态的分类、进程状态查看方法、僵尸进程、孤儿进程、环境变量的介绍

2023-03-15 18:41:33 2470 42

原创 【C++】string类基本用法

string类的基本介绍,string类的常用接口说明

2023-03-10 20:16:42 1218 33

原创 【Java】Mybatis查询数据库

使用${}可以实现排序查询,而是用#{}就不能实现排序查询,因为当使用#{}查询时,如果传递的值为String则会加引号,就会导致SQL错误。经过前面的学习Spring系列的操作已经差不多了,接下来我们继续学习更加重要的知识,将前端传递的参数存储起来,或者查询数据库里面的数据。也就是说使用MyBatis可以像操作对象一样操作数据库中的表,可以实现对象和数据表之间的转换,我们接下来看看MyBatis的使用。在多表查询的时候,如果使用resultMap标签,在一个类中包含了另一个对象是查询不出来包含的对象的。

2023-03-07 23:16:29 6153 58

原创 【Java】Spring MVC程序开发

Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。它的正式名称是“Spring Web MVC”来自其原模块的名称,但是它通常被称为“Spring MVC”Spring MVC 是一个Web框架Spring MVC 是基于Servlet API构建的然而要真正的搞懂Spring MVC?我们要先理解什么是MVC?

2023-03-04 20:05:38 9058 73

原创 【C++】模板初阶

template < class T1 , class T2 , . . . , class Tn > class 类模板名 {// 类内成员定义 };

2023-03-03 20:04:43 820 27

原创 【Java】Spring Boot 日志文件

日志是程序员中的重要组成部分,使用日志可以快速的发现和定位问题,Spring Boot提供了日志框架,默认情况下使用的是info日志级别将日志输出到控制台的。我们可以通过lombok提供的@Slf4j注解和log对象快速的打印自定义日志,日志包含了6个级别:- trace:微量,少许的意思,级别最低- debug:需要调试的时候的关键信息打印- info:普通的打印信息- warn:警告,不影响使用,但需要注意的问题- error:错误信息,级别较高的错误日志信息- fatal:致命的,因为代

2023-03-01 23:00:00 4427 61

原创 【Java】Spring Boot 配置文件

主要介绍了Spring Boot当中的配置文件以及properties和yml的区别

2023-02-26 21:52:54 2416 40

原创 【Java】Spring Boot项目的创建和使用

Spring Boot是为了快速开发Spring而诞生的,- 快速继承框架,SpringBoot提供了启动添加依赖的功能,用于秒级继承各种框架- 内置运行容器,无需配置Tomcat等Web容器,直接运行和部署程序- 快速部署项目,无需外部容器启动并运行项目- 可以完全抛弃繁琐的XML,使用注解和配置的方式进行开发- 支持更多的监控的指标,可以更好的了解项目的运行情况它的设计思想是**约定大于配置**

2023-02-25 14:14:40 1016 26

原创 【Java】Spring更简单的读取和存储

1. 将对象存储到Spring中: 1. 使用类注解:@Controller、@Service、@Repository、@Configuration、@Component【它们之间的关系】 2. 使用方法注解:@Bean【注意事项:必须配合类注解一起使用】2. Bean的命名规则:首字母和第二个字母都不是大写,首字母小写来获取Bean,如果首字母和第二个字母都是大写,那么直接使用Bean名来获取Bean3. 从Spring中获取对象 1. 属性注入 2. Setter注入

2023-02-23 20:54:10 1106 15

原创 【Java】Spring的创建和使用

1. 操作容器之前,先要有一个容器,所以要先得到容器2. 存对象 1. 创建Bean(普通类) 2. 将Bean注册到配置文件当中3. 取对象 1. 得到Spring的上下文,并读取到Spring的配置文件 2. 获取到某一个Bean对象 3. 使用Bean对象

2023-02-22 12:37:02 1628 19

原创 【Java】Spring核心与设计思想

我们通常所说的Spring指的是Spring Framework(Spring框架),它是一个开源的框架。有着庞大而且活跃的社区,这也是长久不衰的原因。用一句话来概括:Spring是包含了众多工具方法的IOC容器。那么什么是容器?什么是IOC容器?

2023-02-20 19:33:50 3389 24

原创 【C++】C/C++内存管理

C/C++当中的内存分布、C语言当中的动态内存管理、C++内存管理方式、operator new和operator delete函数、new和delete的实现原理、定位new表达式、free/malloc和new/delete 的区别

2023-02-17 00:00:00 2106 27

个人简历Markdown编辑,简洁大方,让人一看就像要认识你的感觉

主要介绍了一个简历的模板,使用程序员人群。当我们面试投递这个简历的时候当面试官一看到就想要迫不及待的认识你。这个简历的模板最主要就是简洁、大方没有那么多的多余地方。

2023-02-14

TCP三次握手和四次挥手

TCP需要三次握手,是因为双方都是全双工的,所以要经历三次握手才能够真正建立连接如果是两次的话,不能证明服务器的发送能力和客户端的接收能力。而需要四次挥手,是TCP的半关闭状态造成的挥手过程中会造成两个重要的状态。 TCP三次握手是一个经典的面试题,它指的是TCP在传递数据之前需要进行三次交互才能正式建立连接,并进行数据传递。(客户端主动发起的)**TCP之所以需要三次握手是因为TCP双方都是全双工的 1. `CLOSE_WAIT`:四次挥手两次之后的状态,这个状态就是在等待代码当中调用`socket.close`方法,来进行后续的挥手过程!正常情况下一个服务器上不应该存在大量的`CLOST_WAIT`状态,如果大量存在大概率是代码的bug,关闭方法没有被执行到 2. `TIME_WAIT`:谁主动发起FIN,谁就进入该状态。起到的效果就是最后一次ACK提供重传的机会。表面看起来A发送ACK之后就没有A的事情了,按理来说A应该销毁释放资源。但是并没有直接释放而是进入`TIMT_WAIT`状态。该状态等待一段时间之后,再来释放资源。等这一段时间是为了防止最后一个ACK丢包。如果最后一次A

2023-02-14

空空如也

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

TA关注的人

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