自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 [JavaWeb]JS

var a=20;b=100;alert(a);alert(b);//空数组//zx,ab,bf// 如果该元素不存在,返回的就是undefined

2023-01-31 18:41:14 163

原创 [JavaWeb]CSS

css常用样式简单使用

2023-01-29 23:37:34 174

原创 [JavaWeb]HTML

1.HTML (HyperText Mark-up Language) 即超文本标签语言(可以展示的内容类型很多2.HTML 文本是由 HTML 标签组成的文本,可以包括文字、图形、动画、声音、表格、链接等3.HTML的结构包括头部 (Head)、主体 (Body)两大部分,其中头部描述浏览器所需的判断前端和后端主要是看在哪里解析,前端主要在浏览器进行解析,后端主要是JDK或者是服务器(例如TomCat)进行解析的.1. form 表示表单2. action: 提交到哪个页面。

2023-01-28 23:59:00 222

原创 排序算法·

插入排序的基本思想是:每一步将一个待排序元素按其关键字值得大小插入到已排序序列得适当位置上,直到待排序元素插入完为止.如果要对具有n个元素得数组arr进行排序,初始状态时,可以认为已排序序列为arr[0],待排序序列为arr[1]~arr[n-1],从arr[i]开始向arr[0]方向扫描各元素,寻找适当位置插入arr[i],依次进行,即可完成排序.(2)对前n-1个元素进行第二趟起泡排序,将其中最大元素交换到第n-1个位置.小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列.

2023-01-19 00:43:39 4

原创 基本数据类型和引用类型的比较

3.如果使用 == 比较引用类型,他们比较的是地址. 那是否相等,就看是new 还是 非new 的方式了. 使用new的时候,铁定不一样.因为new会在堆中重新分配内存。2.==比较的是对象内容,equals比较的是对象的地址. 如果equals重写了,例如String,那么此时equals比较的就是具体对象内容。不使用new方法的时候,会从常量池[缓存]去获取,比较地址是否一样.同一个string常量,那么==为true,不相等,则为false。equals方法不能用于比较基本数据类型的变量.

2023-01-19 00:11:54 11

原创 优先级队列(堆)

我们入队列时,先判断是否满了,然后我们将入队列的值放入数组的最后一个,将它和他的父亲节点进行比较,若小于进行交换,一直循环到父亲节点小于0;我们先将数组变成大堆,然后将第一个数和最后一个数进行交换,这时将最大的一个数就确定下来了,固定这个数,将第一个数进行排序,重复上述过程.注意:一般来说for循环的时间复杂度为N,shiftDown的时间复杂度为logN,所以为O(N*logN),但是实际上为O(N);父亲结点为i时,左孩子的结点为 i* 2+1,右孩子的结点为 * 2+2;什么是大根堆和小根堆?

2023-01-18 23:29:30 897

原创 Java多线程进阶

1000如果基于Runnable来实现,就会比较麻烦,Callable 就是要解决 Runnable繁琐的问题。可重入锁内部,会记录当前的锁被哪个线程占用的,同时也会记录一个“加锁次数",线程a第一次加锁的时候,显然能够加锁成功,锁内部就记录了当前的占用者是a,同时加锁次为1.后续a再进行加锁,此时就不是真加锁,而是单纯的把计数给加锁次数为2.重量级锁就是做了更多的事情,开销更大,轻量级锁,做的事情更少,开销更小,也可以认为,通常情况下,悲观锁一般都是重量级锁.乐观锁一般都是轻量级锁,但也不是绝对的。

2023-01-12 18:18:23 166

原创 JAVA多线程初阶(1)

下图代码测试sleep休眠,其中有两个线程,t线程和main线程,main方法开始执行时,t线程和main线程并发运行,先执行main方法的代码,然后调用t线程run方法,打印3次,每次休眠2s,此时main线程也是在运行的,休眠10s,等到t线程打印完成,main线程再休眠4s后开始运行.实际开发中,一个线程中要做的任务是很多的,例如,线程里要执行:步骤1,步骤2,步骤3,步骤4,其中很可能只有 步骤4 才涉及到线程安全问题,只针对 步骤4 加锁即可.此时上面的123步骤都可以并发执行.

2023-01-09 20:43:42 234

原创 [数据结构]栈和队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。队列(queue) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。栈顶(Top):线性表允许进行插入删除的那一端。

2023-01-07 17:36:34 524

原创 [操作系统]进程

操作系统是一个软件,对下要管理好各种硬件设备,对上要给各种软件提供稳定的运行环境.这篇博客主要讲解操作系统如何管理进程。

2023-01-01 18:42:57 294

原创 MySQL索引

索引带来的好处提高了查找的速度,索引带来的坏处,占用了更多的空间,拖慢了增删改的速度,但我们依然会使用索引,因为在日常操作中,查找的次数是非常多的,有了索引之后,查找的效率提升是非常巨大的,当mysql中有千亿数据,遍历查找会非常耗时,mysql的比较是在硬盘中查找的,硬盘读写的速度是比内存慢3-4个数量级的。在 B 树中查找元素,过程就和二叉搜索树非常相似,先从根节点出发,根据待比较的元素,确定一个区间,相比于二叉搜索树,B树的优势不在于比较次数,而在于磁盘的IO次数,B树是以节点为单位进行IO的。

2022-12-28 09:36:36 339

原创 从零开始的MySQL(2)

在子表中插入新的记录的时候,就会先根据对应的值,在父表中先查询,查询到之后,才能够执行后续的插入,这里的查询操作,可能是一个成本较高的操作(比较耗时),外键约束其实要求父表中被依赖的这一列,必须要有索引有了索引就能大大的提高查询速度,class 表的 classld 这一列,得是 primary key或者 unique(有了这俩约束的列, 就会自动的创建出索引了)针对A和B两张表,计算笛卡尔积此时笛卡尔积的列数,就是A的列数+B的列数,笛卡尔积的行数, 就是 A的行数*B 的行数.

2022-12-27 10:01:12 541

原创 从零开始的MySQL(1)

排序会针对查询结果(临时表) 进行排序(不会影响到数据库服务器上的原始据的),order by 有升序(asc)和降序(desc),asc如果省略不写,默认也是升序.如果有的表中是带NULL的,在排序的时候,NULL是最小的(升序就排在最前面,降序就排在最后面)其中* 为通配符,表示一个表的所有列,把一个表里面的所有的行和所有的列都查找到,查找的结果是一个“临时表”之前咱们说的数据库的表都是在硬盘上的,而此处的这个查询结果临时表不是在硬盘上而是在内存中,随着进行了输出之后,数据也就被释放了。

2022-12-18 20:48:47 299

原创 String类

可以看到StringBuffer的append()方法是有synchronized修饰的,你可以把它当成是一把锁,在多线程的情况下,当某一个进程在使用这个方法的时候,就会把这个方法锁起来,其余方法无法使用,使用完成后,锁会自动打开。1.双引号引起来的值存在字符串常量池当中,当再次创建的时候,会去字符串常量池里查看,如果字符串常量池里有,就不会存储,直接返回字符串常量池的对象。2.String new了字符串,直接会新开一块空间,与字符串常量池中的地址不一样,返回false。字符串在内存中存储的方式。

2022-12-14 15:54:21 159

原创 抽象类和接口

在打印图形例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由Shape 的各种子类的 draw 方法来完成的.9.接口和接口之间可以通过extends来进行拓展,如果一个接口B通过extends拓展另一个接口C的功能,使用普通类实现接口B的同时,也会有接口C拓展的功能.8.当一个类实现了一个接口,就必须重写接口里的所有抽象方法,重写抽象方式时,要在前面加上public,因为不添加默认是包修饰符,没有public的权限大.

2022-12-11 14:14:07 345

原创 JAVA异常

throw new UserError("用户名错误");}if (!throw new PasswordError("密码错误");}System.out.println("登陆成功");}}

