自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录学习点滴

不积跬步,无以至千里;不积小流,无以成江海

  • 博客(81)
  • 收藏
  • 关注

原创 C语言malloc创建多维数组,数组转置的实现

在C语言中,使用多重指针+malloc动态分配内存的方式创建多维数组,并使用malloc动态分配内存实现二维数组的转置。

2024-05-21 21:39:07 278 1

原创 java动态代理:jdk动态代理和cglib动态代理

java动态代理

2023-02-20 20:41:30 3088

原创 正则表达式 \b \B,单词边界的匹配

正则表达式 \b \B 深入浅出理解单词边界的匹配

2022-07-22 20:27:07 8154 8

原创 anaconda深度学习环境搭建:tensorflow和pytorch

使用anaconda搭建深度学习环境

2022-07-02 14:54:39 2536 1

原创 scoop提速:解决scoop软件下载慢的问题

文章目录1 安装scoop2 使用scoop加速下载软件2.1 如何加速下载软件2.2 编写powershell函数2.2.1 加速安装软件2.2.2 加速更新软件2.2.3 卸载软件相比于linux系统,windows缺少一个比较好用的包管理器,而第三方包管理器scoop则在一定程度上解决了这个问题,但是在使用scoop的过程中,往往会由于网络的原因使得软件的安装失败。下面介绍一个方法解决这个问题。1 安装scoop由于github访问起来太慢,这里使用gitee一位用户的源安装scoop,更多

2022-05-12 17:37:54 6408 9

原创 anaconda使用帮助

1 管理虚拟环境1.1 查看虚拟环境列表注:带星号的是当前所处的虚拟环境。方法一:(base) PS C:\Users\fy> conda info -e# conda environments: #

2022-04-30 13:44:42 2945

原创 linux常用压缩-解压-打包命令

文章目录1 常见的压缩文件扩展名2 gzip, zcat/zmore/zless/zgrep3 bzip2, bzcat/bzmore/bzless/bzgrep4 xz, xzcat/xzmore/xzless/xzgrep5 tar6 zip、rar1 常见的压缩文件扩展名*.Z compress 程序压缩的文件;*.zip zip 程序压缩的文件;*.gz gzip 程序压缩的文件;*.bz2 bzip2 程序压缩的文件;*.xz xz 程序压缩的文件;*.tar

2022-04-11 22:37:05 4793

原创 windows下php环境搭建

文章目录1 配置Apache服务器1.1 下载Apache服务器1.2 修改配置文件httpd.conf1.3 安装Apache服务2 配置php2.1 下载php2.2 修改配置文件php.ini2.3 再次修改配置文件httpd.conf2.4 验证2.4.1 重启Apache服务2.4.2 验证效果2.4.3 说明本文所使用的服务器为Apache1 配置Apache服务器1.1 下载Apache服务器打开Apache官网,依次按如图所示点击:下载完之后解压到任意目录即可:C:\wsr

2021-07-30 19:58:29 5810 2

原创 aria2的安装使用

文章目录1 windows1.1 安装aria2并配置aria2.conf1.2 使用2 linux2.1 安装aria2并配置aria2.conf2.2 使用aira2官网1 windows1.1 安装aria2并配置aria2.conf点击下载aria2aria2.conf配置介绍1.2 使用2 linux2.1 安装aria2并配置aria2.conffy@fy-PC:~$ sudo apt install aria2fy@fy-PC:~$ mkdir ~/.aria2fy@fy

2021-06-24 22:11:45 3634 3

原创 Windows通过powershell永久添加、删除环境变量

使用windows系统时,当安装或解压一个可执行程序后,为了更方便的调用程序,往往会向环境变量path中添加该程序的路径,一般都是通过图形界面来添加,这样比较麻烦,下面通过powershell命令行来实现同等效果。假设要操作的程序路径为C:\wsr\mingw64\bin\。下面实现的效果是永久性的,因为是通过直接操作注册表实现的。需要注意的是,这里是对当前登录用户中的环境变量path进行的操作,因为修改的是注册表中的HKCU:\Environment\,这里存储的是当前用户的环境变量。1 添加三个

2021-06-14 13:30:20 8952 11

