当前位置: 首页 > news >正文

学习java的日子 Day52 多表联合查询,DCL,数据类型,约束,索引,视图

Day52

1.DML-多表联合查询(重要)

1.1 一对一情况

1.2 一对多情况

当需要查询多个表中的字段时,就可以使用表连接来实现。表联接分为内连接和外连接

内连接:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结

外连接:会选出其他不匹配的记录,分为左连接和右连接

创建场景

在这里插入图片描述

创建老师表,并插入数据

CREATE TABLE teacher(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32)
)
INSERT INTO teacher(name) VALUES('何老师');
INSERT INTO teacher(name) VALUES('苍老师');
INSERT INTO teacher(name) VALUES('波多老师');

创建学生表,并插入数据

CREATE TABLE student(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32),t_id INT(3)
)
INSERT INTO student(name,t_id) VALUES('喻平',1);
INSERT INTO student(name,t_id) VALUES('马智威',1);
INSERT INTO student(name,t_id) VALUES('牛西燕',1);
INSERT INTO student(name,t_id) VALUES('李林俊',2);
INSERT INTO student(name,t_id) VALUES('陈宽朗',2);
INSERT INTO student(name) VALUES('陈俊豪');
1.2.1 内链接

select 表1.字段 [as 别名],表n.字段 from 表1 [别名],表n where 条件;

select 表1.字段 [as 别名],表n.字段 from 表1 INNER JOIN 表n on 条件;

方式一

student s:学生表用s代替

s.t_id=t.id:学生表的老师id等于老师表的id

SELECT s.name,t.name FROM student s,teacher t WHERE s.t_id=t.id;

方式二

SELECT s.name AS '学生姓名',t.name AS '老师姓名' FROM student s INNER JOIN teacher t ON s.t_id=t.id;
1.2.2 外连接

左连接 LEFT JOIN:针对于左边表去查询,会展示左边表中的所有数据

select 表1.字段 [as 别名],表n.字段 from 表1 LEFT JOIN 表n on 条件;

SELECT s.name,t.name FROM student s LEFT JOIN teacher t ON s.t_id=t.id;

在这里插入图片描述

右链接 RIGHT JOIN:针对于右边表去查询,会展示右边表中的所有数据

select 表1.字段 [as 别名],表n.字段 from 表1 right JOIN 表n on 条件;

SELECT s.name,t.name FROM student s RIGHT JOIN teacher t ON s.t_id=t.id;

在这里插入图片描述

1.2.3 全连接 UNION

概念:多张表联合查询,多张表没有联系的数据都查询出来

注意:MySQL没有全连接的SQL语句,实现全连接的思想就是合并查询结果 + 去重

合并查询结果

SELECT s.name,t.name FROM student s LEFT JOIN teacher t ON s.t_id=t.id
UNION ALL
SELECT s.name,t.name FROM student s RIGHT JOIN teacher t ON s.t_id=t.id;

合并查询结果 + 去重

SELECT s.name,t.name FROM student s LEFT JOIN teacher t ON s.t_id=t.id
UNION
SELECT s.name,t.name FROM student s RIGHT JOIN teacher t ON s.t_id=t.id;

在这里插入图片描述

1.3 多对多情况

多对多,会有一张中间表作为媒介

创建场景

在这里插入图片描述

创建学生表,并插入数据

CREATE TABLE student(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32)
)
INSERT INTO student(name) VALUES('喻平');
INSERT INTO student(name) VALUES('马智威');
INSERT INTO student(name) VALUES('牛西燕');

创建学科表,并插入数据

CREATE TABLE course(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32)
)
INSERT INTO course(name) VALUES('语文');
INSERT INTO course(name) VALUES('数学');
INSERT INTO course(name) VALUES('英语');

创建成绩表,并插入数据

CREATE TABLE scores(id INT(3) PRIMARY KEY auto_increment,s_id INT(3),c_id INT(3),score FLOAT(4,1)
)
INSERT INTO scores(s_id,c_id,score) VALUES(1,1,90);
INSERT INTO scores(s_id,c_id,score) VALUES(1,2,91);
INSERT INTO scores(s_id,c_id,score) VALUES(1,3,92);
INSERT INTO scores(s_id,c_id,score) VALUES(2,1,93);
INSERT INTO scores(s_id,c_id,score) VALUES(2,2,94);
INSERT INTO scores(s_id,c_id,score) VALUES(2,3,95);
INSERT INTO scores(s_id,c_id,score) VALUES(3,1,85);
INSERT INTO scores(s_id,c_id,score) VALUES(3,2,87);
INSERT INTO scores(s_id,c_id,score) VALUES(3,3,86);

