自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java实现JDBC编程

再配置该jar包到本项目的依赖中:右键点击项目Open Module Settings,在Modules中,点击项目,配置Dependencies,点击+,JARS or Directories,将该lib文件夹配置进依赖中,表示该文件夹下的jar包都引入作为依赖。数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。2. DataSource提供连接池的支持。

2024-03-24 23:42:20 883

原创 MySQL索引事务

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

2024-03-24 17:30:13 1207

原创 MySQL表增删改查(进阶版本)

NOT NULL - 指示某列不能存储 NULL 值。UNIQUE - 保证某列的每行必须有唯一的值。DEFAULT - 规定没有给列赋值时的默认值。PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。CHECK - 保证列中的值符合指定的条件。

2024-03-24 00:47:30 717

原创 MySQL表的增删改查(基础版本)

MySQL的增删改查也就是CRUDCRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。

2024-03-19 23:57:55 281

原创 MySQL数据库基础

本次删除是测试的数据库,大家在工作中谨记,不要随意进行drop操作,如果要进行,也要及时备份数据库,防止出现不可逆的操作。如果没有test的数据库,则创建一个使用utf8mb4字符集的test数据库,如果有则不创建。注意:只有在使用指定数据库后,才能操作对应数据库中的表。-- 如果存在test1 表,则删除 test1 表。COLLATE: 指定数据库字符集的校验规则。如果没有test2,则创建,有则不创建。2.1 数值类型:分为整型和浮点型。创建名为test的数据库。操作表时要先使用数据库。

2024-03-19 23:37:27 863

原创 Java-认识异常

Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构.实现一个用户登录功能1. 自定义异常类,然后继承自Exception 或者 RunTimeException2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因上述代码可以改成注意:自定义异常通常会继承自 Exception 或者 RuntimeException继承自 Exception 的异常默认是受查异常。

2023-11-27 21:39:52 133

原创 Java-认识String类

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提 供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String类。字典序:字符大小的顺序 String类重写了父类Object中equals方法,Object中equals默认按照==比较,String重写equals方法后,按照 如下规则进行比较,比如: s1.equals(s2)

2023-11-21 14:39:06 175

原创 基于Java封装继承多态实现的一个简单图书系统

因为登陆函数返回了用户,我们主函数调用登陆方法,第一步知道是进入哪个用户,然后通过choice来决定调用的是哪个方法,doOperation这个方法在上面已经实现,传入choice和书的列表,choice则是通过在普通用户类和管理员用户类中的menu()方法,然后输入,通过choice来接收,传给了doOperation方法,根据choice选择对应的方法。接下来我们挨个实现展示图书,查找图书,新增图书,归还图书,借阅图书,退出图书系统,删除图书的各项功能。图书的定义初始化和存放做完后,我们来实现用户。

2023-11-21 11:09:33 219

原创 Java-接口和抽象类

注意事项: 对于 sort 方法来说, 需要传入的数组的每个对象都是 "可比较" 的, 需要具备 compareTo 这样的能力. 通过重写compareTo 方法的方式, 就可以定义比较规则.Object是Java默认提供的一个类。在Java中,类和类之间是单继承的,一个类可以实现多个接口,接口与接口之间可以多继承。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果。接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。

2023-11-16 09:23:46 106 3

原创 Java-多态

编写的. 当类的调用者在编写 eat 这个方法的时候, 参数类型为 Animal (父类), 此时在该方法内部并不知道, 也不关注当前的 a 引用指向的是哪个类型(哪个子类)的实例. 此时 a这个引用调用 eat方法可能会有多种不同的表现(和 a 引用的实例 相关), 这种行为就称为。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的方法,此时:将父类引用再还原为子类对象即可,即向下转换。多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。

2023-11-11 11:01:37 256 3

原创 C进阶-编译环境与预处理

本章重点:程序的翻译环境程序的执行环境详解:C语言程序的编译+链接预定义符号介绍预处理指令#define宏和函数的对比预处理操作符#和##的介绍命令定义预处理指令#include预处理指令#undef条件编译。

2023-11-08 16:27:38 138 3

原创 Java-继承

继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性 的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承主要解决的问题是:共性的抽取,实现代码复用。Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。上述的猫狗都是动物,那我们就可以定义动物类,放共有的属性和方法。1.1 为什么需要继承。

2023-11-08 16:25:45 73

原创 Java-认识类和对象

Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面 向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人 们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机。//在java中定义类时需要用到class关键字,具体语法如下// 创建类。

2023-11-06 16:05:48 292 4

原创 Java-数组的定义与使用