原创 windows下在vim中搭建C/C++语言开发环境

文章目录1 代码格式化1.1 clang-format初体验1.2 在vim中格式化c代码1.2.1 为vim配置python1.2.2 安装代码格式化插件2 代码自动补全1 代码格式化C语言代码的格式化需要使用clang-format,而clang-format被集成在了llvm中,所以需要先安装llvm,点击此处下载下载之后运行安装文件,将其中的bin目录添加到环境变量path中(需重启电脑使新添加的环境变量生效)。例如我安装后的目录为C:\wsr\LLVM\bin,图中的clang-forma

2021-05-10 15:42:31 4974 9

原创 windows10 hyper v虚拟机联网设置

文章目录1 新建一个虚拟网络交换机2 打开internet网络共享3 设置虚拟机的网络适配器1 新建一个虚拟网络交换机2 打开internet网络共享3 设置虚拟机的网络适配器依次点击文件->设置,将虚拟机的网络适配器改为新建的switch-1...

2021-04-24 17:03:22 640 3

原创 JavaScript及其简单使用

1 js数据类型什么是变量?变量是可以存放某些值的内存的命名。JavaScript的变量类型:数值类型:number字符串类型:string对象类型:object布尔类型:boolean函数类型:functionJavaScript里特殊的值:undefined:未定义,所有js变量未赋初始值的时候,默认值都是undefinednull空值NAN:全称是Not a Number。非数字,非数值的意思。<script type="text/javascript">

2021-02-05 18:58:35 557 1

原创 REST风格的URL及其实现

文章目录1 REST概述2 REST风格的实现2.1 Spring MVC实现2.2 AJAX实现1 REST概述REST:即Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。①资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)

2021-02-05 12:19:24 1632 1

原创 linux系统美化

文章目录1 效果预览2 具体步骤2.1 桌面美化2.2 图标美化和shell美化]2.3 开机界面美化1 效果预览2 具体步骤我的系统是linux mint20。首先打开终端,安装gnome桌面,如果已经安装过的话,可以略过。不确定的话将下面命令全部执行一下:$ apt install ubuntu-gnome-desktop$ apt install gnome-shell$ apt install gnome-tweak-tool安装完成之后注销,登陆之前选择桌面环境,选gnom

2021-02-02 21:18:14 2293 3

原创 Java反射机制及其使用

文章目录1 Java反射机制概述2 反射及其使用2.1 关于类 java.lang.Class2.2 类的加载2.2.1 类的加载过程2.2.2 类加载器2.3 反射的使用2.3.1 创建运行时类的对象2.3.2 获取运行时类的属性结构2.3.3 获取运行时类的方法结构2.3.4 获取运行时类的构造器结构2.3.5 获取运行时类的父类信息2.3.6 获取运行时类实现的接口2.3.7 获取运行时类声明的注解2.3.7 获取运行时类所在的包2.3.8 调用类的构造函数、操作类的属性、调用类中方法1 Java

2021-02-01 13:31:39 1210 1

原创 Java网络编程

文章目录1 网络编程概述1 关于网络编程2 网络编程两要素2.1 IP地址和端口号2.2 网络通信协议2 网络编程的实现1 TCP编程2 UDP编程示例3 URL网络编程示例1 网络编程概述1 关于网络编程Java是Internet上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java的本机安装系统里,由JVM进行控制。并且Java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程

2021-01-31 20:42:42 319

原创 Java的IO流及其使用

文章目录1 IO流概述1 IO流原理2 流的分类2 流的使用1 字符流1.1 FileReader & FileWriter1.2 BufferedReader & BufferedWriter1.3 转换流2 字节流2.1 FileInputStream & FileOutputStream2.2 BufferedInputStream & BufferedOutputStream2.3 打印流2.4 数据流2.5 对象流3 标准输入、输出流4 随机存取文件流3 j

2021-01-31 11:57:47 1212

原创 java集合框架及其使用