需求:查询学生对应的学科成绩(学生姓名,学科名,成绩)

SELECT stu.name,cou.name,sco.score FROM student stu INNER JOIN course cou INNER JOIN scores sco WHERE sco.s_id=stu.id AND sco.c_id=cou.id;

在这里插入图片描述

提升题:查询出每个学生的平均成绩(学生姓名,平均分)

SELECT stu.name,AVG(sco.score) FROM scores sco INNER JOIN student stu ON sco.s_id=stu.id GROUP BY sco.s_id;

提升题:查询出每个学生的最好成绩的学科(学生姓名,学科目,成绩)

SELECT stu.name,cou.name,sco.score FROM scores sco INNER JOIN (SELECT sco.s_id,max(sco.score) AS 'maxScore' FROM scores sco GROUP BY sco.s_id) xx INNER JOIN student stu INNER JOIN course cou ON sco.score =xx.maxScore AND sco.s_id=xx.s_id AND sco.s_id=stu.id AND sco.c_id = cou.id;

2.DCL

给子账号开权限

参数说明

符号说明
grant all在grant后接all说明给予所有权限
revoke all在revoke后接all说明删除所有权限
权限 on .. 所明给予所有库所有表的操作权限
‘用户’@‘主机’主机里面若为%。任意来源的主机均可以使用这个用户来访问

开子账号

create user 'hhy'@'localhost' identified by '123123';

添加权限

grant select,insert on fy2401javaee.* to 'hhy'@'localhost';

删除权限

revoke insert on fy2401javaee.* from 'hhy'@'localhost';

删除子账号

drop user 'hhy'@'localhost';

设置临时编码格式(关闭命令行后就无效了)

SET CHARSET gbk;

3.数据类型

在MySQL里面我们将数据类型分为了以下一些类型:

1.数值类型(整型、浮点)

2.字符串类型

3.日期时间类型

4.复合类型

3.1 整数类型

MySQL数据类型所占字节值范围
tinyint1字节-128~127
smallint2字节-32768~32767
mediumint3字节-8388608~8388607
int4字节范围-2147483648~2147483647
bigint8字节±9.22*10的18次方

经验:存储状态码一般使用tinyint,其他的需求一般使用int就足够了

int(3) 其中3表示数据不满3位使用0填充,实际上该字段上的数据的取值范围:-2147483648~2147483647

unsigned – 无符号,即,没有前面面的-(负号)

zerofill – 0填充

CREATE TABLE a (id int(3) unsigned zerofill NOT NULL PRIMARY KEY
) 
insert into a(id) values(1);#001
insert into a(id) values(1234);#1234

3.2 浮点类型

MySQL数据类型所占字节值范围
float(m, d)4字节单精度浮点型,m总个数,d小数位
double(m, d)8字节双精度浮点型,m总个数,d小数位
decimal(m, d)decimal是存储为字符串的浮点数

float(8,2) – 单精度浮点型

double(8,2) – 双精度浮点型

decimal(8,2) – 以字符串形式存储的小数

(8,2)表示8位数,其中2位为小数位

经验:因为float和double都有可能损失精度,有精度要求的字段一般使用decimal

3.3 字符串类型

MySQL数据类型所占字节值范围
CHAR0-255字节定长字符串
VARCHAR0-255字节变长字符串
TINYBLOB0-255字节不超过255个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65535字节二进制形式的长文本数据
TEXT0-65535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据
VARBINARY(M)允许长度0-M个字节的定长字节符串值的长度+1个字节
BINARY(M)M允许长度0-M个字节的定长字节符串

char(32) – 定长字符串,如果存储"abc",底层会开辟32个字符长度的空间

varchar(32) – 变长字符串,如果存储"abc",底层会根据具体数据开辟空间

(32) – MySQL5.5之前为32字节,之后32个字符

注意:char和varchar取值范围为0~255字符

BLOB – 可以存储二进制数据的字符串类型,意味着该类型可以存储文件

TEXT – 可以存储长文本数据的字符串类型,意味着该类型可以存储纯文本数据

LONGBLOB – 可以存储极长的二进制数据

LONGTEXT – 可以存储极长的纯文本数据

