自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于SpringBoot+SpringMVC+Mybatis的Java项目--幸运抽奖(lucky-draw)

1、项目背景2、项目功能用户登录用户注册学生管理3、项目使用技术开发平台: java 、idea、maven技术栈: servlet、Jackson、MySQL4、 项目的基本流程第一步:进行序列化、反序列化的操作作用:使数据和对象之间可以转换,保证数据的完整性第二步:进行数据库的操作第三步:设计http请求基类第四步:设计http请求基类i第五步:定义所需Dao类及实现与前端匹配的servlet完成所需功能5、存在缺陷1)2)3)6、项目源码由于篇幅问题此处不适宜

2020-09-08 20:38:29 1357 1

原创 简单的Java项目--学生宿舍管理系统

1、项目背景在学习完Java微博相关知识后,有了基础能力就想通过完成一个javaweb项目来巩固自己所学知识以及在具体开发过程中找出自己的不足,最开始想做的事项目就是学生成绩管理系统,考虑到在学习学校课程中最常见就是完成学生成绩管理系统,为了检验自己的能力学生成绩管理系统就不在考虑范畴之中,因此便完成了学生宿舍管理系统。2、项目功能用户登录用户管理学生管理寝室管理以上所示图片中的增、删、改功能均能实现。宿舍楼管理3、项目使用技术开发平台: java 、idea、maven技术

2020-09-08 19:56:49 16626 10

原创 MySQL事务

一、事务事务的概念事务(Transaction)是一个操作序列,该序列中的多个操作要么都做,要么都不做 是MySQL5.5之后的存储引擎所支持。事务,就是把一堆事情绑在一起做,都成功了才算完成,否则就恢复之前的样子 举例:银行ATM取钱,扣款成功后突然大停电,吐钱的操作还没做,这时候ATM机就要恢复到没取钱时候的状态,否则钱扣了还没拿到手,会发生错误。事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所做的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么

2020-08-19 21:31:10 148

原创 网络基础知识

1、网络发展1)第一代:远程终端连接20世纪60年代早期面向终端的计算机网络:主机是网络的中心和控制者,终端(键盘和显示器)分布在各处并与主机相连,用户通过本地的终端使用远程的主机。只提供终端和主机之间的通信,子网之间无法通信。2)第二代:计算机网络阶段(局域网)20世纪60年代中期多个主机互联,实现计算机和计算机之间的通信。包括:通信子网、用户资源子网。终端用户可以访问本地主机和通信子网上所有主机的软硬件资源。电路交换和分组交换。3)第三代:计算机网络互联阶段(广域网、Internet

2020-08-18 16:02:31 480

原创 MySQL中的索引

1、什么是索引索引是表的目录,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。同时索引也是一张表,该表中存储着索引的值和这个值的数据所在行的物理地址,使用索引后可以不用扫描全表来定位某行的数据,而是通过索引表来找到该行数据对应的物理地址。2、索引的优缺点a、优点:1)建立索引的列可以保证行的唯一性,生成唯一的rowId。2)索引可以有效缩短数据的检索时间,减少I/O次数。

2020-08-03 21:43:32 136

原创 设计循环队列

题目链接:https://leetcode-cn.com/problems/design-circular-queue/题目描述:设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操

2020-08-01 21:18:36 257

原创 用栈实现队列

题目链接:https://leetcode-cn.com/problems/implement-queue-using-stacks/题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1); queue.push(2); queue.peek(); /

2020-08-01 21:03:23 142

原创 用队列实现栈

题目链接:https://leetcode-cn.com/problems/implement-stack-using-queues/题目描述:使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。 你所使用的语言也许不支持队列。

2020-08-01 20:55:52 126

原创 有效的括号

题目链接:https://leetcode-cn.com/problems/valid-parentheses/题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例:示例1输入: “()”输出: true示例2输入: “(]”输出: false基本思路:遍历字符串依次取出每个字符。1、如果当前字符是左括

2020-07-31 21:38:07 99

原创 二叉树

1.、树型结构1)概念a、基本概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树 。b、重点概念节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一棵树中,最大的节点的度称为树的度;叶子节点或终端节点:度为0的节点称

2020-07-29 21:54:14 134

原创 操作系统及进程

1、冯诺依曼体系结构我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。我们所认识的计算机,都是有一个个的硬件组件组成:1)输入单元:包括键盘,鼠标,扫描仪,写板等2)中央处理器(CPU):含有运算器和控制器等3)输出单元:显示器,打印机等关于冯诺依曼,必须强调几点:1)这里的存储器指的是内存2)不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)3)外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