当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了。堆(Heap): JVM所管理的最大内存区域. 使用 new 创建的对象都是在堆上保存 (例如前面的 new int[]{1, 2, 3} ),堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销毁。数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,该编号称为数组的下标,数组可以通过下标访问其任意位置的元素。而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。

2023-11-02 14:37:14 274 4

原创 Java-方法的使用

实参a和b是main方法中的两个变量,其空间在main方法的栈(一块特殊的内存空间)中,而形参x和y是swap方法中 的两个变量,x和y的空间在swap方法运行时的栈中,因此:实参a和b 与 形参x和y是两个没有任何关联性的变量, 在swap方法调用时,只是将实参a和b中的值拷贝了一份传递给了形参x和y,因此对形参x和y操作不会对实参a和b 产生任何影响。调用方法--->传递参数--->找到方法地址--->执行被调方法的方法体--->被调方法结束返回--->回到主调方法继续往下执行。

2023-10-30 23:59:48 95

原创 Java-逻辑控制

游戏规则: 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块.

2023-10-29 16:32:55 111

原创 Java-运算符

计算机的最基本的用途之一就是执行数学运算,比如:inta10;intb20;ab;ab;上述+ 和< 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

2023-10-25 14:30:45 84

原创 Java-数据类型与变量

重点:1. 字面常量2. 数据类型3. 变量。

2023-10-24 17:26:36 70

原创 初识JAVA,带你入门

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

2023-10-24 09:00:07 113

原创 C进阶-语言文件操作

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件int main()//相对路径//绝对路径//打开文件return 1;//读文件//写文件int i = 0;for (i = 0;i < 26;i++)//关闭文件fclose(pf);pf = NULL;return 0;int main()//相对路径//绝对路径//打开文件return 1;//读文件//a//b//c//d//写文件。

2023-10-20 23:05:46 809

原创 C进阶-动态内存管理

动态内存管理函数: malloc、free、realloc、calloc 2.2 callo函数2.3 realloc 3 常见的动态内存操作3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部分3.5 对同一块动态内存多次释放3.6 动态开辟内存忘记释放(内存泄漏)4. 经典面试题4.1 正确

2023-10-15 16:33:52 206 6

原创 基于C语言实现通讯录

实现一个通讯录通讯录中保存人的信息:名字、年龄、电话、住址、性别1.通讯录中可以存放100个人的信息2.增加联系人3.删除指定联系人4.查找指定联系人5.修改指定联系人6.显示所有联系人的信息7.排序功能test.c - 测试通讯录contact.h 函数的类型的声明contact.c 函数的实现。

2023-10-15 13:59:28 142

原创 C进阶-自定义类型:结构体、枚举、联合

结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)

2023-10-11 22:33:41 200

原创 C进阶-字符串和内存函数

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符串数组中。字符串常量适用于那些对他不做修改的字符串函数。

2023-10-01 13:58:05 138

原创 C语言-指针的进阶

本文主要讲解了c语言中指针的进阶内容,在初阶的基础上进行延伸.内存会划分为一个个的内存单元每个内存单元都有一个独立的编号,-编号也称为地址地址在C语言中也被称为指针指针(地址)需要存储起来-存储到变量中,这个变量也就被称为指针变量指针(地址)的大小固定说4/8个字节(32位平台/64位平台)地址是物理的电线上产生32为机器-32根地址线 -1/032个0/1组成的二进制序列,把这个二进制序列作为地址,32bit位才能存储这个地址也就是需要4个字节才能存储,所以指针变量的大小是4个字节。

2023-09-26 09:01:02 294

原创 C进阶-数据的存储