注意:存储二进制文件和纯文本文件的技术叫做CBLOB -> CLOB指的是存储纯文本文件,BLOB指的是存储二进制文件

经验:MySQL虽然允许存储文件,但是实际开发中不会存储文件,如果要存储文件,在数据库中存储的是该文件的路径,是为了减少数据库的压力

3.4 日期时间串类型

MySQL数据类型所占字节值范围
date3字节日期,格式:2024-06-01
time3字节时间,格式:14:32:30
datetime8字节日期时间,格式:2024-06-01 14:32:30
timestamp4字节自动存储记录修改的时间 2024-06-01 14:32:30
year1字节年份 2024

时间戳可以设置更新数据就更新时间

CREATE TABLE a (id int(3) unsigned zerofill NOT NULL PRIMARY KEY,str varchar(3) COLLATE utf8mb4_general_ci DEFAULT NULL,xxx timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
) 

4.约束

约束:对于该字段上数据的限制

4.1 主键约束

理解:该字段上的数据不允许重复且不能为null

注意:一张表必须有主键,且只能有一个!!!

添加主键约束 – 方式一

CREATE TABLE user(username VARCHAR(32) PRIMARY KEY,password VARCHAR(32),name VARCHAR(32),nickName VARCHAR(32),phone VARCHAR(32),sex VARCHAR(32),age INT(3)
)

添加主键约束 – 方式二

PRIMARY KEY(username,password)->联合主键,意味着主键是username+password加在一起的数据

CREATE TABLE user(username VARCHAR(32),password VARCHAR(32),name VARCHAR(32),nickName VARCHAR(32),phone VARCHAR(32),sex VARCHAR(32),age INT(3),PRIMARY KEY(username,password)
)

添加主键约束 – 方式三

经验:创建表时就添加主键,方式三很少使用

CREATE TABLE user(username VARCHAR(32),password VARCHAR(32),name VARCHAR(32),nickName VARCHAR(32),phone VARCHAR(32),sex VARCHAR(32),age INT(3)
)
ALTER TABLE user ADD PRIMARY KEY(username);

删除主键约束

ALTER TABLE user DROP PRIMARY KEY;

4.2 唯一约束

理解:该字段上的数据不允许重复,但可以为null

添加唯一约束

ALTER TABLE user ADD UNIQUE(phone);

删除唯一约束

ALTER TABLE user DROP index phone;

4.3 非空约束

理解:该字段上的数据不允许为null,但可以重复

添加非空约束

ALTER TABLE user MODIFY password VARCHAR(32) NOT NULL; 

删除非空约束

ALTER TABLE user MODIFY password VARCHAR(32) NULL; 

添加默认值

ALTER TABLE user MODIFY password VARCHAR(32) DEFAULT '000000'; 

4.4 外键约束

理解:保证两个字段之间参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系

创建学科表,并插入数据

CREATE TABLE course(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32)
)
INSERT into course(name) VALUES('Java');
INSERT into course(name) VALUES('Python');
INSERT into course(name) VALUES('HTML');

创建学生表

创建学科表,并插入数据

CREATE TABLE student(id INT(3) PRIMARY KEY auto_increment,name VARCHAR(32),c_id INT(3)
)

添加外键约束

alter table student add foreign key(c_id) references course(id);

删除外键约束