2020-07-28 20:07:20 184

原创 环形链表II

题目链接:https://leetcode-cn.com/problems/linked-list-cycle-ii/题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。基本思路;先使用快慢指针找到其交点,判断链表是带环的,在带环的情况下, 设定两个引用, 分别从链表头部和fast slow交点出发, 按照相同的速度同步往后走,当这两个引用指向同一对象时,此时这个对象就是环的入口。代码实现:/*class ListNode { int val;

2020-07-25 21:30:43 82

原创 环形链表

题目链接:https://leetcode-cn.com/problems/linked-list-cycle/题目描述:给定一个链表,判断链表中是否有环。基本思路:采用快慢指针的方法进行判断,设置快指针一次走两步,慢指针一次走一步,如果链表有环就必有两个指针指向同一节点的情况,例如在环形跑道上两个不同速度的跑步者在某一时间相遇。如果两个指针没有出现指向同一节点的情况则此链表无环。代码实现:/*class ListNode { int val; ListNode ne

2020-07-25 20:58:38 68

原创 两个链表的第一个公共结点

题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/?utm_source=LCUS&utm_medium=ip_redirect_q_uns&utm_campaign=transfer2china题目描述:输入两个链表,找出它们的第一个公共结点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5],

2020-07-24 20:23:38 115

原创 链表的回文结构

题目链接:https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?题目描述:对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1返回:true基本思路:定义一个size方法,返回链表长度,1)、先找到 A 链表的中间节

2020-07-24 19:49:25 159

原创 删除链表中重复的结点

题目链接:https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef?题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如:链表1->2->3->3->4->4->5 处理后为 1->2->5基本思路:定义一个带傀儡节点的新链表以返回结果,循环遍历原链表如果原链表中当前节点是否为重复节点,如果不为重复节点,将当前

2020-07-23 21:25:49 155

原创 链表分割

题目链接:https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?题目描述:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。基本思路:创建两个新链表,遍历原链表并将原来的链表的值和给定值x进行比较,比x小的采用尾插法插入到带傀儡节点为smallHead的新链表

2020-07-23 20:46:19 200

原创 合并两个有序链表