2022-11-24 23:07:15 139

原创 从零开始的深度学习之旅(3)

比如我们做了一个预测房价的实验,预测的房价和真正的房价之间肯定存在差异.当真实值与预测值差异越大时,我们就认为神经网络学习过程中丢失了许多信息,丢失的这部分称为”损失“,因此评估真实值与预测值差异的函数被我们称为“损失函数.在之前的学习中,我们建立神经网络时总是先设定好w与b的值,或者由我们调用的PyTorch类帮助我们随机生成权重向量,接着通过加和求出z ,再在z上嵌套sigmoid或者softmax函数,最终获得神经网络的输出。最大,同理,如果样本的真实标签为其他值,我们就希望其他值所对应的概率最大。

2022-11-22 23:00:57 1010 1

原创 从零开始的深度学习之旅(2)

考虑到与门的数据只有两维,我们可以将数据可视化,其中,特征x为横坐标,特征x这条具有分类功能直线被我们称为“决策边界”。但并不是所有的图像都可以用直线来进行分类,如下图的异或门所示:上图没有任意一条直线可以将两类点完美分开,此时我们会需要类似如下的曲线来对数据进行划分.**如何把决策边界从直线转换为曲线,就需要把单层神经网络变成多层**这是一个多层神经网络,除了输入层和输出层,还多了一层“中间层”。

2022-11-22 09:25:23 1555

原创 从零开始的深度学习之旅(1)

从本博客开始,以菜菜九天的深度学习课为基础,从零开始学习深度学习,好好地把握知识点,让自己学有所成.

2022-11-20 22:09:47 1467 5

原创 JAVA图书管理练习

1.在学习了面向对象,接口继承等语法后,综合使用这些语法完成一个简单的图书管理小练习.2.在写代码之前,我们首先要把各种类抽象出来,图书管理会有多个类,比如书类,放书的书架类,操作书籍的类,用户类。

2022-11-18 21:45:41 397

原创 统计学习方法第三章-k近邻法