num和*pFloat 在内存中明明是同一个数,为什么浮点数和整数的解读结果会差别这么大?举例来说:十进制的5.0,写成二进制是 101.0,相当于 1.01x2入2。那么,按照上面V的格式,可以得出s=0M=1.01 ,E=2。IEEE 754规定:对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。十进制的-5.0,写成二进制是-101.0,相当于-1.01x2^2。那么,s=1,M=1.01,E=2。(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。

2023-09-24 23:08:10 301

原创 c语言-实用调试技巧

程序中出现的问题debug通常称为调试版本,他包含调试信息,并且不做任何优化,便于程序员调试程序release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好的使用。

2023-09-22 22:25:28 256

原创 C语言基础-结构体

结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。结构体:其实是一组不一定相同类型元素的集合。数组:一组相同类型元素的集合。

2023-09-21 00:08:43 175

原创 C语言基础-指针

int* 4个字节 char* 1个字节 short* 2个字节 float* 4个字节 double* 8个字节。结论:指针类型可以决定指针解引用的时候访问多少个字节(指针的权限)平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。总结:指针就是地址,口语中说的指针通常指的是指针变量。指针是内存中一个最小单元的编号,也就是地址。char* 的指针解引用访问1个字节。3指针指向的空间释放,及时置NULL。int* 的指针解引用访问4个字节。5指针使用之前检查有效性。

2023-09-18 19:32:55 724

原创 C基础-操作符详解

下标引用,函数调用和结构成员: []. (). . ->编写代码实现:求一个整数存储在内存中的二进制中1的个数。赋值操作符: = += -= *= /= ....sizeof + - ~ & *关系操作符: > < >= 位操作符:& | ^

2023-09-12 23:28:06 378

原创 C语言实现扫雷小游戏

不是雷放* 雷:# 不是雷:0 雷:1。2. 给2个二维数组 9*9 一个存放雷的信息,一个存放布置好雷的信息。3.为了防止在统计坐标周围的雷点个数的时候越界,我们让数组设计为11*11。1.首先扫雷游戏要存储布置好的雷信息,需要一个二维数组。test.c. - 测试游戏的代码。game.h. -游戏函数的声明。game.c -游戏的实现。排查雷和计算周围有几个雷。

2023-09-11 22:59:56 1199

原创 C语言实现三字棋

以下都是具体函数的实现,都在game.c文件中完成,test.c调用,game.h定义。(2)游戏再走的过程中要进行数据的存储,可以使用3*3的二维数组。1游戏不退出,继续玩下一把(循环)game.c -游戏函数的实现。game.h -游戏函数的声明。(2)没下棋之前数组中存放空格。test.c. --测试游戏。2应用多文件的形式完成。

2023-09-10 19:45:25 1184

原创 C基础-数组

C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,我们自己要做好越界的检查。所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。数组的下规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1。我们会将数组作为参数传个函数,比如我们实现一个冒泡排序。数组的下标是有范围限制的。

2023-09-09 20:46:01 196

原创 函数栈帧的创建和销毁

局部变量怎么样创建的?为什么局部变量的值死随机值?函数是怎么传参的?传参的顺序是怎么样的?形参和实参是什么关系?函数调用时怎么做的?函数调用结束后是怎么返回的?

2023-09-08 20:08:26 43

原创 C中的基本函数

维基百科中对函数的定义:子程序 在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成,他负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏,这些代码通常被集成为软件库。

2023-09-05 20:21:55 255

原创 C基础-分支和循环语句

c语言:结构化的程序设计语言。包括:顺序结构,选择结构,循环结构选择结构: 分支语句-if和switch循环结构:循环语句while ,for, do whilec语言语句分为五类:1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句用于控制程序的执行流程,以实现程序的各种结构方式(c语言支持三种结构:顺序结构、选择结构、循环结构),他们由特定的语句定义符组成,c语言有九种控制语句。可分成以下三类:1.条件判断语句也叫分支语句:if语句、switch语句;

2023-06-03 21:38:08 431

原创 每日算法,剑指offer(2)Java篇 分糖果

2. 任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。(若相同则无此限制)给定一个数组 arr 代表得分数组,请返回最少需要多少糖果。数据范围: 1≤n≤100000 ,1≤ai​≤1000。要求: 时间复杂度为 O(n) 空间复杂度为 O(n)1. 每个孩子不管得分多少,起码分到一个糖果。解题思路:使用了算法思想中的贪心算法。

2023-04-17 11:05:07 415 4

原创 每日算法,剑指offer(1)Java篇大数加法

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:s.lengthℎ,t.lengthℎ≤100000字符串仅由'0'~‘9’构成要求:时间复杂度O(n)

2023-04-13 19:23:38 253 7

原创 ES6中Symbol的介绍与创建以及创建对象属性

//创建symbollet s2 = Symbol('小凡');let s3 = Symbol('小凡');//false//Symbol.for 创建let s4 = Symbol.for('小凡');let s5 = Symbol.for('小凡');//true//不能与其他数据进行运算

2022-11-24 10:33:50 279 4

原创 ES6-函数的默认值,rest参数以及扩展运算符的介绍

ES6引入rest参数,用于获取函数的实参,用来代替arguments。1形参初始值,具有默认值的参数,一般位置要靠后(潜规则)[...] 扩展运算符能将数组转换为逗号分隔的参数序列。ES6允许给函数参数赋值初始值。rest参数必须放到参数最后。3.将伪数组转为真正的数组。ES5获取实参的方式。ES6的rest参数。

2022-11-24 09:43:53 135

空空如也

空空如也

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

TA关注的人

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