题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/description/题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4基本思路:代码实现:/*public class ListNode { int val;

2020-07-23 20:31:44 85

原创 链表中倒数第k个节点

题目链接:https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?题目描述:输入一个链表,输出该链表中倒数第k个结点。基本思路:采用两个指针,这两个指针的位置相差k-1个距离,当快指针走到最后一个节点的时候,慢指针指向的位置就是我们要的倒数第k个节点了。代码实现:/*public class ListNode { int val; ListNode next = null; ListNod

2020-07-17 21:02:49 132

原创 链表面试题:链表的中间结点

题目链接:https://leetcode-cn.com/problems/middle-of-the-linked-list/description/题目描述:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 :输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans

2020-07-09 21:06:58 213

原创 Java基础语法:12.反射,枚举,Lambda的使用

一、反射1、定义Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。2、用途a、在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法 。b

2020-06-29 21:52:42 184

原创 Java实现反转一个单链表

题目链接:https://leetcode-cn.com/problems/reverse-linked-list/题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL基本思路:1、我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。第二个指针 cur 指向 head,然后不断遍历 cur。2、每次迭代到 cur,都将 cur 的 next

2020-06-26 21:47:51 324

原创 Java实现删除链表中等于给定值 **val** 的所有节点。

题目链接:https://leetcode-cn.com/problems/removelinked-list-elements/description/

2020-06-23 14:23:29 209

原创 猜数字游戏

学习一门知识,最重要的是培养自己对这方面的兴趣,兴趣是学习的动力!分享一个简单的猜数字游戏的代码吧!如果有什么出错的地方,请指正。程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>int Menu() { printf(...

2020-06-22 20:12:24 151

原创 Java基础语法:11.认识异常

一、 异常的背景初识异常我们曾经的代码中已经接触了一些 “异常” 了. 例如:除以 0System.out.println(10 / 0);// 执行结果Exception in thread "main" java.lang.ArithmeticException: / by zero//==================================================================//数组下标越界int[] arr = {1, 2, 3};Syst

2020-06-14 22:14:34 107

原创 Java基础语法:10.认识 String 类(2)

五、 字符, 字节与字符串六、字符串常见操作七、 StringBuffer 和 StringBuilder

2020-06-13 21:12:28 130

原创 Java基础语法:10.认识 String 类(1)

一、创建字符串常见的构造 String 的方式:// 方式一String str = "Hello Bit";// 方式二String str2 = new String("Hello Bit");// 方式三char[] array = {'a', 'b', 'c'};String str3 = new String(array);String 还支持很多其他的构造方式, 我们用到的时候只需去查在java官方API中查看即可。注意事项:String 是引用类型。二、字符串比较相等

2020-06-01 21:26:16 104

原创 Java中的抽象类与接口区别

抽象类:接口:

2020-05-31 22:48:49 184

原创 区分Java中的方法重载(Overload)和方法重写(Override)

方法重载(Overload):方法重写(Override):

2020-05-26 14:39:06 339

原创 Java基础语法:9.面线对象编程(2)

四、多态

2020-05-26 11:14:22 241

原创 Java基础语法:9.面线对象编程(1)

在学习面向对象编程中主要掌握以下概念包、继承、组合、多态、抽象类、接口。一、包1、包的概念及作用包(package) 是组织类的一种方式,使用包的主要目的是保证类的唯一性。2、导入包中的类import java.util.Date;public class Test {public static void main(String[] args) {Date date = new Date();//或者使用java.util.Date date = new java.util.Date();

2020-05-20 22:06:27 90

原创 Java中顺序表和链表实现

一、顺序表的实现public class Seqlist { private int[] datas = new int[100]; private int size = 0; public int getSize() { return size; } public void display() { String result = "["; for (int i = 0; i < size; i++) {

2020-05-18 21:44:32 218

原创 Java基础语法:8.顺序表和链表

一、 线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。二、 顺序表1、概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长

2020-05-17 20:41:03 213

原创 Java基础语法:7.时间复杂度和空间复杂度

一、算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。二、时间复杂度1、 时间复杂度的概念时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定

2020-05-15 16:03:33 174

原创 Java基础语法:6.类和对象(2)

四、封装封装:把对象的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口。在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者。封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了,这样就降低了类使用者的学习和使用成本, 从而降低了复杂程度。1、private实现封装...

2020-05-14 22:22:16 171

原创 Java基础语法:6.类和对象(1)

一、类与对象的初步认知1、基本概念:类:事物的描述。是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。对象·:该类事物的实例。在Java中通过new进行创建。是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。2、面向对象概念面向对象就

2020-05-13 21:00:00 183

原创 数组练习

1、数组转字符串在这里插入代码片2、数组拷贝在这里插入代码片3、找数组中的最大元素在这里插入代码片4、求数组中元素的平均值在这里插入代码片5、查找数组中指定元素(顺序查找)在这里插入代码片6、查找数组中指定元素(二分查找)在这里插入代码片7、检查数组的有序性在这里插入代码片8、数组排序(冒泡排序)在这里插入代码片9、数组逆序在这里插入代码片10、数组数字排列给定一个整型数组, 将所有的偶数放在前半部分, 将所有的奇数放在数组后半部分例如:{1, 2

2020-05-12 22:16:00 221

原创 递归练习

1、按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)在这里插入代码片2、递归求 1 + 2 + 3 + … + 10在这里插入代码片3、写一个递归方法,输入一个非负整数,返回组成它的数字之和. 例如,输入 1729, 则应该返回1+7+2+9,它的和是19在这里插入代码片4、求斐波那契数列的第 N 项在这里插入代码片5、递归求 N 的阶乘在这里插入代码片6、实现代码: 求解汉诺塔问题汉诺塔问题:汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower)

2020-05-12 20:11:21 131

原创 Java基础语法:5.数组的定义与使用

一、数组基本用法1、 什么是数组数组本质上就是让我们能 “批量” 创建相同类型的变量,需要注意的是在 Java 中, 数组中包含的变量必须是 相同类型。2 、创建数组基本语法:// 动态初始化数据类型[] 数组名称 = new 数据类型 [长度] { 初始化数据 };// 静态初始化数据类型[] 数组名称 = { 初始化数据 };示例:int[] arr = new int[3]{1, 2, 3};int[] arr = {1, 2, 3};静态初始化的时候, 数组元素个数和初始

2020-05-11 21:14:45 181

原创 Java基础语法:4.方法的使用

一、方法的基本用法1、 什么是方法(method)方法就是一个代码片段. 类似于 C 语言中的 “函数”.意义:a .是能够模块化的组织代码(当代码规模比较复杂的时候).b. 做到代码被重复使用, 一份代码可以在多个位置使用.c. 让代码更好理解更简单.d. 直接调用现有方法开发, 不必重复写方法2、 方法定义语法基本语法:// 方法定义public static 方法返回值 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];}// 方法调用返回值

2020-05-10 20:52:25 233

空空如也

空空如也

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

TA关注的人

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