
java
文章平均质量分 55
小橙子Wu
前端开发工程师,热爱运动,期待代码水平越来越好。
展开
-
java后端web前端10套项目开发案例源码,毕设,期末作业
html,css,js,jquery期末作业项目毕设,SSM,springboot毕设,期末大作业,Vue项目毕设,大作业。原创 2022-11-22 11:36:46 · 3825 阅读 · 1 评论 -
【Java版数据结构】你还不会二叉树吗?本篇文章教会诸位二叉树的设计与实现
二叉树的类型:二叉树:至多有2个分支的结点组成的树叫做二叉树满二叉树:当其中所有结点的分支均为2时就是满二叉树;完全二叉树:当这棵树除了最底层外,剩下的部分全是满的,并且最底层的结点全集中在该层最左边的位置,那么这样的树可称为完全二叉树。二叉搜索树:当某一结点的左子树全部小于当前结点,且右子树全部大于当前结点,这样的树叫做二叉搜索树二叉搜索树的API往树里面添加元素从树中获取结点删除树中某一结点测试往树里面添加元素步骤:用了两个重载的put方法实现,第一个put方法用于根节点的初始化.原创 2022-01-21 17:09:28 · 455 阅读 · 0 评论 -
【java版数据结构】链式队列的设计与实现
队列是一种特殊的数据结构,就像在食堂排队打饭一般,它具有先进先出的特点,队列可用数组或者链表实现,这里我们选择用链表实现对列,由于java具有面向对象的特点,我们通过创建一个Queue的类来秒速队列,在Queue类内部创建一个Node类来描述队列存储的每一个结点。队列的成员变量和方法成员变量方法Node head 头结点Queue()构造方法int N 队列元素个数isEmpty()判断队列是否是空的Node class{}内部结点类size()返回队列元素个数.原创 2022-01-14 13:25:55 · 313 阅读 · 0 评论 -
【java版数据结构】求后缀表达式,逆波兰表达式的值
介绍:后缀表达式又称逆波兰表达式,是一种操作符总是位于其两操作数之后的表达式,一般数学中的表达式叫做中缀表达式,操作符处于两操作数中间,例如4+2,42,4-2,4/2,而它们转换成后缀表达式是42+,42,42-,42/。后缀表达式实现原理:遍历表达式,如果当前字符串是数字,则入栈,如果当前字符串是运算符,则从栈中取出两个元素进行相应的运算,最后将运算结果入栈,方便下一个的运算,最终栈中仅剩的一个元素就是后缀表达式最后的结果。public class ReversePolishNotation .原创 2022-01-14 13:08:11 · 279 阅读 · 0 评论 -
【Java版数据结构】括号匹配问题
括号匹配:简而言之是每一个右括号都有唯一的左括号与其对应。例如(上海(北京)(深圳)杭州)括号是匹配的,而上海(北京)(深圳)杭州)(上海(北京)(深圳)杭州((上海(北京)(深圳)杭州)是不匹配的。判断原理:当遇到左括号时就把左括号进栈,遇到右括号时就出栈,因为最后进栈的一个左括号,一定会与第一个出现的右括号配对步骤:1.遍历带括号字符串的每一个字符2.如果字符是左括号,则进栈,遍历下一个字符3.继续判断字符,如果是右括号则出栈4.判断出栈的内容是否为空,如果是,则证明没有配.原创 2022-01-11 21:25:24 · 1493 阅读 · 0 评论 -
【java版数据结构】链式栈的设计与实现
栈是一种用于存放数据的线性结构,具有先进后出,后进先出的特点(就像子弹上膛一般,压到弹匣最上部的子弹总会最先发射出去)一般栈可用数组或者链表实现,这里介绍的是用链表实现栈由于java具有面向对象的特点,我们通过创建一个类Stack来描述栈,并且通过创建内部类Node实现结点栈的成员及方法栈的结点类:判断栈是否是空的:返回栈的长度:遍历栈进栈:出栈:栈的结点类://内部结点类 private class Node{ private T item; priv.原创 2022-01-11 21:03:55 · 547 阅读 · 0 评论 -
【java版数据结构】死亡游戏约瑟夫避免自杀问题
介绍:有一天罗马人占领了犹太人的领地,39个犹太人与约瑟夫以及他的朋友躲到一个山洞中,39个犹太人决定宁愿死也不要被罗马人招降,于是它们决定了一个自杀方式,41个人排成一个圆圈,第一个人从1开始报数,依次往后,如果有人报到3,那么这个人就必须自杀,然后由他的下一个人重新从1开始报数,直到所有人都自杀身亡。然而约瑟夫和他的朋友并不想遵从,于是约瑟夫要他的朋友先假装遵从,他将朋友与自己安排在第16与第31个位置,从而逃过 了这场死亡游戏。问题转换: 41个人围坐一圈,第一个人编号为1,第二个人编号为.原创 2022-01-09 18:46:58 · 2868 阅读 · 1 评论 -
【java版数据结构】找到环形链表的入口
原理:我们先判断当前链表是否是环形链表,定位到快慢指针相遇的结点,这是创建一个temp指针指向第一个元素,用temp指针和慢指针继续遍历链表,temp指针和慢指针相遇的结点就是环形链表的入口数学分析:为什么在快慢指针相遇之后,用temp指针和慢指针去遍历链表时,相遇的结点就是环形链表的入口呢? //找出循环链表的入口 public static Node getEntrance(Node first){ //判断链表是否有环 //定义两个快慢指针 .原创 2022-01-09 16:15:24 · 796 阅读 · 1 评论 -
【java版数据结构】判断单链表是否有环
环形链表原理:前文介绍了快慢指针的应用,同时我们也可以通过快慢指针来判断当前链表是否有环(快慢指针是否相遇)。假如把链表比作一条跑道,链表中有环,那么这条跑道就是一条环形跑道,两个速度不一样的人在上面奔跑,那么这两个人迟早会相遇。第一步:定义两个快慢指针第二步:快指针的步长是2,慢指针的步长是1第三步:用这两个指针去遍历链表第四步:判断快慢指针在遍历过程中有没有相遇,若相遇,则说明是环形链表,未相遇,则说明是普通的单向链表注意的点:判断两指针是否相遇时,不应该使用fast.item.equa.原创 2022-01-09 15:45:04 · 832 阅读 · 0 评论 -
【java版数据结构】快慢指针找单链表中间值
链表不像顺序结构的数组那般可通过指定的下标访问中间值,我们通过指定一个快指针(步长为2,指针每次往下移动两位),一个慢指针(步长为1,指针每次往下移动一位),当快指针遍历完整个链表时,慢指针刚好指向链表的中间元素,以此原理,我们也能找到链表中的其他结点。原理:这就类似时间相同,速度和路程成正比,快指针的速度是慢指针的两倍,当快指针走完全程(单位1)时,慢指针刚好走到全程的1/2图片描述:为了防止空指针异常,以及当链表个数是偶数,该方法也适用,我们在遍历快指针时加上了一个安全验证,快指针本身不为.原创 2022-01-07 23:20:13 · 883 阅读 · 1 评论 -
【java数据结构】双链表的设计与实现
双链表介绍:双向链表也叫双向表,是链表的一种,它由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域用于存放数据,其中一个指针域用来指向后继结点,另一个指针域用来指向前驱结点。链表的头结点的数据域不存放数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一个真正存储数据的结点。按照面向对象的思想,我们需要设计一个类来实现双向链表,由于结点是属于链表的,所以我们把结点类作为链表类的一个内部类来实现目录双链表的四个成员变量结点类的实现双向链表的构造方法在双链表尾部添加元素在指定.原创 2022-01-05 21:43:27 · 476 阅读 · 0 评论 -
【java版数据结构】单链表的设计与实现
介绍:链表是一种物理存储单元上非连续,非顺序的存储结构,其物理结构不能表示元素的逻辑顺序,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列的结点组成,并且每个结点在运行时动态生成。而单链表,顾名思义是单方向的链表,本文章实现的单链表包括一个头结点head,一个记录链表长度的N,以及若干个数据结点,数据结点由一个数据域ite,和一个指向下一个结点的指针域next组成。头结点是链表的入口,链表第一个存储的数据元素,我们规定下标为0;在java中,一切皆对象,所以我们单链表的实现也.原创 2022-01-05 21:04:41 · 394 阅读 · 0 评论 -
【java学习笔记】JSP之----------EL表达式语言
目录EL的基本使用EL的进阶使用EL的介绍:EL全称 Express Language 表达式语言,重要功能是获取jsp页面的数据因为原生的jsp 获取数据 操作繁琐,于是有了 EL表达式,EL表达式与JSTL标签库配合,就能打造出一个不错的完整web项目。EL的基本使用EL的使用:从四大域中获取数据从指定域中获取数据从请求参数中获取数据从四大域中获取数据:可以看到我们在pageContext中存入了name=pageContext的信息,如果我们通过java代码读取,那将会比较繁原创 2021-11-29 21:19:32 · 297 阅读 · 0 评论 -
【java学习笔记】基于Cookie的Session会话技术(介绍+工作原理+流程分析+常见API)
目录session介绍session工作原理实现流程分析Session常见的API实现代码session介绍先前的博客中已经介绍了Cookie会话技术,在本文章中将介绍总结Session技术。Session技术是以Cookie技术为基础的,这也是这篇文章的标题,只要理解了它们之间的联系和区别,你就对B/S通信能有个大致的了解。和Cookie相比 session 是一种更安全的存储对象。Cookie的信息存储于客户端,用户可以随时查看和修改,而Session信息存储于服务器,用户不可见。Co原创 2021-11-22 19:02:15 · 1850 阅读 · 0 评论 -
【java学习笔记】会话与会话技术之Cookie---------------------CookieServlet与注册登录系统整合
实现结果:后台数据库用户信息旧用户登录:可以看到先前Cookie中已经保存了adamin的Cookie信息再次重新登录:新注册一个用户用于检测首次登录用新注册的用户名去登录提示首次访问可以看到新增了一个adamin3的Cookie项目介绍:在上周的博客中我们完成了一个简单的登录注册(servlet+jdbc+jsp)系统,在这篇博客中我们将在登录注册系统的基础上加上Cookie会话技术,来提示用户登录系统的时间,如果用户是第一次登录,则提示:“欢迎首次登录”,用户不是首次登录原创 2021-11-16 20:51:58 · 355 阅读 · 0 评论 -
【java学习笔记】会话与会话技术之Cookie-----------------用Cookie实现提示用户上次登录时间
目录Cookie概念Cookie原理代码实现实现效果:Cookie概念对Cookie的理解:直面意思是饼干点心的意思,但在计算机网络层面上看,完全是不一样的概念,Cookie是一项可以保存 访问服务器的某一用户的信息的技术Cookie的内容:Cookie原理首先我们要知晓的知识点是:Cookie数组是存在于发送请求的Web页面中的,而Cookie数组里面的Cookie是第一次服务器给出响应时,新创建的并发送给浏览器的(通俗来说就是 你到一家店去做美容,你刚好是新用户,店老板说办个原创 2021-11-16 19:56:57 · 4323 阅读 · 0 评论 -
【java版数据结构】看完数据结构的顺序结构后,紧接着去实现ArrayList的底层(150行代码,数组扩容,增删改查,但未实现迭代器)
实现效果:需求分析:可以看到ArrayList容器有很多功能,在指定位置添加元素,在容器末尾添加元素,获取指定位置的元素,获取容器的大小,清空容器的元素,判断容器是否是空的,删除指定位置的元素,删除某一元素等等现要求同学们把容器的主要功能用数组实现思维:我们都知道,数组是不可变的,一个数组在被创建的时候,其长度就已经固定住了,不能再改变,但是我们想要往数组里面不断的添加元素,实现ArrayList的效果,这时候我们可以用到数组扩容的思维,其主要思想是,新建一个比当前数组大的数组,将旧数组的原创 2021-11-13 17:41:19 · 619 阅读 · 1 评论 -
【项目配置学习笔记】启动Tomcat的常出现的错误及其解决办法
错误一:打开startup.bat之后小窗口一闪而过 解决方式:重新配置JAVA_HOME环境变量如下(只需要配置到jdk文件目录即可)实现:在浏览器输入https://localhost:8080,或者https:127.0.0.1:8080或本机ip地址:8080Tomcat的打开方式:1.找到tomcat服务器的bin目录下的startup.bat,点击2.使用命令行:找到bin目录,键入cmd,进入命令行,输入 catalina run (第二种方式会提示打不开Tomcat的.原创 2021-11-13 15:14:29 · 2634 阅读 · 1 评论 -
【java项目学习笔记】基于servlet+jsp+jdbc的注册登录系统
目录项目介绍准备工作前端实现后端实现项目介绍实现效果:首先进行注册,注册成功后自动跳转到登录界面,用先前注册的账号进行登录注册成功和登录成功的信息会在后端控制台打印用户注册的信息记录在后台数据库中ps:前端界面参考了QQ注册界面,只实现了皮毛需求分析:1.读入用户从前端页面传入的数据2.与数据库信息进行比对3.实现注册和登录实现功能:前端页面设计后端servlet程序逻辑实现连接jdbc准备工作准备工作:由于要用到数据库技术,我们这次选用C3P0连接池和d原创 2021-11-10 17:07:29 · 1628 阅读 · 4 评论 -
【Java版数据结构】Pat乙级1007(素数对猜想)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。输入样例:20结尾无空行输出样例:4结尾无空行核心思想:在找出所有的素数对之前我们要能够找出该范围内所有的素数(可以写在一个函数内部,后面原创 2021-10-14 16:49:01 · 99 阅读 · 0 评论 -
【Java版数据结构】Pat乙级1006(换个格式输出整数)
让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出 n。输入样例 1:234结尾无空行输出样例 1:BBSSS1234结尾无空行输入样例 2:23原创 2021-10-14 16:39:49 · 100 阅读 · 0 评论 -
【java项目学习笔记】Java学生管理系统(纯后端基础--增删改查)
学生管理系统在一所学校中,对学生人员流动的管理是很麻烦的,本案例要求编写一个学生管理系统,实现对学生信息的添加、删除、修改和查询功能。每个功能的具体要求如下:系统的首页用于显示系统所有的操作,并根据用户在控制台的输入选择需要使用的功能。查询功能用户选择该功能后,在控制台打印所有学生的信息。添加功能用户选择该功能后,要求用户在控制台输入学生学号、姓名、年龄和居住地的基本信息。在输入学号时,判断学号是否被占用,如果被占用则添加失败,并给出相应提示;反之则提示添加成功。删除功能用户选择该功能后,原创 2021-09-27 09:39:32 · 5555 阅读 · 3 评论 -
【项目配置学习笔记】IJ如何调试
调试步骤先设置断点shift+alt+f9打开调试退出调试先设置断点在代码最左侧左击shift+alt+f9打开调试箭头分别表示,越过一条语句调试,进入内部,进入,退出内部退出调试点击关闭即可原创 2021-09-06 11:18:46 · 1050 阅读 · 0 评论