Java
文章平均质量分 69
Java
_Zebra
即使可能性很小,也要一直努力,无限接近于0的可能性永远不会是0
展开
-
顺序表和数组(易混淆),线性表,链表的区别与联系
首先,我们需要弄清楚逻辑结构和物理结构的概念逻辑结构:结构定义中是对操作对像的数学描述,描述的是数据元素之间的逻辑关系。例如,线性结构,树形结构,图状结构或网状结构。它们都属于逻辑结构。 物理结构:又称存储结构,是数据结构在计算机中的表示(又称映像)。例如,数组,指针。线性表线性表属于数据逻辑结构中的线性结构,如果是顺序存储,则是顺序表;链式存储就是链表链表线性表中的一种,它的存储结构是用任意一组存储单元来存储数据元素。所以它的存储结构可以是连续的,也可以不是连续的。一般我们说.原创 2021-11-04 23:12:24 · 2630 阅读 · 1 评论 -
Java~双向链表的基本操作图文详解_清晰易懂(含完整代码)
目录一.结点的定义二.双向链表的定义三.双向链表的操作1.头插法2.尾插法3.任意位置插入(第一个数据节点为0号下标 )4.查找是否包含关键字key是否在单链表当中5.得到单链表的长度6.打印单链表7.删除第一次出现关键字为key的节点8.删除所有值为key的节点单链表的基本操作详解:https://blog.csdn.net/qq_24016309/article/details/121004625一.结点的定义在c语言中,我们使用一个结构体来定义.原创 2021-11-05 16:02:33 · 868 阅读 · 0 评论 -
二叉搜索树(BST)的基本操作详解(代码全,含测试用例)
目录1.概念及其特性2.基本操作(1).查找(2).插入(3)删除3.总结1.概念及其特性二叉搜索树:1.是一个二叉树2.每个节点中保存关键字(Key)3.关键字需要具备比较能力4.每个节点遵守:左子树的所有Key < 其key <右子树的所有Key5.二叉树中不会出现相等的Key6.二叉搜索树的中序遍历一定是有序的2.基本操作我们需要一个结点类和一个二叉搜索树类结点类Node:public class Node {原创 2022-02-17 18:22:04 · 1175 阅读 · 0 评论 -
JavaWeb~如何使用Servlet,带你搞懂Servlet的整个服务流程
1.tomcat补充(1).tomcat启动报错的时候,检查1.8080端口号是否被占用(netstat -ano|findstr 8080) 2.JAVA_HOME是否配置出错(显然基本上不会) 3.tomcat目录/log/catalina.out,有时候是带日期的(2).tomcat部署web项目:(1).tomcat目录/webapps下,将项目复制进去,项目名就是文件夹名称(如果把war包放进去,tomcat启动后会自动解压)(2).docBase指定外部目录作为项目部署原创 2022-04-06 16:15:00 · 1253 阅读 · 1 评论 -
JavaWeb~前端基础,带你了解html常见标签,教你如何用maven配置web项目
三.前端开发(基础)1.前端三剑客:(1).html前端展示控件(页面内容)的资源文件(2).javascript:前端的脚本语言,写代码完成功能(3).css:前端样式文件javascript和css可以是单独的资源文件,也可以在html里边直接写2.tomcat简单使用|---bin|--startup.bat/shutdown.bat(启动、关闭的脚本)|--webapps 部署的路径(有一栋房子,要招租提供服务)|--项目(租户的名称,提供的各种服务)原创 2022-03-19 20:20:19 · 795 阅读 · 0 评论 -
JavaWeb~带你了解HTTP
1.Http原理(1).URL及协议正在上传…重新上传取消正在上传…重新上传取消url中的请求数据:请求路径?key1=value&key2=value21).网络数据传输,都需要使用同样的协议,双方约定好的统一规范(封装和解析数据格式规范)协议:数据格式的约定目标:学习http协议里面的格式,结合理论实操,进行程序调试http协议格式本身+http数据(数据中包含自己的数据格式)2).再次回顾URL域名:基于DNS解析为IP IP:网络中定位主机原创 2022-03-11 10:52:02 · 2754 阅读 · 0 评论 -
JavaWeb~Maven基础——什么是Maven?如何使用Maven?
目录一.什么是MavenMaven项目文件结构:二.Maven的配置文件——pom.xml三.依赖管理1.maven仓库2.在pom.xml文件中配置依赖四.生命周期及其相关命令五.Maven加载依赖包的顺序一.什么是MavenMaven:项目构建工具,打包工具...原创 2022-03-07 17:23:42 · 380 阅读 · 0 评论 -
Java自带的排序函数归纳总结
Java中强大的jdk给我们提供了许多现成能使用的排序算法......原创 2022-02-11 08:00:00 · 4604 阅读 · 0 评论 -
二叉树的一些递归和迭代的解题思路
一.递归(1).前中后序遍历实质其实都一样,主要是在对当前遍历的结点进行处理的时候的方式不同。前中后序遍历的方法可以参考本人另一博客https://blog.csdn.net/qq_24016309/article/details/122382593(2).经典递归求解如判断一棵树是不是平衡二叉树,对标LeetCode第110题思路:要一棵树是不是平衡二叉树,首先判断这棵树的左子树是不是平衡二叉树 再判断这棵树的右子树是不是平衡二叉树 判断当前左右子树的高度差是否 &原创 2022-01-09 16:27:36 · 800 阅读 · 0 评论 -
Java~二叉树的前中后序遍历的几种方式(递归法,迭代法,标记法等)
一.结点的定义首先这里先给出结点的定义,和leetcode树相关的题目都是这么定义结点的class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { th原创 2022-01-09 08:45:00 · 1574 阅读 · 0 评论 -
Java~实现简单的扑克牌,洗牌,发牌,玩捉鬼游戏(讲解详细,代码齐全)
首先一副扑克牌是54张,这里我们去掉大小王,也就是52张扑克牌有♣,♠,♥,◆,四种花色,每种花色对应1到13张一.扑克牌的定义1.牌的定义我们定义一个Card类,来表示一张扑克牌,上面有花色suit和牌的值rank。这里我重写了toString方法,方便我们打印每一张牌这里我还重写了equals方法,如果判断两张牌是否相同,会用到注意:如果没有重写equals方法,那么比较的就是两个Card是不是同一个对象,而不是花色和数值是否相同了,达不到我们想要的效果/** * .原创 2021-12-13 17:26:04 · 8816 阅读 · 0 评论 -
Java~equals和==的区别
==:1、等号两边是简单类型:直接比价是否相同2、等号两边是引用类型:比较的是引用是否相同equals:两边都是引用类型:比较的是这个引用指向的对象的内容是否相同有些情况需要自己来实现equals方法。自定义类型的比较形同与否。注:这些仅限在String类型中,String类型是重写过equals方法的非String类,例如StringBuffer类,或者其他自己写的类,没有重写equals方法,所以不比较内容。==和equals都是比较的内存地址...原创 2021-12-02 09:00:00 · 208 阅读 · 0 评论 -
Java~String,StringBuilder,StringBuffer的联系和区别
1.对于StringBuffer 和 StringBuilder,他们大部分功能都是相似的,StringBuffer的所有函数都加了关键字synchronized,属于线程安全操作,用于多线程当中;StringBuilder属于线程不安全操作,适用于单线程2.对于String和StringBuilder,String的+号,也就是字符串的拼接,在底层会被优化为StringBuilder。3.String的内容无法修改,而StringBuffer和StringBuilder的内容可以修改。频繁原创 2021-11-29 15:03:42 · 214 阅读 · 0 评论 -
Java实现简单的图书管理系统(讲解清晰,代码齐全,能正常运行)
目录实现的样子大致思路代码 (按照这个目录创建包)首先是book包下,有两个类book类bookList类然后是operation包下,有7个类和1个接口AddOperation类BorrowOperation类DelOperation类DisplayOperation类ExitOperation类FindOperation类ReturnOperation类IOperation接口最后是user包下,有3个类AdminUser类..原创 2021-11-23 16:53:53 · 34136 阅读 · 90 评论 -
Java~String类型空字符串和Null的区别以及判断方法
一.区别 null表示的是一个对象的值,而不是一个字符串。如声明一个对象的引用,String a=null。 “”表示的是一个空字符串,也就是说它的长度为0。如声明一个字符串String s=”“。 String a=null;表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间。 String s=”“;表示声明一个字符串类型的引用,其值为“”,也就是空字符串,这个s引用指向的是空字符串的内存空间。...原创 2021-11-22 14:00:38 · 7406 阅读 · 0 评论 -
Java~抽象类和接口区别与联系
抽象类和接口这两者有太多相同的地方,也有许多不相同的地方,我们在使用他们的时候一定要注意区分。抽象类抽象类就是为了继承而存在的。包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。class Flower extends Shape{ }注意点:(与普通类的区别)1.抽象类不能被实例化2.如果一个普通类继承了抽象类,那么这个普通类一定要重写抽象类当中的抽象方法3.抽象方法必须是public或者pro原创 2021-11-18 15:50:17 · 1023 阅读 · 0 评论 -
Java~this和super的区别
this代表的是当前对象的引用,super代表父类的引用this.data:访问当前对象的成员变量 this.fun():访问当前对象的成员方法 this():调用当前类的构造方法super.data:访问父类的成员变量 super.fun():访问父类的成员方法 super():调用父类的构造方法注意点:1.子类继承了父类,那么构造子类的时候,需要先构造父类,子类要先帮助父类构造。所以如果父类里面自己写了一个构造方法,原来的编译器自带的构造方法失效,在子类里面必须写一个构造方.原创 2021-11-17 22:30:05 · 468 阅读 · 0 评论 -
Java~重载和重写的区别
重载(overload)和重写(overwrite)之间究竟有什么区别呢?重载1.方法名称相同,参数个数或类型不同,返回值不做要求2.实现的范围:在一个类当中3.权限限制:没有限制重写1.方法名称相同,参数个数或类型相同,返回值也相同2.实现的范围:通过继承实现3.权限限制:子类重写的方法权限不能比父类的权限更加严格ps:方法的重载和重写都是实现多态的方式,区别在于,前者(重载)实现的是编译时的多态性(调用重载的方法,在编译的时候就根据传入的参数唯一确定了),原创 2021-11-17 21:42:26 · 238 阅读 · 0 评论 -
Java~什么是多态?如何使用并实现多态?
一.向上转型在理解什么是多态之前,我们要先来知道几个概念,首先我们要知道什么叫向上转型。向上转型顾名思义,把子类转型成父类,简单说就是用父类的引用引用子类的对象它有以下三种表现形式:直接赋值方法的传参返回值二.重写和重载不同,重写在继承时出现重载是在一个类里面多个同名方法,但是参数类型或者个数不相同。重写是子类重写父类的同名方法,参数类型,个数,返回值类型都必须完全相同。注意:被private修饰的方法,不能被重写被final修饰的.原创 2021-11-17 12:34:59 · 2019 阅读 · 0 评论 -
Java~链表回文判断详解(含完整代码注释)-快慢指针+反转链表
我们知道有字符串的回文,那如果有链表回文判断,我们又应该怎么做呢?链表的回文结构。[OJ链接]链表的回文结构_牛客题霸_牛客网这里题目要求的空间复杂度为O(1),那也就是让我们在原链表的基础上进行操作了。首先要想到使用快慢指针找到链表中间的结点,用了一个isOdd变量来判断链表个数的奇偶如图所示,如果是以fast == null 结束,则表示有奇数个结点,isOdd = true;如果是以fast.next == null结束,则表示有偶数个结点,isOdd = fal...原创 2021-11-03 20:48:42 · 195 阅读 · 0 评论 -
Java~链表反转/链表逆置的多种方法(超详细,含完整代码)
单链表的反转,有一个单链表,我们要如何对他进行反转呢?这里我们以leetcode——206为例子附上题目链接力扣https://leetcode-cn.com/problems/reverse-linked-list/目录一.头结点插入法二.栈三.三指针法一.头结点插入法1.先定义一个last用于表示反转后链表的第一个结点2.然后遍历单链表,每访问一个结点就将这个结点进行头插,头插到最前面,说白了就是把单链表分成了两个部分,一个是以head为首,一个是以cur为...原创 2021-11-03 20:25:29 · 8685 阅读 · 1 评论 -
Java有关成员变量,局部变量,静态成员变量,静态成员方法之间的一些注意点以及他们在JVM内存划分中的情况
一.静态成员方法1 .静态成员方法中不能调用非静态方法(相反可以),因为非静态方法是要用对象的引用来访问的,而静态方法是不依赖对象存在的。(比如本来你要调用静态方法,它不需要实例化对象,能够直接调用;但是你在静态方法里面加 了一个非静态方法,而非静态方法必须要实例化对象才能调用,从而引发矛盾)。2. 静态成员方法不属于对象,该方法的地址存放在方法区中。二.静态成员变量,局部变量,成员变量静态成员变量只有一份,它不属于对象,存放在方法区内 局部变量存放在栈中 普通成员变量存放在堆中..原创 2021-10-21 22:51:13 · 336 阅读 · 0 评论