Java基础补充-2
集合 ArrayList 适合元素个数不确定,且要增删查改的场景 ArrayList < E > : 约束类型 ArrayList常用方法 20230309-1 Object类常用方法 toString() 默认返回的是地址。可以重写输出功能 equals() 默认比较地址。可以重写比较规则 例如: 1234567891011121314151617181920public class Student { String name; int age; @Override public String toString() { return "Student name is " + name + ", age is " + age; } @Override public boolean equals(Object obj) { // 判断o是不是学生类型 if(obj instanceof Student){ Student s2 =...
生产者消费者问题-管程法
管程法-生产者消费者问题 可参见: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核数 ...
MySQL学习笔记-Part1
MySQL 学习笔记 Part1 SQL(Structed Query Language) 视频链接:https://www.bilibili.com/video/BV1Xb41177na?p=1 一、准备 1. 下载安装MySQL MySQL 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 #...
PicGo-Github图床配置
PicGo-Github图床配置 1. 下载PicGo 下载链接:https://github.com/Molunerfinn/PicGo/releases 20220506_1.png 2.Github 新建仓库 3.生成token Settings -> Developer settings -> Personal access tokens 点击Generate new token 勾选repo,并生成token 4.配置PicGo 仓库名为 用户名/仓库名 格式 分支名:main 建议按时间存储,路径设置为202205