- 博客(48)
- 收藏
- 关注
原创 HashMap底层原理分析——新手向
HashMap简介HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的 key、value 都可以为 null,此外,HashMap 中的映射不是有序的。jdk1.8 之前 HashMap 由 数组 + 链表 组成,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突(两个对象调用的 hashCode 方法计算的哈希值经哈希函数算出来的地址被别的元素占用)而存在的(“拉链法”
2021-03-01 16:59:56
364
原创 MySQL常用函数
MySQL常用函数数学函数CEIL()进一取整SELECT CEIL(1.2);+-----------+| CEIL(1.2) |+-----------+| 2 |+-----------+FLOOR()舍掉小数部分SELECT FLOOR(1.9);+------------+| FLOOR(1.9) |+------------+| 1 |+------------+ROUND()四舍五入-- 最后的一个参数表示四舍五入到
2020-11-07 21:46:32
257
原创 自身连接查询
自身连接查询无限级分类的实现形式测试这里的父id是什么东西呢?例如,在一个电商网站上会有侧边的导航栏,导航栏里面可能会有很多次级栏。比如一个服装栏,它可以作为顶级分类,它的父id就是0;长袖和裙子隶属于服装,父id为1;8分袖隶属于长袖,父id为2-- 创建数据库分类表CREATE TABLE cate1( id SMALLINT UNSIGNED KEY AUTO_INCREMENT COMMENT '编号', cateName VARCHAR(100) NOT NULL U
2020-11-07 21:45:16
772
原创 联合查询
联合查询UNIONSELECT 字段名称,... FROM tbl_name1UNIONSELECT 字段名称,... FROM tbl_name2;在联合查询时会去掉表中的重复记录UNION ALLSELECT 字段名称,... FROM tbl_name1UNION ALLSELECT 字段名称,... FROM tbl_name2;在联合查询时只是简单的合并两个表中的记录测试以下是测试表的内容SELECT * FROM user4;+----+----------+|
2020-11-07 21:43:58
173
原创 特殊形式的查询
子查询指把一个查询语句嵌套在另一个查询语句中SELECT 字段名称,... FROM tbl_name1 WHERE col_name1=(SELECT col_name2 FROM tbl_name2)我们可以看到有两层查询结果,内层查询语句的结果可以作为外层查询语句的条件。由[NOT] IN引发的子查询SELECT 字段名称,... FROM tbl_name WHERE col_name [NOT] IN (条件)由比较运算符引出的子查询SELECT 字段名称,... FROM tb
2020-11-07 21:41:48
244
原创 外键约束
外键约束只有InnoDB存储引擎支持外键,并且在创建外键的时候,我们子表的外键必须关联主表的主键。外键字段依赖于已经存在的表的一个主键,所以一定要先有主表。我们的外键字段必须和我们主表的主键字段的数据类型要相似:如果是数值型,两者必须类型一致,并且同时为有无符号;如果是字符串型,两者的长度可以不同,但是类型必须相同。如果子表的外键字段没有创建索引,但是当我们创建完外键之后,它会自动的添加索引。如果子表中有记录外键关联着主表中的记录,那么主表中的这条记录以及主表是无法删除的,子表中的这些记录可以删
2020-11-07 21:40:33
2719
原创 MySQL多表查询
MySQL多表查询笛卡尔积的形式将几个表的每一个记录都组合,详情见下面的测试。这个形式无法满足我们的需求。内连接的形式查询两个表中符合连接条件的记录。内连接的使用比外连接要多的多。SELECT 字段名称,... FROM tbl_name1[INNER] JOIN tbl_name2ON 连接条件外连接的形式左外连接SELECT 字段名称,... FROM tbl_name1LEFT [OUTER] JOIN tbl_name2ON 连接条件先显示左表中的全部记录,再去右表
2020-11-07 21:39:54
231
原创 MySQL存储引擎
MySQL存储引擎MyiSAM存储引擎在MySQL5.5之前,默认的存储引擎就是它,当我们建表的时候如果没有指定存储引擎,就会使用它。默认MyiSAM的表会在磁盘中产生3个文件C:\ProgramData\MySQL\MySQL Server 8.0\Data\imooc.frm:表结构文件(但是我的电脑盘上面并没有这个文件).MYD:数据文件.MYI:索引文件可以在创建表的时候指定数据文件和索引文件的存储位置,只有MyiSAM表支持指定了下面这两个语句之后,还是会产生M
2020-11-07 21:36:49
139
原创 表结构相关操作
表结构相关操作添加字段ALTER TABLE tbl_nameADD 字段名称 字段属性 [完整性约束条件] [FIRST|AFTER 字段名称]删除字段ALTER TABLE tbl_nameDROP 字段名称添加默认值ALTER TABLE tbl_nameALTER 字段名称 SET DEFAULT 默认值删除默认值ALTER TABLE tbl_nameALTER 字段名称 DROP DEFAULT修改字段类型、字段属性ALTER TABLE
2020-10-02 09:09:09
191
原创 数据表相关操作
数据表是由行和列组成的二维网络,为什么说MySQL是典型的关系型数据库,就是因为表和表之间存在关系数据表相关操作数据表是数据库最重要的成分之一,数据是保存在数据表中的数据表由行(row)和列(column)组成每个数据表中至少有一列,行可以有零行、一行或者多行组成表明要求唯一,不要含有特殊字符,最好含义明确创建表CREATE TABLE [IF NOT EXISTS] tbl_name{ 字段名称 字段类型 [完整性约束条件], 字段名称 字段类型 [完整性约束条
2020-10-01 15:12:17
750
原创 数据库相关操作
数据库相关操作创建数据库CREATE{DATABASE|SCHEMA} db_name检测数据库的名称是否存在,不存在则创建。CREATE DATABASE[IF NOT EXISTS] db_name; 这里的中括号代表可选的输入,在实际输入时不用打入中括号在创建数据库的同时,指定编码方式。CREATE DATABASE[IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset注意:数据库的名称最好有意义
2020-10-01 15:00:20
184
原创 MySQL基本操作
MySQL基本操作配置文件my.ini是它的配置文件。路径为C:\ProgramData\MySQL\MySQL Server 8.0登录/退出MySQL登录在DOS界面,输入mysql -uroot -p,其中root是默认的用户名,之后再输入自己安装时设置的password与上面那个方式相同,mysql -uroot -p在这之后直接跟上自己的密码,不过是明文密码,不太安全登录的同时打开数据库,mysql -uroot -p -D db_name,这里的-D是–databa
2020-09-27 21:39:20
202
原创 什么是数据库
什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库常见数据库OracleDB2SQL ServerPostgre SQLMySQL相关术语数据库系统(Database System):简称DBS(数据库系统的概念比数据库的要大)数据库(Database)数据库管理系统(Database Management System):简称DBMS,定义、维护、管理数据的一个小软件,也是数据库系统很重要的一个组成部分应用开发工具:使用数据库的一
2020-09-27 20:27:46
179
原创 初学Java简易自助饮品消费系统项目实践
自助饮品消费系统需求代码package selfBeverageService;/** * 父类,饮品类 * @author 杭杭 * */public class Beverage { private String size; private int num; private String note; private String ice; public int getNum() { return num; } public void setNum(int num
2020-08-15 17:23:07
2260
原创 设有n个人围坐一圈,现从第s个人开始报数,报到m的人出列,然后从出列的下一个人重新开始报数 ,报到m的人出列。。。如此反复,直至所有人出列
初识循环链表例题
2020-06-14 22:58:15
3661
原创 离散数学程序实现——求关系矩阵的自反和对称闭包——c
/*2.2 写一个程序,构造关系的自反和对称闭包 */ #include<stdio.h>#define N 5int a[N][N];void input( int n ){ int i,j; for( i=0;i<n;i++ ){ for( j=0;j<n;j++ ){ scanf("%d",&a[i][j]); } }}void output( int x[N][N] ){ int i,j; for( i=0;i<N;.
2020-06-09 22:35:15
4616
原创 离散数学程序实践——判断是否(反)自反,(反)对称,可传递——c
/*2.1写一个程序,测试关系是否是自反和对称的*/ //怎么让一个不确定长宽的二维数组做函数的参数??????? #include<stdio.h> #define N 5int a[N][N];//在判断对称时使用 int leijia( int n ){ int sum=0; n=n-1; for( ;n>0;n-- ) sum+=n; return sum;}//自反则返回1,反自反则返回-1,既不自反又不反自反则返回0 int judge_zif.
2020-06-09 21:20:56
3982
1
原创 离散数学程序实现——真值表——c
//1.4 写一个程序,包含三个变量和两个逻辑连接词生成真值表. #include<stdio.h>//逻辑联结词的计算 int f( int a,int b,int connection ){ switch( connection ) { //合取 case 0: return a*b; break; //析取 case 1: return ((a+b)/2+(a+b)%2); //a b 0 0 a+b 0 ret 0, a b 1.
2020-06-06 11:58:06
6058
原创 离散数学程序实践——交集——c
//1.3 交集#include<stdio.h>#include<string.h>#define MAX 100//降序 void sortstring( char s[],int n ){ int i,j,k; char temp; for( i=0;i<n-1;i++ ){ k=i; for( j=i+1;j<n;j++ ){ if( s[j]>s[k] ) k=j; } if( k!=i ){ te.
2020-06-06 10:44:35
629
原创 离散数学程序实践——并集——c
//1.2 并集的程序实现 #include<stdio.h>#include<string.h>#define MAX 100//降序 void sortstring( char s[],int n){ int i,j,flag=0; char temp; for( i=0;i<n;i++ ){ flag=0; for( j=0;j<n-i-1;j++ ){ if( s[j]<s[j+1] ){ temp=s[j];.
2020-06-06 10:24:06
809
原创 离散数学程序实践——差集——c
//集合的差集程序实现#include<stdio.h>//降序排序数组void sort( int a[],int n ){ int i,j,k,temp; for( i=0;i<n-1;i++ ){ k=i; for( j=i+1;j<n;j++ ){ if( a[j]>a[k] ) k=j; } if( k!=i ){ temp=a[k]; a[k]=a[i]; a[i]=temp; } }}//计算差集.
2020-06-05 22:56:06
660
原创 带参数的main函数(DOS命令行参数实现程序)——c——新人文
初学c语言时写的程序中,main函数都是不带参数的,但是实际上,main函数也是可以带参数的,用于接收程序运行过程中用户输入的参数。定义格式:int main( int argc,char *argv[] )其中整型参数argc表示命令行中所包含的字符串的个数,指针数组argv用于指向命令行中的各个字符串。char *agrv[] 等价于 char **argv , 但是出于可读性,我觉得前者更好并且 其实main 函数argc和argv是main函数的参数。这两个形参的类型由系统规定。如果m
2020-06-04 22:13:12
1135
原创 排序算法——选择排序——c
//选择排序算法#include<stdio.h>//升序 void selectsort_1( int a[],int n ){ int i,j,k,t; //每次选出i+1小的那个数,然后放到a[i] for( i=0;i<n-1;i++ ){ k=i; //选出第 i+1小的数 for( j=i+1;j<n;j++ ){ if( a[j]<a[k] ){ //将较小的数的下标位置给k,在后面的循环中查看是否有比它.
2020-06-02 22:34:48
172
原创 排序算法——冒泡排序算法以及优化——c
//未优化——冒泡排序算法 #include<stdio.h>//升序void bubblesort_1( int a[],int n ){ int i,j,t; for( i=0;i<n-1;i++ ){ //第i轮排序 for( j=0;j<n-i-1;j++ ){ //交换两个元素位置 if( a[j]>a[j+1] ){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } .
2020-06-01 22:46:20
408
原创 排序算法——直接插入排序——c
//直接插入排序#include<stdio.h>//升序 void insertsort_1( int s[],int n ){ int i,j; for( i=2;i<n;i++ ){ if( s[i]<s[i-1] ){ s[0]=s[i]; //把需要前移的数安置到临时区s[0] for( j=i-1;s[0]<s[j];j-- ){ s[j+1]=s[j]; //把比安置.
2020-06-01 22:13:28
224
原创 牛顿迭代法的程序实现例题———c——新人文
我们先来讲述牛顿迭代法的原理。假设xk是f(x)的一个近似根,将f(x)在x处展开的多项式可表示为f(x)=f(xk)+f’(xk)*(x-xk)+f’’(xk)*(x-xk)^2/2!+……此处简便计算 ,以前两项近似代替f(x),则近似方程为f(x)=f(xk)+f’(xk)*(x-xk)=0即x=xk-f(xk)/f’(xk)假设f(xk)!=0.则令其解为xk+1, //这里的k和k+1是下标,这个csdn'的编辑器我不...
2020-06-01 17:10:16
2532
原创 用梯形法求定积分程序实现例题——c——新人文
以下为梯形法原理。题目: b 梯形法求数值积分。F(x)=∫ (4-X*X)^0.5dx。 a#include<stdio.h>#include<math.h>int main(){ double step=1E-7,a,b,c,sum=0; scanf(...
2020-06-01 16:22:44
2577
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人