文章目录集合框架概述Collection接口关于迭代器IteratorList 接口1 ArrayList的源码分析2 LinkedList的源码分析3 Vector4 List接口常用方法Set接口1 HashSet2 LinkedHashSet3 TreeSet集合框架概述集合、数组都是对多个数据进行存储操作的结构,简称Java容器。这里的存储,主要指的是内存层面的存储,不涉及到持久化的存储。数组的特点及缺点1 数组在存储多个数据方面的特点:一旦初始化以后,其长度就确定了数组一旦定义好,其

2021-01-28 23:14:26 371

原创 java-枚举类的定义及使用

文章目录枚举类的定义jdk5.0之前定义枚举类jdk5.0之后定义枚举类使用enum关键字定义枚举类使用enum关键字定义的枚举类实现接口枚举类的定义关于枚举类1 枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2 当需要定义一组常量时,强烈建议使用枚类类3 如果枚举类中只有一个对象,则可以作为单例模式的实现方式。如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0之后,可以使用enum关键字定义枚举类jdk5.0之前定义枚举类/** * jdk5.0之

2021-01-27 22:23:24 8807 2

原创 Java-Comparable接口与Comparator接口的使用

文章目录Comparable接口的使用Comparator接口的使用Comparable接口与Comparator的使用的对比Comparable接口的使用1 像String,包装类等等已经实现了Comparable接口的,可以直接使用api中的方法排序,且排序规则默认为升序。若是自定义数据类型排序,则参与排序类对象所属的类应实现Comparable接口,并重写其中的compareTo(obj) 方法2 重写compareTo(obj) 的规则:如果当前对象this大于形参对象0bj,则返回正整

2021-01-27 21:12:42 297

原创 java多线程-3-线程通信

文章目录线程通信的概念线程通信的实现方式线程通信练习线程通信的概念程序在运行时,涉及到对共享资源的读写操作,但由于当今操作系统是多进程多线程运行的,当多个线程共同访问一个共享资源时,无可避免的要对这些线程的访问顺序进行协调,以保证程序的正确运行。线程通信的实现方式Java中线程通信主要涉及到三个方法:wait() 一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。notify() 一旦执行此方法,就会唤醒一个被wait()的线程。若有多个线程被wait(),则唤醒优先级最高的那个no

2021-01-25 13:58:52 196

原创 java多线程-2-线程安全及实现线程同步的三种方式

文章目录线程同步的概念线程同步的两种方式同步代码块同步方法线程同步的概念线程同步的两种方式共100张票,三个售票窗口同时卖票。问题:卖票过程中,出现重票、错票 ==> 出现线程安全问题问题出现原因:当某个线程操作车票的过程中,尚未完成操作时,其它线程参与进来,也操作车票,没能保证对共享资源(ticket)的互斥访问解决:当任何一个线程操作ticket的时候,其余线程都必须等待,直至当前操作ticket的线程操作结束,在此期间,就算当前线程阻塞,其余线程也必须等待同步代码块1 使用方

2021-01-25 11:16:56 538

原创 java多线程-1-线程的创建及相关知识

文章目录1 相关概念1.1 并行、并发1.2 程序、进程、线程1.3 进程的五种状态及其转换2 线程2.1 线程创建的两种方式1 继承Thread类2 实现Runnable接口2.2 线程的常用方法及线程优先级2.3 两种创建线程方式的比较1 相关概念1.1 并行、并发并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道

2021-01-24 18:05:46 177

原创 经典进程同步问题

@[toc] 经典进程同步问题1 生产者-消费者问题问题 1一组生产者进程和一组消费者进程共享一个初始为空、大小为 n 的缓冲区,只有缓冲区没满时,生产者才能把消息放入缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区时临界资源,只允许一个生产者放入消息,或一个消费者从中取出消息分析:生产者和消费者对缓冲区的访问是互斥关系;同时它们之间又存在着同步关系,只有生产者生产之后消费者才能消费,而只有缓冲区未满(消费者一直消费)生产者才能生产产品。semaphore

2020-10-21 18:37:58 776

原创 浮点数的规格化表示 & 非规格化表示

文章目录1 浮点数的一般表示2 IEEE 754标准的浮点数2.1 规格化浮点数的格式2.2 规格化浮点数的取值范围2.3 类型转换时的精度损失和溢出1 浮点数的一般表示JfJ_fJf​J1J2…JmJ_1J_2\dots J_mJ1​J2​…Jm​SFS_FSF​S1S2…SnS_1S_2\dots S_nS1​S2​…Sn​阶符阶码数符尾数阶码的位数决定了浮点数的表示范围的大小,尾数的位数决定了浮点数的表示精度阶符:阶码的符号位。1为负;0为正阶码:即幂的大

2020-08-28 22:46:37 23183 4

原创 idea使用Maven搭建ssm框架,实现增删改查

本文介绍在idea中使用Maven搭建SSM框架,并实现简单的CRUD操作。运行环境:MySQL 8.0.21 + JDK 11 + idea 2020框架版本:Spring 5.2.7.RELEASE + MyBatis 3.5.4构建工具:Maven 3.6.2文章目录项目结构一览1 创建工程骨架1.1 使用maven的webapp模板创建一个web项目1.2 在pom.xml中添加依赖1.3 创建/src/test、/src/main/java目录1.4 创建数据库、添加表2 完善工程.

2020-08-21 17:23:30 940

原创 Windows gvim安装插件

文章目录1 安装插件管理器Vundle1.1 提前安装两个软件1.2 编辑 _vimrc2 安装插件本文介绍如何使用插件管理器安装插件1 安装插件管理器VundleGithub:Vundle安装介绍 1.1 提前安装两个软件Gitcurl方式一:C:\> choco install -y gitC:\> choco install -y curl方式二:下载curl压缩包,将其解压到任意要给目录,并在PATH添加环境变量例如:解压到C:\Program File

2020-08-15 11:07:24 8076

原创 git基本操作总结

1 下载并安装Git官网下载2 关联GitHub依次执行四条命令$ ssh-keygen -t rsa -C "***@***.com" 注册GitHub的邮箱$ ssh -T git@github.com验证是否成功$ git config --global user.name "***"GitHub账户名$ git config --global user.email "***@***.com"GitHub注册邮箱1 创建SSH 密钥对$ ssh-keygen -t rsa -C

2020-08-15 10:37:11 643

原创 IDEA使用Gradle创建一个简单的java项目 & SpringBoot项目

文章目录1 Gradle的下载和配置2 在idea中用Gradle创建java项目2.1 创建一个目录2.2 创建工程2.3 更改三个Gradle设置2.4 更换阿里云的镜像,提升包的下载速度1 Gradle的下载和配置下载Gradle(官方链接)将下载好的压缩包解压到任意目录为Gradle添加环境变量。打开控制面板,按下图方式添加环境变量,添加完成之后一直点击确定离开。注意:设置此环境变量之前请确认已经为jdk添加环境变量打开cmd或powershell,验证是否成功添加环境变量(要重启电

2020-08-09 08:26:31 3873

原创 Win10+Ubuntu20双系统从安装到卸载,UEFI+GPT

文章目录1 安装Ubuntu1.1 安装工具1.2 准备工作1.3 开始安装1.3.1 制作启动盘1.3.2 硬盘分区1.3.3 安装系统配置:16GB RAM + 128GB SSD + 1T HDD系统引导方式:UEFI + GPT1 安装Ubuntu1.1 安装工具启动盘制作软件:这里选择官方推荐的Rufus(官网下载)系统镜像:ubuntu-20.04-desktop-amd64.iso(官网下载)容量 ≥\ge≥ 4GB 的 U 盘:型号任意(刻录系统时会格式化U盘,若有重要资

2020-07-23 22:55:26 4181

原创 linux设置小技巧

Linux下命令严格区分大小写,终端输入命令时不能乱用1 修改/home目录下文件夹名为英文终端输入如下命令,export LANG=en_USxdg-user-dirs-gtk-update再执行 export LANG=zh_CN.UTF-8 以恢复显示中文内容2 Ubuntu设置root用户刚安装系统后无法切换到root用户,终端输入如下命令,按提示操作即可sudo passwd root3 安装NVIDIA驱动4 安装Ubuntu系统卡住系统卡住不出意外是因为显卡的原因,现

2020-07-20 14:54:46 4210

原创 MyBatis Generator使用方法

文章目录1 MyBatis Generator官方参考文档2 MyBatis Generator配置方式2.1 配置方式一2.2 配置方式二1 MyBatis Generator官方参考文档点我查看2 MyBatis Generator配置方式注:这里使用的IDE为 idea2.1 配置方式一在resources文件夹下创建一个目录myBatis-generator,在目录myBatis-generator下创建文件generatorConfig.xml(此处的目录名可任意取)注:图中gen

2020-06-27 19:50:32 40015 5

原创 MySQL实用命令总结

文章目录1 创建、删除数据库2 创建、删除表3 alter用法3.1 修改字段类型为自增3.2 设置自增字段初始值3.3 修改表中字段-不重命名3.4 修改表中字段-重命名3.5 向表中添加字段3.6 删除表中字段3.7 向表中添加主键约束3.8 向表中添加外键约束3.9 向表中添加唯一(unique)约束4 删除表中约束4.1 删除主键约束4.2 删除外键约束4.3 删除唯一约束5 查询数据库和表相关信息1 创建、删除数据库create database practice;drop database

2020-06-16 19:05:13 443

原创 二叉排序/搜索/查找树、平衡二叉树

文章目录1 二叉排序树2 平衡二叉树2.1 平衡二叉树的插入1 LL平衡旋转(左单旋转)2 RR平衡旋转(右单旋转)3 LR平衡旋转(先左旋、后右旋)3 RL平衡旋转(先右旋、后左旋)1 二叉排序树2 平衡二叉树平衡二叉树(Balanced Binary Tree),为避免树的高度增长过快,降低二叉排序树的性能,规定在插入和删除二叉树节点时,保证节点左、右子树高度差的绝对值不超过1(-1、0、1),将这样的二叉树成为平衡二叉树。又称AVL树,取自两个发明平衡二叉树的科学家的名字:G. M. Adels

2020-05-22 12:10:00 1341 2

原创 树和二叉树的基本性质及其推导

文章目录1 树的基本性质性质 1 :树中的节点数等于所有节点度数加 1性质 2 :度为 m 的树中第 i 层至多有 mi−1m^{i-1}mi−1个节点(i≥1i\geq 1i≥1)性质 3 :高度为 h 的 m 叉树至多有 mh−1m−1\frac{m^{h-1}}{m-1}m−1mh−1​个节点性质 4 :具有 n 个节点的 m 叉树的最小高度为 ⌈logm(n∗(m−1)+1)⌉\lceil log_m (n*(m-1)+1) \rceil⌈logm​(n∗(m−1)+1)⌉1 树的基本性质性

2020-05-18 13:23:35 5566

原创 编程求n个数的最小公倍数

文章目录1 最大公约数、最小公倍数2 编程求两数的最大公约数、最小公倍数2.1 欧几里德算法(辗转相除法)2.2 代码实现3 编程求n个连续数字的最小公倍数1 最大公约数、最小公倍数最小公倍数(Least Common Multiple)两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数最大公约数(Greatest Common Divis...

2020-04-27 14:54:35 2405

原创 IDEA 错误: 找不到或无法加载主类com.company.Main

创建工程的时候使用了默认的包com.company和此包下的默认主类Main,后来把默认的包删除了,又新建了一个,结果在运行的时候就提示找不到或无法加载主类com.company.Main。解决方法如下:找到workspace.xmlvalue处原来默认是com.company.Main,把这个修改成自己新建的包名加上主类名就好了,比如我建的包是ofg,包中含有 main 函数的主类是Ma...

2020-04-16 10:22:29 19619 1

原创 Java集合框架

实现(Realization)【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。【箭头指向】:带三角箭头的虚线,箭头指向接口泛化(Generalization)【泛化关系]:继承关系。【箭头指向】:带三角箭头的实线,箭头指向父类关联(Association)【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法。双向的关联可以有两个箭头或者没有箭头,...

2020-04-15 13:20:08 498

原创 C/C++程序的编译和调试,及Makefile用法

1 什么是gcc原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC在发布后很快地得到扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,Go与其他语言。后更名为GNU编译器套装(GNU Compiler Collection),指一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也...

2020-04-07 18:05:32 1116

空空如也

空空如也

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

TA关注的人

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