在这里插入图片描述](https://img-blog.csdnimg.cn/09775b0d95d243ac8df43a5fc2cf6af7.png)没有显示的学习过程是没有办法得到一个模型来计算这个算法.

2022-11-13 21:55:50 377

原创 深度学习入门

3的输入,H是输入层的高度,P是向外填充的圈数,这里P向外填充了1圈,FH是卷积核高度,S是步幅,(3+2。

2022-11-12 23:50:23 217

原创 统计学习第一章

正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。然后利用S-1贪子集的数据训练模型,利用余下的子集测试模型;统计学习可以分为:监督学习(样本有标签),无监督学习(样本无标签),半监督学习(一部分有标签,一部分无标签),强化学习。(2)确定包含所有可能的模型假设空间,即学习模型的集合;(6) 利用学习的最优模型对新数据进行预测或者分析。(4)实现求解最优模型的算法,即学习的算法。(3)确定模型选择的准则,即学习的策络;

2022-11-03 17:58:14 193

原创 JAVA方法

修饰符 返回值类型 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];}比如要实现一个两个整数相加的方法// 方法的定义//修饰符是public,返回值类型int,方法名称add,参数类型是int,int ,方法体代码是return x+y}注意事项:1.修饰符:现阶段直接使用public static 固定搭配2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void3. 方法名字:采用小驼峰命名。

2022-11-03 16:58:24 29

原创 机器学习数学知识(自用)

1.矩阵相乘1.2 求逆矩阵1.3 求矩阵的秩1.判断线性相关1.古典概型。

2022-10-31 22:44:50 28

原创 java运算符

2.如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式。2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.微软雅黑。2.对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。4.% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的。3 < a < 5,3 < a 判断为真,返回true,true无法与整形比较,所以是错误的。

2022-10-29 09:31:26 236

原创 链表(1)

链表由节点域和next域构成,删除和增加元素不用像顺序表一样前后移动元素,只需要改变链表的指向即可,也不用担心添加的元素过多.

2022-10-24 20:37:12 25

原创 Numpy库使用(自用)

【代码】Numpy库使用(自用)

2022-10-22 20:35:04 363

原创 python基本语法(自用)

强制类型转换: str(),int(),float()python的变量没有类型,但是存储的数据是有类型的。通过type()查看数据类型。

2022-10-22 14:37:22 17

原创 JAVA顺序表

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

2022-10-22 11:27:32 148

原创 JAVA类和对象(2)

1.包(package) 是组织类的一种方式,使用包的主要目的是保证类的唯一性,package和import的区别在于:package是包,指类所在的包,import是引入,引入类中需要的类.在刚才的打印图形例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由Shape 的各种子类的 draw 方法来完成的.1.在 draw 方法前加上 abstract 关键字, 表示这是一个抽象方法. 同时抽象方法没有方法体(没有 { }, 不能执行具体代码).

2022-10-17 16:27:57 79

原创 C语言文件

磁盘上的文件是文件。在程序设计中,从文件功能的角度来分类,我们一般谈的文件有两种:程序文件、数据文件。

2022-10-13 16:53:06 229

原创 JAVA类和对象(1)

使用 {} 定义的一段代码.根据代码块定义的位置以及关键字,又可分为以下四种:1.普通代码块2.构造代码块3.静态代码块4.同步代码块。

2022-10-09 16:33:08 32

原创 JAVA数组

null 在 Java 中表示 “空引用” , 也就是一个无效的引用.数组是相同类型元素的集合,java创建数组的方式有多种,与C语言不同。二维数组本质上也就是一维数组, 只不过每个元素又是一个一维数组。不规则的二维数组,里面存放的是0。

2022-10-05 17:51:18 52

原创 C语言动态内存开辟

之前写的通讯录中,联系人的数量是给定的,如果添加数量少,就会浪费空间,如果添加数量过多,就会溢出,能不能自己定义要分配多大的空间,这样不会造成浪费和不好的影响,于是就有了动态内存开辟。malloc函数向内存申请一块连续可用的空间,并返回指向这块空间的指针.如果开辟成功,则返回一个指向开辟好空间的指针.返回的指针类型是void*.与函数 malloc 的区别在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0,而malloc里面存放的是随机值.这样函数返回的是一个新的内存地址。

2022-09-25 12:05:30 40

原创 Python官网无法打开解决方案

找到图片上的文件,点击进入。点击exe文件下载即可。

2022-08-17 14:50:47 2208

原创 C语言预处理

C语言内置的预定义符号__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义#define reg register //为 register这个关键字,创建一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把 break写上。在使用define的时候,不建议在后面加上;...

2022-08-13 11:43:31 47

原创 C语言扫雷

C语言扫雷。

2022-07-29 22:36:42 37

原创 C语言三子棋实现

今天我们来完成一个小案例,编写三子棋游戏。本文将会讲解三子棋的实现过程。

2022-07-28 23:44:02 572

原创 【C语言】内存函数

void * memcpy ( void * destination, const void * source, size_t num );1.从source的位置开始向后复制num个字节的数据到destination的内存位置2.num是字节数

2022-07-22 10:21:28 131

空空如也

空空如也

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

TA关注的人

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