《C++ Primer 第五版》学习笔记 - 1
《C++ Primer 第五版》学习笔记以下为 Chapter1、Chapter2
C++是如何工作的 源文件-> 编译器-> 链接-> 可执行程序
每一个源文件在编译后都会生成*.obj文件* ,通过链接就可以将所有obj文件生成一个可执行文件。
例如#include <iostream>,#符号后面跟的都是预处理语句。
预处理语句是在实际编译之前处理。
#include 实际上就是寻找一个文件,将此文件内容拷贝到现在文件中,这就是 头文件
项目中的每个cpp文件都会被编译,但头文件不会被编译。编译器会给每个cpp文件生成对应的obj文件,链接器将他们合并成一个exe文件。
C++编译器是如何工作的预处理阶段编译器会遍历所有的预处理语句并对其处理,常用的预处理语句有include if ifdef pragma。
.obj文件是二进制的机器码,如果我们想查看对应的汇编代码,可以在VS的项目属性里,C/C++ –> Output File –> Assembler Output –> Assembly-Only Listing
...
Java常用类
Java常用类内部类分类
成员内部类
静态内部类
局部内部类
匿名内部类
内部类概念概念:在一个类的内部再定义一个完整的类。
特点:
编译之后可生成独立的字节码
内部类可以直接访问外部类的私有成员,而不破坏封装。
可以为外部类提供必要内部功能组件
12345678910// 身体public class Body { private String name; // 头部 class Header{ public void show(){ System.out.println(name); // 可以访问外部类的私有成员 } }}
成员内部类
在类的内部定义,与实例变量、实例方法同级别的类。
外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
如果内部类和外部类有同一 ...
Docker使用经验
Docker使用经验官方教程:https://docker.easydoc.net
用法
先写Dockerfile
生成镜像,docker build -t {镜像名:version} {包含Dockerfile的路径}
运行docker,docker run -it {镜像名:version}
在之前docker基础上生成新的镜像, docker commit {容器id} {新镜像名:version}
打包,docker save -o name.tar {镜像名:version}
读取镜像包,docker load --input {镜像名.tar}
常用指令
删除镜像,docker rmi -f {镜像名}
查看正在运行容器,docker ps
查看镜像,docker images
分配GPU,docker run -it --gpus all {镜像名:version}
Git学习笔记
Git 学习笔记援引Git 01 概述-KuangStudy-文章
版本控制版本控制(Revision Control)用于在开发过程中管理文件修改历史,方便查看和备份。
它的作用如下:
实现跨区域多人协同开发。
追踪和记载一个或者多个文件的历史记录。
组织和保护你的源代码和文档。
统计工作量。
并行开发、提高开发效率。
跟踪记录整个软件的开发过程。
减轻开发人员的负担,节省时间,同时降低人为错误。
简而言之就是用于管理多人协同开发的技术。
Git分布式版本控制所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史。在没有网络的情况下,可以离线在本地提交,只需在连网时推送到相应的服务器或其他用户那里。
由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据。不会因为服务器损坏或者网络问题,造成不能工作的情况,极大的降低了风险
Git基本理论工作区域Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/lndex)、资源库(Repository或Git Directory)。如 ...
QT打包技巧
QT编译打包技巧1. QT编译编译时不能有中文路径
2. QT打包
单独创建一个文件夹,将编译好的exe文件拷贝出来
用qt的命令行,cd到考出来的文件夹
使用windeployqt命令打包,即windeployqt 文件名.exe
JUC并发编程
1. 什么是JUCjava.util 工具包
java.util.concurrent.locks
java.util.concurrent
java.util.concurrent.atomic
业务:普通的线程 Thread
Runnable 没有返回值、效率相比 Callable 相对较低
2. 线程和进程进程:一个程序,QQ.exe Music.exe 程序的集合
线程: 一个进程往往包含多个线程,至少包含一个
java 默认有几个线程? 2个 main 、 GC
Thread、 Runnable、 Callable
Java真的可以开线程吗?不能,Java只能通过 native 调用底层C++
并发、并行
并发编程:并发、并行
并发(多个线程操作同一个资源)
单核:交替执行
并行(同时执行)
多核:多个线程可以同时执行
1234public static void main(String[] args) { // 获取cpu核数 System.out.println(Runtime.getRunti ...
MySQL学习笔记-Part1
MySQL 学习笔记 Part1SQL(Structed Query Language)
视频链接:https://www.bilibili.com/video/BV1Xb41177na?p=1
一、准备1. 下载安装MySQLMySQL Community Downloads
在Accounts and Roles界面设置root用户的密码,Connect To Server 界面再次输入密码。
其余全部默认
2. 配置MySQL
点击主界面 + ,新建连接
分别设置连接名称,端口密码,并测试保存。
3. 创建一个数据库下载链接下SQL Course Materials:https://github.com/JiaZhengJingXianSheng/Study-File
运行create-databases.sql
二、单一表格中检索数据MySQL语句在执行时关键字是忽视大小写的,建议关键字使用大写。
同时也会忽略回车 空格,所以下方两个指令是一样的,但建议使用第二种。
1SELECT * FROM customers # 读取customers表
...
PicGo-Github图床配置
PicGo-Github图床配置1. 下载PicGo下载链接:https://github.com/Molunerfinn/PicGo/releases
2.Github 新建仓库
3.生成tokenSettings -> Developer settings -> Personal access tokens
点击Generate new token
勾选repo,并生成token
4.配置PicGo仓库名为 用户名/仓库名 格式
分支名:main
建议按时间存储,路径设置为202205
Java注解和反射
Java 注解和反射注解什么是注解
Annotation 不是程序本身, 可以对程序做出解释。
可以被其他程序(比如:编译)读取。
注解是以 “@注释名” 在代码中存在,还可以添加一些参数值
可以附加在package, class, method, field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。
内置注解
@Override:检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated: 标记过时方法。如果使用该方法,会报编译警告。
@SuppressWarnings: 指示编译器去忽略注解中声明的警告。
元注解负责注解其他注解的注解。
@Target: 用于描述注解的使用范围,标记这个注解应该是哪种 Java 成员。
@Retention: 表示需要在什么级别保存该注释信息,用于描述注解的生命周期。( SOURCE < CLASS < RUNTIME )
@Document: 说明该注解将被包含在 javadoc 中。
@Inheri ...
Maven学习笔记
Maven1. Maven 简介1.1 简介 一款项目管理工具,由java语言进行编写,沿用了java面向对象的思想,把项目开发和管理的过程抽象成了一个 POM (对象模型) ,同时将描述对象的属性方法放到了pom.xml文件中,用于描述对象模型。
1.2 作用 管理jar包,解决jar包间的冲突(jar包:为java的一种文档格式,类似ZIP,为压缩java的文件包。) 2、统一了开发结构,提供了统一标准的项目结构 3、提供标准、跨平台(window–>Linux)的自动化项目构建方式。
2. Maven的安装配置和目录结构2.1 下载Maven下载地址:https://maven.apache.org/download.cgi
2.2 环境变量解压下载的maven包,将bin目录添加到path下
2.3 检查是否安装成功terminal下执行 mvn-v
2.4 maven项目目录结构
目录
作用
${basedir}
存放 pom.xml 和所有的子目录
${basedir}/src/mai ...