alter table student drop foreign key student_ibfk_1;
show create table student;
CREATE TABLE `student` (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`c_id` int DEFAULT NULL,PRIMARY KEY (`id`),KEY `c_id` (`c_id`),CONSTRAINT `student_ibfk_1` FOREIGN KEY (`c_id`) REFERENCES `course` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

经验:外键已被淘汰,效率太低了,因为添加、修改数据时,MySQL都会去外键关联的表中查询是否有脏数据

外键的优点:不会出现脏数据

外键的缺点:效率低

如果不适用外键,如何避免脏数据呢?

在页面选择数据,不会乱填的!

5.索引(重要)

理解:索引相当于一本书的目录,让查询更快

注意:索引上的数据作为查询条件,速度会更快

5.1 主键索引

注意:主键作为约束,该字段上的数据不能重复也不能为null,作为索引,查询会更快

添加主键索引 – 方式一

CREATE TABLE user(username VARCHAR(32) PRIMARY KEY,password VARCHAR(32),name VARCHAR(32),nickName VARCHAR(32),phone VARCHAR(32),sex VARCHAR(32),age INT(3)
)

添加主键索引 – 方式二

PRIMARY KEY(username,password)->联合主键,意味着主键是username+password加在一起的数据

CREATE TABLE user(username VARCHAR(32),password VARCHAR(32),name VARCHAR(32),nickName VARCHAR(32),phone VARCHAR(32),sex VARCHAR(32),age INT(3),PRIMARY KEY(username,password)
)

添加主键索引 – 方式三

alter table 表 add PRIMARY KEY(字段)

经验:创建表时就添加主键,方式三很少使用

CREATE TABLE user(username VARCHAR(32),password VARCHAR(32),name VARCHAR(32),nickName VARCHAR(32),phone VARCHAR(32),sex VARCHAR(32),age INT(3)
)
ALTER TABLE user ADD PRIMARY KEY(username);

删除主键索引

ALTER TABLE user DROP PRIMARY KEY;

5.2 唯一索引

注意:唯一作为约束,该字段上的数据不能重复,作为索引,查询会更快

添加唯一索引

alter table 表 add UNIQUE(字段)

ALTER TABLE user ADD UNIQUE(phone);

删除唯一索引

ALTER TABLE user DROP index phone;

5.3 普通索引

注意:普通索引没有任何数据上的约束,作为索引,查询会更快

添加普通索引

alter table 表 add index(字段)

ALTER TABLE user ADD index(nickName);

删除普通索引

drop index nickName on user;

5.4 全文索引

注意:项目中不同,如果要做全文索引会使用ES(ElasticSearch)框架

添加全文索引

alter table 表 add FULLTEXT(字段)

ngram 中文、日文、韩文的全文解析器,如果不加则只能解析英文

ALTER TABLE news ADD FULLTEXT(info) WITH PARSER ngram;

全文搜索 info

SELECT * FROM news WHERE MATCH(info) against('胡歌很帅');

删除全文索引

drop index info on news;

面试题:索引为什么作为条件会更快?

因为索引底层使用B+Tree的数据结构,会让查询效率更高

面试题:索引会让该字段作为条件查询更快,为什么创建表时不会每个字段都加上索引呢?

考点:索引的优缺点

优点:该字段作为条件查询更快

缺点:添加、删除数据时,索引的数据结构发生改变

经验1:会把经常作为查询条件的字段设置为索引

经验2:偶尔添加或删除索引字段上的数据直接无视,批量添加或删除索引字段上的数据,可以先把索引删除后,等批量操作完再添加上索引

面试题:索引的分类?

聚簇索引(聚集索引)和非聚簇索引(非聚集索引)

面试题:聚簇索引和非聚簇索引的区别

聚簇索引(主键索引):叶子结点上存放的是数据行的数据,效率更高

非聚簇索引(唯一、普通、全文索引):叶子节点上存放的是数据行的地址

经验:select 字段 FROM 表名 WHERE 主键字段=xxx;

面试题:索引失效的情况

1.最短路径算法(是走索引查询更快,还是顺序查找更快)

2.最左匹配原则

3.使用模糊查询

4.使用函数

5.使用OR

提升:B+Tree和BTree的区别

6.视图

视图:虚拟表,和普通表一样使用,是通过表动态生成的数据

创建移动公司的用户表

CREATE TABLE user(username VARCHAR(32) PRIMARY KEY,password VARCHAR(32),name VARCHAR(32),type INT(3),province VARCHAR(32),city VARCHAR(32),phone VARCHAR(32),age INT(3)
)

创建视图

or replace 如果视图名相同就替换

with check option修改数据时如果违反条件就不允许修改

create or replace view view01 as select phone,province,city,age from user where age < 40 with check option;

查询视图数据

SELECT * FROM view01;

修改视图数据

UPDATE view01 SET age=41 WHERE phone='13993300090';

删除视图数据

DELETE FROM view01 WHERE phone='13993300090';

删除视图

DROP view view01;

注意:修改虚拟表,原表也会发生改变

解决:创建子账号,子账号只有查询权限

总结

1.多表联合查询 – 重要
一对多
多对多
2.DCL
3.数据类型(整数、浮点、字符串、日期时间)
4.约束(主键、唯一、非空、外键)
5.索引(主键、唯一、普通、全文,面试题) – 重要
RIMARY KEY,
password VARCHAR(32),
name VARCHAR(32),
type INT(3),
province VARCHAR(32),
city VARCHAR(32),
phone VARCHAR(32),
age INT(3)
)


