SM2和RSA加解密
SM2和RSA加解密 Java环境下的SM2和RSA加解密工具 1. Maven导包 12345678<dependencies> <!-- Bouncy Castle Provider (国密算法支持) --> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk18on</artifactId> <version>1.78.1</version> </dependency></dependencies> 2. 工具类 2.1...
Git常用命令
Git常用命令 1. 简易创建仓库 github创建仓库并从本地更新最简单的方式为: 在github网站手动创建仓库 git clone + URL 克隆下来 2. 从本地创建仓库并推送至Github 2.1 本地创建分支并推送到指定远端仓库 新建文件夹 执行 git init 将文件夹初始化为一个git工作目录 执行 git branch -b "branch_name" 创建一个本地分支 git add . & git commit -m "注释" 在远端创建一个仓库 test-remote-repository 执行git remote add branch_name git@github.com:UserName/test-remote-repository.git 将本地分支与远端仓库链接起来 执行 git push -u branch_name 即可在远端创建一个同名分支,路径为 remotes/origin/branch_name 3. 重命名分支 3.1 重命名本地分支 执行 git branch -a 或 git...
生产者消费者问题-管程法
管程法-生产者消费者问题 可参见:Java多线程笔记-2 | Whiskey&Cola (whiskeycola.cn) 在此为二次解释 管程法 先得有一个缓冲区,这个缓冲区容量有限 缓冲区定义存入,取出功能函数 分别定义生产者、消费者类 主程序,创建缓冲区,缓冲区当作参数,传入生产者消费者类的定义,创建线程 创建产品 12345678class Product{ final String name = "laptop"; int id; public Product(int id) { this.id = id; }} 创建缓冲区 12345678910111213141516171819202122232425262728293031323334353637383940414243444546class Buffer{ final int bufferSize = 10; // 创建一个容器,此容器可放10个产品 List<Product>...
《C++ Primer 第五版》学习笔记
《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...
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...
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...
QT打包技巧
QT编译打包技巧 1. QT编译 编译时不能有中文路径 2. QT打包 单独创建一个文件夹,将编译好的exe文件拷贝出来 用qt的命令行,cd到考出来的文件夹 使用windeployqt命令打包,即windeployqt 文件名.exe
JUC并发编程
1. 什么是JUC java.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核数 ...
Java注解和反射
Java 注解和反射 注解 什么是注解 Annotation 不是程序本身, 可以对程序做出解释。 可以被其他程序(比如:编译)读取。 注解是以 "@注释名" 在代码中存在,还可以添加一些参数值 可以附加在package, class, method, field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。 内置注解 @Override:检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。 @Deprecated: 标记过时方法。如果使用该方法,会报编译警告。 @SuppressWarnings: 指示编译器去忽略注解中声明的警告。 元注解 负责注解其他注解的注解。 @Target: 用于描述注解的使用范围,标记这个注解应该是哪种 Java 成员。 @Retention: 表示需要在什么级别保存该注释信息,用于描述注解的生命周期。( SOURCE < CLASS < RUNTIME ) @Document: 说明该注解将被包含在...










