c语言学习
前言
两年前学的c语言,好久没用了, 忘得差不多了, 现在重新学习一下,用博客记录下来,常回来复习复习
发布时间
通称
备注
1972
-
C语言的原始版本由Dennis Ritchie在贝尔实验室开发。
1978
K&R C
Brian Kernighan和Dennis Ritchie发布《C程序设计语言》第一版,介绍了C语言的经典版本。
1989
ANSI C (C89)
美国国家标准学会(ANSI)发布C语言的第一个官方标准,ANSI X3.159-1989,通常被称为ANSI C。
1990
ISO C
国际标准化组织(ISO)采纳ANSI C标准,发布ISO/IEC 9899:1990。
1999
C99
发布新标准,引入了新的语言特性,如//注释和长整型。
2011
C11
最新的C语言标准,引入了对并发的支持和其他一些新特性。
预处理器
定义
在C语言中,预处理器(preprocessor)是一个在编译阶段前执行的程序,它可以对源代码做一些预处理工作。预处理器通过预处理指令(preprocessor directives)来 ...
vs2019使用
一个解决方案对应多个项目
在vs2019中 解决方案是一个容器,它可以包含多个项目
创建一个空白解决方案
创建项目
这样我们就可以把多个项目在vs2019中打开了
项目调用
有时候我们希望一个项目能够调用另外一个项目,我们可以这样
现在有两个项目, 一个Dao,一个Service, 其中Service需要通过Dao项目访问数据库
将Dao项目输出为lib
在Service项目中引入
指定头文件
指定库地址
定义项目依赖
这一步不是必须的, 你可以手动将Dao项目生成为lib, 这里是自动生成lib
如果我们没有修改Dao里面的代码, 是不会重新对Dao进行构建的, 这一点很重要
动态链接库DLL生成
方式一 使用 __declspec(dllexport) 创建dll
Math.h
12345678910111213141516171819202122232425#pragma once#ifdef MATHLIBRARY_EXPORTS#define MATHLIBRARY_API __declspec(dllexport) #else#define MATH ...
k8s总结
资源对象
pod
Pod 代表的是集群上处于运行状态的一组 容器 的集合, 也就是说一个pod里面可以有多个容器, 容器是容器运行时的最小调度单位, 在k8s中pod才是最小调度单位
当在你的集群中运行了某个 Pod,但是 Pod 所在的 节点 出现致命错误时, 所有该节点上的 Pod 的状态都会变成失败。Kubernetes 将这类失败视为最终状态: 即使该节点后来恢复正常运行,也需要创建新的 Pod 以恢复应用。
任何给定的 Pod (由 UID 定义)从不会被“重新调度(rescheduled)”到不同的节点; 相反,这一 Pod 可以被一个新的、几乎完全相同的 Pod 替换掉。 如果需要,新 Pod 的名字可以不变,但是其 UID 会不同。
一个pod里面的容器在同一个网络命名空间 可以通过localhost 互相访问
容器重启策略
Always:无论容器的退出状态码是什么,都将重启容器。这是默认策略。
OnFailure:只有当容器以非零状态码退出时,才会重启容器。
Never:不论容器的退出状态码是什么,都不会重启容器。
容器重启不会删除pod,当重启次数超过一定次数 ...
tomcat的安装
下载Tomcat
1
环境搭建合集
前言
这里总结了环境搭建,以及一些注意点和配置
Tomcat
安装
windows
去官网下载压缩包解压就行 我这里用的Tomcat9
linux
1234mkdir /usr/local/tomcatcd /usr/local/tomcatwget -c https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75.tar.gz # 下载tar -zxvf apache-tomcat-9.0.75.tar.gz
目录解释
Tomcat 的安装目录结构中包含一些关键的子目录,每个目录都有特定的目的和用途:
bin:这个目录包含了用来启动和停止 Tomcat 服务的脚本文件。例如,在 Linux 系统上,你可以使用 ./startup.sh 和 ./shutdown.sh 来启动和停止服务。
conf:这个目录包含了 Tomcat 服务的所有配置文件,例如 server.xml、context.xml、tomcat-users.xml 等。这些文件允许你定制 Tomcat 的行为,例如修改默 ...
windows常用命令
前言
有时候需要用到windows命令,每次都要谷歌查一下,下一次还要继续查, 又不能保证每次都能查到,我索性总结一下
查看信息命令
查看端口是否被占用
1netstat -ano | findstr port(端口)
springMVC 源码
maven + Tomcat + spring + springMVC 纯注解搭建web环境
创建maven项目
12mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
导入依赖
1234567891011121314151617181920212223242526272829303132<dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.10</version> </depend ...
spring源码
ApplicationStartup
ApplicationStartup 接口是 Spring 框架提供的一个扩展点,允许开发者在 Spring 应用启动期间收集性能指标和监控数据。通过实现这个接口,你可以自定义收集和处理这些数据的方式,以便更好地理解和优化你的应用程序。
从 Spring Boot 2.4.0 和 Spring Framework 5.3.0 开始,ApplicationStartup 接口被引入。它允许开发者为 Spring 应用提供自定义的启动跟踪策略
我们可以自定义这个东西,然后检测整个过程干了什么
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869public class MyBeanFactory extends AnnotationConfigApplicationContext { public MyBeanFactory(Clas ...
maven 学习
前言
在java开发中,maven的重要性不言而喻,但是我对于它的使用还只停留在导入配置文件这样,所以现在得好好学习一下
借鉴文档 http://www.mvnbook.com/maven-dependency-conflict.html
介绍
Maven是一个流行的Java项目构建和管理工具,主要用于自动化构建过程。它有助于项目的编译、测试、打包、发布和部署。Maven是基于Project Object Model (POM)的,使用一个名为pom.xml的配置文件来描述项目的结构、依赖、插件和其他相关信息。
Maven具有以下特点:
约定优于配置:Maven遵循一套标准的目录结构和默认设置,使得开发人员无需过多的配置即可完成大部分任务。这有助于提高开发效率,简化项目结构,同时使得项目在团队间具有一致性。
依赖管理:Maven能够自动处理项目所需的依赖库,避免了手动下载和管理jar文件的麻烦。它还能解决依赖冲突和版本控制问题。
插件和扩展性:Maven拥有大量插件,这些插件可以帮助开发者完成各种任务,如编译、测试、打包、生成文档等。此外,Maven还支持自定义插件,从 ...