> 创建视图> or replace 如果视图名相同就替换
>
> with check option修改数据时如果违反条件就不允许修改```mysql
create or replace view view01 as select phone,province,city,age from user where age < 40 with check option;

查询视图数据

SELECT * FROM view01;

修改视图数据

UPDATE view01 SET age=41 WHERE phone='13993300090';

删除视图数据

DELETE FROM view01 WHERE phone='13993300090';

删除视图

DROP view view01;

注意:修改虚拟表,原表也会发生改变

解决:创建子账号,子账号只有查询权限

总结

1.多表联合查询 – 重要
一对多
多对多
2.DCL
3.数据类型(整数、浮点、字符串、日期时间)
4.约束(主键、唯一、非空、外键)
5.索引(主键、唯一、普通、全文,面试题) – 重要
6.视图

相关文章:

学习java的日子 Day52 多表联合查询,DCL,数据类型,约束,索引,视图

Day52 1.DML-多表联合查询(重要) 1.1 一对一情况 略 1.2 一对多情况 当需要查询多个表中的字段时&#xff0c;就可以使用表连接来实现。表联接分为内连接和外连接 内连接&#xff1a;将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结 外连接&#xff1a;…...

计算机视觉(CV)的教程、相关项目

计算机视觉(CV)是一个广泛而深入的领域,其教程和项目众多。以下是针对计算机视觉(CV)的教程和相关项目的一个清晰概述: 教程 入门教程: OpenCV入门:OpenCV是一个开源的计算机视觉库,提供了大量用于图像和视频处理的函数。可以通过OpenCV的官方文档或在线教程来学习其…...

mysql in 逗号分隔_数据库字段是逗号分隔的查询(FIND_IN_SET(str,strlist)方法的使用)

使用函数FIND_IN_SET(str,strlist)--(推荐) 函数介绍:返回在strlist中str字符串通过“,”分隔成列表后所在的位置(索引),如 SELECT FIND_IN_SET("c", "a,b,c,d,e"); 返回3(索引从1开始) 有了这个方法再回到之前的sql语句可以变成如下: select name,bra…...

【Python】 将日期转换为 datetime 对象在 Python 中

基本原理 在 Python 中&#xff0c;处理日期和时间的库是 datetime&#xff0c;它提供了广泛的功能来处理日期和时间。datetime 模块中有一个 datetime 类&#xff0c;它可以用来表示日期和时间。有时&#xff0c;我们可能会遇到需要将日期字符串转换为 datetime 对象的情况&a…...

dpdk-19.11 arm64 环境适配 Mellanox CX4 网卡

环境信息 cpu: arm64 架构 dpdk 版本&#xff1a;19.11 glibc 版本&#xff1a;2.17 网卡型号&#xff1a; Mellanox CX4 网卡&#xff0c;详细 pci 信息如下&#xff1a; 02:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx] 02:00.1 Ether…...

1141. 查询近30天活跃用户数

1141. 查询近30天活跃用户数 题目链接&#xff1a;1141. 查询近30天活跃用户数 代码如下&#xff1a; # Write your MySQL query statement below select activity_date as day,count(distinct user_id) as active_users from Activity where activity_date between 2019-06-…...

11_JavaWeb监听器

文章目录 监听器1.监听器的分类2.application域监听器案例 监听器 概念&#xff1a;后端要发生一些事情的时候&#xff0c;自动触发一些代码的执行&#xff1b; 1.监听器的分类 web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类 按监听的…...

jmeter常用的断言

包括&#xff08;Contains&#xff09;&#xff1a;响应内容包括需要匹配的内容即代表响应成功&#xff0c;支持正则表达式 匹配&#xff08;Matches&#xff09;&#xff1a;响应内容要完全匹配需要匹配的内容即代表响应成功&#xff0c;大小写不敏感&#xff0c;支持正则表达…...

Opencv Python图像处理笔记二:图像变换、卷积、形态学变换

文章目录 前言一、几何变换1.1 缩放1.2 平移1.3 旋转1.4 翻转1.5 仿射1.6 透视 二、低通滤波2.1 均值滤波2.2 高斯滤波2.3 中值滤波2.4 双边滤波2.5 自定义滤波 三、高通滤波3.1 Sobel3.2 Scharr3.3 Laplacian3.4 Canny 四、图像金字塔4.1 高斯金字塔4.2 拉普拉斯金字塔 五、形…...

使用若依框架RuoYi前后端分离版+运行+自动生成页面进行导入进行开发+工具(完整版)

若依后台预览 摘要: 随着前后端分离开发模式的流行,越来越多的开发者开始将项目的前端和后端分离开发,以提高开发效率和项目的灵活性。若依框架作为一款优秀的开源后台管理系统,提供了强大的权限管理和代码生成功能,非常适合前后端分离开发。 一、若依框架介绍 若依框架…...

开源博客项目Blog .NET Core源码学习(29:App.Hosting项目结构分析-17)

本文学习并分析App.Hosting项目中后台管理页面的按钮管理页面。   按钮管理页面用于显示、新建、编辑、删除页面按钮数据&#xff0c;以便配置后台管理页面中每个页面的工具栏、操作栏、数据列中的按钮的事件及响应url。按钮管理页面附带一新建及编辑页面&#xff0c;以支撑新…...

2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书

2021 hnust 湖科大 计组课设 包含multisim14连线文件&#xff0c;报告&#xff0c;指导书 描述 hnust计组课设要用到的东西都在里面了 下载链接 https://pan.baidu.com/s/1tHooJmhkrwX47JCqsg379g?pwd1111...

CHATGPT升级plus(已有账号前提下)

注册wildcard(虚拟卡) 注册号账号后先进行充值&#xff0c;充值后选择CHATGPT一键升级按照他的流程来即可 Wildcard网址&#xff1a;Wildcard跳转注册 填写邀请码充值时少两美金合计14&#xffe5; 邀请码&#xff1a;OL3QXTRH...

通过血清拉曼光谱进行COVID-19的高效初步筛查

通过血清拉曼光谱进行COVID-19的高效初步筛查 原创 小王搬运工 时序课堂 2024-06-04 20:04 四川 论文地址&#xff1a;https://analyticalsciencejournals.onlinelibrary.wiley.com/doi/full/10.1002/jrs.6080 论文源码&#xff1a;无 期刊&#xff1a;JOURNAL OF RAMAN SPE…...

Java 性能调优与监控工具详解

在Java开发中&#xff0c;性能调优和监控是确保应用程序高效、稳定运行的关键环节。本文将详细介绍Java性能调优的基本原则和常用的监控工具&#xff0c;并通过代码示例帮助读者理解如何进行实际操作。 一、性能调优的基本原则 在开始调优之前&#xff0c;了解以下基本原则是…...

LeetCode 1633, 122, 239

目录 1633. 各赛事的用户注册率题目链接表要求知识点思路代码 122. 买卖股票的最佳时机 II题目链接标签思路代码 239. 滑动窗口最大值题目链接标签思路代码 1633. 各赛事的用户注册率 题目链接 1633. 各赛事的用户注册率 表 表Users有字段user_id和user_name。表Register有…...

(十五)统计学基础练习题九(选择题T401-450)

本文整理了统计学基础知识相关的练习题&#xff0c;共50道&#xff0c;适用于想巩固统计学基础或备考的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-统计学三&#xff09;。序号之前的题请看往期文章。 401&#xff09; 402&#xff09; 403&#xff09; 4…...

用大白话讲解下 CNN和卷积核( 百度 AI 回答 )

CNN&#xff08;卷积神经网络&#xff09;和卷积核在图像处理中扮演着非常重要的角色。咱们来用大白话解释一下它们。 首先说CNN&#xff0c;它就像是一个聪明的机器&#xff0c;专门用来识别图片里的东西。CNN里面有很多层&#xff0c;每一层都有很多小单元&#xff0c;这些小…...

安全生产新篇章:可燃气体报警器检验周期的国家标准解读

随着工业化进程的加快&#xff0c;安全生产成为了重中之重。 可燃气体报警器作为预防火灾和爆炸事故的重要设备&#xff0c;其准确性和可靠性直接关系到企业的生产安全和员工的生命财产安全。 因此&#xff0c;国家对可燃气体报警器的检验周期有着明确的规定&#xff0c;以确…...

github搭建个人博客

准备工作 windows安装nodejs windows安装git windows安装hexo 拥有gitee个人账户 配置信息 通过gitee创建博客仓库 登录gitee平台&#xff0c;进入主界面&#xff0c;右侧加号&#xff0c;新建仓库&#xff0c;注意&#xff1a;仓库名称和gitee用户名称一致 生成/添加 SSH 公…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...