- 博客(56)
- 收藏
- 关注
原创 java基础运算符
本文详细介绍了Java中的各类运算符及其使用方法和注意事项。首先,算术运算符包括加、减、乘、除和取模,支持字符串拼接和自动取整。增量运算符如+=、-=等,具有自动类型转换的特性,但常量不可用。自增/自减运算符分为前置和后置,影响变量的值。关系运算符用于比较,但不可链式比较,具有短路特性。逻辑运算符包括与、或、非,遵守短路求值规则。位运算符涉及按位与、或、取反和异或,移位运算符包括左移、右移和无符号右移。条件运算符是唯一的三目运算符,用于简化条件判断。最后,文章列出了运算符的优先级,并提供了记忆口诀。
2025-05-14 14:31:51
803
原创 java的基础语法规范
本文简要介绍了Java编程语言的基础语法规范、数据类型体系、变量的定义与使用、类型转换以及字符串类型的基本操作。文中详细说明了代码结构元素注释的三种方式,标识符的命名规则,以及关键字的分类和示例。接着,文章列举了Java的基本数据类型,包括字节型、短整型、整型、长整型、单精度浮点、双精度浮点、字符型和布尔型,并分别说明了它们的大小、范围和默认值。此外,文章还讨论了变量的概念、语法格式以及不同类型变量的定义和使用方法,如整形、长整型、短整型、字节型、浮点型、字符型和布尔型变量。最后,文章简要介绍了类型转换的自
2025-05-14 13:43:12
775
原创 初识java
ava是一种面向对象的高级编程语言,包含三大技术体系:Java SE(标准版)、Java EE(企业版)和Java ME(微型版)。其核心优势包括跨平台性(通过JVM实现)、丰富的类库和自动内存管理。Java在企业级开发、Web开发、移动开发、大数据和云计算等领域有广泛应用,如ERP系统、Android应用、Hadoop和Spark等。2023年TIOBE排行榜显示,Java长期保持前3,拥有完善的生态系统(如Spring全家桶)和高薪岗位需求(如后端开发、大数据工程师)。Java的语言特性包括跨平台性("
2025-05-14 13:24:11
269
原创 MySQL表的增删改查(基础)CRUD
D: delete 删除数据一.新增(create):语法:insert into + 表名 {column,column...}values (value_list,value_list...).1.单行数据全列插入:value_list数量必须和定义表的列的数量及顺序一致EX:在学生表(id,name)里新增学生:阿三。insert into student values (1,'阿三');2.单行数据指定列插入:value_list数量必须和指定列数量及顺序一致。
2025-01-20 23:12:57
691
原创 MYSQL数据库基础
1.1: 创建数据库: create database if not exist + 数据库名称。5. decimal(M,D): 双精度,M指定长度,D表示小数点位数。drop database if exists 数据库名称。1.BIT(对应java中的Boolean),二进制数。2.tinyint(1字节,对应java中的byte)3. int (4字节,对应java中的integer)1. 显示当前数据库: show databases;4.bigint(8字节,对应Java中的long)
2025-01-15 18:11:51
354
原创 代码随想录算法训练营第4天| 24.两两交换链表中的节点 | 19 删除链表的倒数第N个节点 | 面试题02.07.链表相交 | 142.环形链表
1.我们可以利用快慢指针法,通过fast和slow ,fast一次走两步,slow一次走一步,如果两者在途中相遇,说明有环。此时在头节点定义一个节点tmp1 ,相遇节点处定义一个节点tmp2,两者同时走,相遇的地方即为环形入口。假设一圈就相遇,即n = 1, 带入后 x = z,即快慢指针相遇的地方就是环形入口,fast走过的路程:x+n (y+z) -----fast在环内走了n圈。3.fast和slow同时移动,直到fast为空,删除对应的slow节点。我们要求的是头到环形节点的距离:即x。
2024-11-17 23:14:09
914
原创 代码随想录算法训练营第三天| 203.移除链表元素 707.设计链表| 206.反转链表
建议: 本题最关键是要理解 虚拟头结点的使用技巧,这个对链表题目很重要。思路:1.直接使用原来的链表进行删除操作。 2.设置一个虚拟头结点在进行删除操作题目链接:. - 力扣(LeetCode)视频链接:手把手带你学会操作链表 | LeetCde:203.移除链表元素_哔哩哔哩_bilibili文章链接:手把手带你学会操作链表 | LeetCode:203.移除链表元素_哔哩哔哩_bilibili具体实现:定义一个cur = head 的结点,遍历链表,每次遍历时 cur.val 和
2024-10-28 23:42:17
1057
原创 堆的基本概念和插入删除方法的介绍
1.1优先级队列:优先级队列是一种特殊的队列数据结构,每个元素都有一个与之关联的优先级,与普通队列不同,优先级队列中的元素是按照优先级顺序进行处理的,而不是简单的插入。特点:1.优先级:每个元素都有一个优先级。优先级可以是数值或是其他标识,通常较高的数值表示更高的优先级2.出队顺序:在优先级队列中,优先级高的元素会被先处理。最大堆:每个节点的值大于或等于其子节点的值。根节点是最大值。最小堆:每个节点的值小于或等于其子节点的值。根节点是最小值。
2024-10-27 12:16:49
1061
原创 二叉树的基本概念及运用
若不等, 递归遍历左树查找对应的值,创建新树left来接受每次递归的树,递归结束若左树最终不为空,返回左树,右数同理。判断当前节点是否为空,不为空,判断当前节点的左子树和右子树是否同时为空,为空,将leafsize++;=null, 遍历D的左子树,返回0,再遍历右子树,也返回零,此时。判断当前节点是否为空,不为空,判断root.val是否 == val ,以图为例,按照 左子树--> 根节点---> 右子树 的方式进行递归。2.判断k是否为1,为1,即为根节点,return1即可。判断当前节点是否为空。
2024-10-26 01:57:24
717
1
原创 代码随想录算法训练营第二天| 209 长度最小的子数组 59 螺旋矩阵|| 58. 前缀和 1.开发商购买土地
差值=∣(sum−horizontalcut)−horizontalcut∣=∣sum−2×horizontalcut∣差值=∣(sum−horizontalcut)−horizontalcut∣=∣sum−2×horizontalcut∣。同时更新slow指针和sum的值(slow++,sum减去slow位置的元素)。2.通过快指针来遍历,用sum来记录当前子数组的和,用result来记录子数组的最小长度(初始化为MAX_VALUE)。如图,遍历到拐角处时,将拐角处让给新的边(坚持了左闭右开的原则)。
2024-10-21 23:49:12
679
原创 代码随想录算法训练营第一天 | 704二分查找 27.移除元素 977.有序数组的平方
通过while循环lefttarget,说明target在mid的左侧,right = mid-1;当A[i] * A[i] > A[j] * A[j] ,则将 result[k--] = A[i] * A[i];当 A[i] * A[i]
2024-10-20 17:45:13
993
原创 二叉树的基本概念及简单使用
概念:树是一种非线性的数据结构,它是由n个有限节点组成一个具有层次关系的集合。注:1.2. 除了根节点外,每个节点被分为n个互不相交的集合 T1, T2, T3, T4.... , 每个集合又是一课 与树类似的子树。每棵子树的根节点只有一个前驱,可以有0或多个后继。3.树是的。4。
2024-10-16 21:38:20
410
原创 面试题:通过队列实现栈
请你仅使用实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop和empty实现MyStackint pop()int top()truefalsesizeis empty栈的基本性质:后进先出队列的基本性质:先进先出。
2024-09-29 23:17:26
344
原创 设计循环队列-------------
如果直接rear+1,rear =8,不能重新进入循环,超出范围,这时我们就要借助一个公式:rear/front = (rear+1)%length(数组长度)。不为空的话,由于rear位置插入新值后都会往后再走一步,要获取队尾的元素,需要将创建一个整形index来接收 rear-1 ,再通过elem数组返回index位置的值。设计你的循环队列实现。在元素入队(插入)之前,先判断队列是否已满(布尔方法 isFull(判断条件:rear的下一个元素是否为front)),如果已经满,返回false.
2024-09-27 17:46:22
1225
原创 队列的基本概念以及模拟使用 (1.2 版本)
只允许在一端进行插入数据操作,在另一端进行删除数据操作的线性表,队列具有先进先出FIFO 入队列 :进行插入操作的一端称为队尾.在尾插之前,判断链表是否为空(第一次插入,有效元素为0)如果是第一次插入,则队头队尾均为node。判断队列是否为空,如果为空,返回-1,否则返回first队头的值。:当调用出栈方法时,你首先需要检查队列是否为空(即。出队列:进行删除操作的一端称为队头。今天的分享就到这里,喜欢的老铁来个三联吧!如果队列不为空,你将执行出栈操作。,这表示队列已经为空。
2024-09-26 22:47:12
394
原创 栈的基本概念和及具体实现 1.2版本
获取栈顶元素(数组末尾元素)并将其赋给整形val,usedSize--,同时返回val.进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。判断栈是否为空,为空,抛出异常,最后返回数组的最后一个元素。压栈:栈的插入操作叫做进栈/入栈/压栈,入数据在栈顶。具体方法: 压栈、出栈、获取栈顶的元素。出栈:栈的删除操作叫做出栈,出数据在栈顶。判断当前栈是否为空栈,如果为空,抛出异常。今天的分享就到这里,求三连!(3)获取栈顶元素方法的实现。1.用于存储数据的数组。(1) 压栈方法的实现。一种特殊的线性表,其。
2024-09-26 00:42:31
381
原创 双向链表的基本结构及功能实现
创建新节点cur储存head,while循环遍历链表,设置curN节点为cur的下一个节点,在cur清除当前节点元素后,cur = curN, cur进入下一个位置即curN,进入下一次循环后curN再次后移。1.创建一个保存头节点的cur节点,以及一个用于记录整形的变量len,while循环,每次len++ 并更新cur节点,最后返回len的值。ListNode cur = head,while循环(index不为0)遍历cur进入下一个节点,同时index自减1,(3). 头节点、尾节点的定义。
2024-09-25 01:19:53
1329
原创 环形链表 1.2 版本
1.设置两个节点,一个fast(快节点)和slow(慢节点),fast速度是slow的两倍,则那在相遇之前,fast走的距离为slow的2倍。设置一个slow和fast的相遇点,假设起始点head与入口点的距离为X,相遇点到入口点的距离为Y,圆环的长度为C。3.有环,则将slow指针置为head,和fast进行遍历直到相遇的点,即为入环的第一个节点。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。,仅仅是为了标识链表的实际情况。如果链表无环,则返回。,则在该链表中没有环。
2024-09-24 22:45:03
137
原创 相交链表 1.2版本
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。如果A、B链表长度一样的,设置两个链表pl、ps(长的那一个和短的那一个),那我们让他们同时走,当ps与pl相遇(ps == pl)返回对应节点即可。
2024-09-24 15:56:24
439
原创 链表的回文结构 1.2
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true什么是回文?:回文是指从前向后读和从后向前读都相同的字符串或数字。例如,“abcba”或数字“121”都是回文。
2024-09-24 13:27:45
558
原创 链表分割 1.2版本
现有一链表的头指针 ListNode*,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。我们可以假设x为36,则小于36都排在前边,>36排在后面。则大致可以分为两个区域来存储数据:区域一存储小于36,区域二存储大于36.同时,不能改变数据顺序,那这里就要用到尾插法。将数据逐个插进去。
2024-09-24 01:19:02
752
原创 java之单链表的基本概念及创建
链表是一种存储结构,数据元素的是通过链表中的次序实现的。组成结构: 由一系列节点组成,每个节点包含数据域和指向下一个节点的指针。
2024-09-22 01:31:24
987
原创 java之杨辉三角问题
除了第一行和第二行之外,其他行的元素都是首尾元素为1且该行的其他元素都是上一行相邻元素之和。(2):设置两个整形int val1 和 int val2,获取上一行相邻的两个元素( i。2.创建一个只有元素1的列表(作为第一行)并将其添加到数组ret中。创建当前行的列表,同时通过add函数添加该行的第一个元素1。5.添加当前行的最后一个元素1:curRow.add(1)(3):创建一个整形列表preRow用来接收上一行的值。(1):从第二个元素for循环到当前倒数第二个元素。(2):通过创建整形列表。
2024-09-20 22:42:14
548
原创 包装类的介绍以及简单认识泛型
将 基本类型(int char ) 封装成对象的类。实现一个类,类中包含一个数组成员,使得数组中可以存放任何类型的数据,也可以根据成员方法返回数组中某个下标的值.拆箱:与装箱相反,将 包装类对象 转化为 基本类型 :Integer转化为int。在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。装箱:将 基本类型 转换位 包装类对象,如:将int转化为Integer。编程中一种允许在类、接口和方法中使用类型参数的特性,使得代码更具。在编译的过程当中,将所有的。
2024-09-16 12:51:25
470
原创 删除有序数组中的重复项
将 nums[ i] = nums[ j];这样新的元素就保留在了nums[i]中,最终即可得到。期间若 num[i]!=num[j] 说明出现了一个新的唯一元素,此时让 i自增1,设置一个索引i = 0,追踪去重后的元素,之后从 j = 1开始遍历数组,不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。函数应该返回新的长度。的前两个元素被修改为。
2024-09-16 10:18:10
274
原创 消失的数字:
实际数组的总和我们可以创建一个变量Actualsum,直接利用for循环将数组与Actualsum相加即可。以例1来看,,我们想要期望的总和不是1+2+3吗?而当前数组长度为3,直接利用等差数列和公式。n*(n+1)/2 得到期望总和。(总有一个零占了少的数字的位置,所以可以利用这一点来求)如何计算期望的总和呢?我们不妨利用数组长度来解决,找到缺失的那个整数,需要我们用。最后返回两和之差即可.
2024-09-15 18:07:54
342
原创 java之认识异常
throws关键字:处在方法声明时参数列表之后,当方法中抛出编译时异常,用户不想处理该异常,此时就可以借助throws。4. 调用声明抛出异常的方法时,调用者必须对该异常进行处理,或者继续使用throws。如果捕获了,由于捕获时类型不对,那就没有捕获到,这里的代码就不会被执行。定义:在程序执行期间出现的异常,称为运行时异常,也叫非检查类型异常。定义:程序在编译期间发生的异常,是编译器要求必须处理的异常。当异常被捕获到时,异常就被处理了,这里的后序代码一定会执行。对异常就可以正常处理,处理完成后,跳出。
2024-09-13 17:25:04
1406
原创 java之图书管理系统
同理,创建一个currentSize方法,调用getusedsize得到现有书籍数量,for循环书架上的每一本书籍,其名字与你借的书比较,若相同且isBorrowed方法为true(已被借出),否则将setborrowed设为true,借阅成功。同时,这些方法都要有一个共同的”工作“接口,用于显示各项的具体操作实现。跟上述同理,fori循环书架上的每一本书与你要删除的书名字比较,若相等,将i的值赋给pos,break退出。for循环,每次循环书架上的书,并构建一个新的book变量,用于保存你在书架上的书,
2024-09-09 23:50:19
581
原创 抽象类与接口
在bark例子中,父类的bark方法似乎并没有做出什么实际的工作,bark各种功能的实现都是由Animal的各种子类来实现的。8.如果一个类不想实现接口中的方法,那么此时的类便可定义为抽象类,但如果这个抽象类被继承,那么就要实现所有没有被实现的方法。但子类Dog和Cat都是具体的动物,可以实现各自的功能。现实生活中接口的例子有很多,如笔记本电脑上的usb接口,电源插座等。4.如果接口中的方法可以被static修饰,也可以有具体的实现。3.接口中的方法被default修饰,则可以有具体的实现。
2024-09-04 10:27:52
641
原创 继承与多态2
这里的a.eat(),当a引用Dog对象时,调用Dog中的eat方法。引用Cat对象时,调用Cat中的eat方法。,即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。,即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。注:这里重写了Animal的eat方法(override为重写).将一个子类对象经过向上转型之后当成父类方法使用。2.2 多态的概念:通俗来说,就是多种形态,(将子类给父类,从小范围到大范围的转变)而方法重写是子类与父类的一种多态性表现。
2024-08-26 21:41:59
340
原创 java之继承与多态 1
1.继承的概念:它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。1.4 子类的构造方法::子类对象构造时,需要先调用基类构造方法,然后执行子类的构造方法。如果访问的成员变量子类中无,则访问父类继承下来的,如果父类也没有定义,则编译报错。在子类方法中或者通过子类对象访问方法时,则优先访问自己的,自己没有时。2.成员方法相同时:优先访问子类,若子类中没有,否则访问父类。如果访问的成员变量与父类中成员变量同名,则优先访问自己的。如果访问的成员变量子类中有,优先访问自己的成员变量。
2024-08-26 20:57:48
669
原创 C语言贪吃蛇项目
Windows除了协调各应用的运行、分配内存、管理资源以外,它同时还是一个很大的服务中心,可以帮程序许多“忙”,这些函数简称为API函数,WIN32API也就是MicrosoftWindows。对于食物,就是在墙体内随机生成一个坐标(x坐标必须为2的倍数,防止卡墙),并且其坐标不能与蛇的身体重合,然后打印⭐。蛇的每个节点的x坐标都应该是2的倍数,否则可能会出现蛇的节点有一半在墙内,一半在墙外,坐标不好对齐。对蛇的初始化:假设其长度为5,蛇身的节点为⚪,在固定的坐标处出现连续的5个节点。
2024-04-30 18:40:51
1043
4
原创 单链表的介绍
如果我们只传递指向当前节点的指针,那么在函数内部修改指针的值只会传值调用,而不会影响调用者传递给函数的原始指针。其中,数据域用于存储元素的值,指针域用于指向下一个节点。遍历链表,next接收pcur的下一个节点,之后释放pcur后,将保存的next再赋给pcur,简而言之,创建一个第三方节点保存数据,让后遍历释放。顺序表的实现需要初始化并申请一块内存,而链表却不需要,这是因为链表存储的空间并不是连续的。创建新节点pcur ,遍历,如果当前节点符合,返回,否则继续,若最后未找到,返回NULL。
2024-04-21 20:43:19
385
1
原创 c语言顺序表的简单介绍
若不充足,判断空间是否为0,为0,赋予其4字节大小,否则给予其原储存量的2倍,用新的变量存储新的空间。利用realloc进行扩容,扩容是有可能失败的,故可创建一个临时指针数组变量进行存储。确保传入的指针ps 以及现存数据size 不为空(否则无意义),让后直接删改操作。将pos之后的数据往前移动一位,实现对pos的覆盖,size-1;将pos之后的数据全部往后移动一位,将pos的位置给x。
2024-04-15 20:49:23
308
1
原创 fseek 和 ftell 的工作原理
fseek的第二个参数是偏移量(offset) 该参数表示从起始点开始要移动的距离,该参数必须是long类型的值。fseek(fp,10L,SEEK_SET)//定位至文件中的第10个字节处。fseek(fp,-10L,SEEK_END)//从文件结尾处回退10个字节。//定位至文件起始位置。fseek的第一个参数是FILE*指针,指向待查找的文件。返回的是参数指向文件的当前位置距离初始位置的字节数。若一切正常,fseek返回0,否则返回-1。
2024-04-05 18:05:27
398
原创 关于内存函数的介绍
但是在重叠内存块这方面,memmove() 是比 memcpy() 更安全的方法。如果目标区域和源区域有重叠的话,memmove() 能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,复制后源区域的内容会被更改。如果目标区域与源区域没有重叠,则和 memcpy() 函数功能相同。函数作用:在 str2 复制 n 个字节到 str1。str 2 指向要复制的数据源。n : 要被复制的字节数。其中,str1用于指向存储复制内容的目标数组。从 str2 复制 n 个字符到 str1。
2024-03-27 15:56:30
472
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人