java篇
文章平均质量分 91
测试小姐姐~
不以物喜 不以己悲
展开
-
【数据结构】java中对象的比较equal、Comparble、Comparator【详解篇8】
文章目录java中对象的比较关于对象值相等的比较三种比较风格覆写基类的equal关于对象值大于、等于、小于的比较--基于自然顺序(按照<小于号的形式)基于Comparble接口类的比较关于对象值大于、等于、小于的比较-- 基于比较器比较基于Comparator接口类的比较三种比较方式对比java中对象的比较关于对象值相等的比较三种比较风格比较身份:==,通过等号来比较身份比较值:通过使用equals方法,它是Object这个祖宗类所提供的的一个方法,也可以自己写个类,重写equals,自原创 2021-10-25 08:49:50 · 1009 阅读 · 7 评论 -
【数据结构】七大基于比较的排序算法和原理-图文并茂【详解篇7】
文章目录排序概念稳定性一、插入排序插入排序的基本原理和过程插入排序的实现插入排序的性能分析折半插入排序(没讲)二、希尔排序希尔排序的基本原理和过程希尔排序的实现插入排序的性能分析三、选择排序选择排序的基本原理和过程选择排序的实现选择排序的性能分析四、双向选择排序(了解)五、堆排序堆排序的基本原理和过程堆排序的实现堆排序的性能分析六、冒泡排序冒泡排序的基本原理和过程冒泡排序的实现冒泡排序的性能分析七、快速排序(重要)快速排序的基本原理和过程快速排序的实现快速排序的性能分析非递归方式实现快速排序快速排序的优化.原创 2021-10-24 23:23:14 · 543 阅读 · 1 评论 -
【数据结构】堆和堆的应用之优先级队列【详解篇6】
文章目录队列的几种变化二叉树的顺序存储存储方式下标关系堆(heap)堆的核心操作向下调整向上调整堆的应用堆(优先队列)的基本操作内部原理java中的优先级队列堆的其他应用-TopK 问题如:给定100亿个数字,找出其中前1000大的数字一个典型的TopK问题队列的几种变化普通的队列:先进先出带优先级的队列(名字叫队列,本质上是一个特殊二叉树–>堆):按照顺序进,出队列的时候出优先级最高的元素,如果优先级相同,再按照先进先出的方式。带类型的队列(消息队列):这里的类型指的不是int,Stri原创 2021-10-22 09:08:08 · 300 阅读 · 0 评论 -
【数据结构】二叉树【详解篇5】
文章目录树型结构-概念重要概念了解概念树与非树(图)的差别树的表示形式二叉树(重点)概念二叉树的基本形态两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作二叉树的遍历二叉树的基本操作二叉树的层序遍历层序遍历判断一棵树是不是完全二叉树树型结构-概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:有一个特殊的节点,称为根节点,根节点没有前驱节点除根节点外原创 2021-10-19 09:18:22 · 243 阅读 · 0 评论 -
【数据结构】栈和队列常考面试题【详解篇4】
文章目录栈和队列常考面试题面试题1:有效的括号(括号匹配问题)面试题2:用队列实现栈面试题3:用栈实现队列面试题4:实现一个最小栈面试题5:设计循环队列栈和队列常考面试题面试题1:有效的括号(括号匹配问题)LeetCode-20有效的括号解题思路分析如图:代码示例1:package java2021_1004;import java.util.Stack;/** * Description:栈和队列面试题1:有效的括号(括号匹配问题) */public class Stack原创 2021-10-15 21:58:32 · 198 阅读 · 0 评论 -
【数据结构】栈和队列【详解篇3】
文章目录栈(Stack)概念栈的实现队列(Queue)概念队列的实现循环队列双端队列栈(Stack)栈和队列也是基于List来实现的,但是它的限制比List更严格,换句话说它提供的操作更少或者List比栈和队列要更灵活。对于栈(Stack)来说,它只支持3个核心操作:入栈、出栈、取栈顶元素,因为它具有的这些操作,所以他有一个特点叫做后进先出。对于队列(Queue)来说,它也支持3个核心操作:入队列、出队列、取队首元素,因为它具有的这些操作,所以他有一个特点叫做先进先出(类似于食堂排队,谁先来谁先打原创 2021-10-15 21:52:05 · 103 阅读 · 0 评论 -
【Java学习】认识异常【详解篇17】
文章目录认识异常初识异常什么是异常?防御式编程异常的好处异常的基本用法关于调用栈异常处理流程抛出异常异常说明关于异常的处理方式Java异常体系异常到底有多少种?自定义异常类认识异常初识异常我们曾经的代码中已经接触了一些 “异常” 了. 例如:除以 0代码示例:public class TestDemo1 { public static void main(String[] args) { int a=10/0; System.out.println(a);原创 2021-10-03 23:09:45 · 99 阅读 · 0 评论 -
【Java学习】认识String类【详解篇16】
文章目录认识String类如何定义一个字符串?字符串的比较字符串常量池字符串比较相等理解字符串不可变字符、字节与字符串字符与字符串字节与字符串字符串常见操作字符串比较字符串查找字符串替换字符串拆分字符串截取其他操作方法练习题1:首字母大写练习题2:实现字符串逆置练习题3:翻转字符串StringBuffer 和 StringBuilder认识String类C语言当中是没有字符串类型的,但是在Java当中是有字符串类型的。如何定义一个字符串?public static void main(String[原创 2021-10-03 22:41:44 · 97 阅读 · 0 评论 -
【Java练习】图书管理系统【详解篇15+完整代码】
文章目录要求介绍核心需求类的设计1、创建图书相关的类2、创建操作相关的类实现提供的接口,完成每一个操作AddOperation的实现BorrowOperation的实现DelOperation的实现DisplayOperation的实现ExitOperation的实现FindOperation的实现IOperation的实现ReturnOperation的实现3、创建用户相关的类4、一个程序的主函数(TestMain)要求介绍利用前面所学知识:使用类和对象、继承、封装、多态、抽象类、接口、顺序表进行一个原创 2021-10-03 08:39:10 · 1878 阅读 · 0 评论 -
【Java学习】面向对象编程(二)【详解篇14】
文章目录抽象类什么是抽象类?抽象类需要注意的点抽象类存在的作用是什么?接口什么是接口?实现接口的八大注意事项实现多个接口接口使用实例Clonable接口和深拷贝Cloneable接口抽象类什么是抽象类?普通类代码示例: class Shape {//此时这个Shape类里面的方法没有具体的实现 public void draw(){//如果一个方法没有具体的实现,那么这个方法就可以是一个抽象方法。 } }1.抽象方法:一个方法如果被abstract修饰,那么这个原创 2021-09-23 21:25:58 · 374 阅读 · 0 评论 -
【java学习】面向对象编程(一)【详解篇13】
文章目录包什么是包?如何创建包?创建包的注意事项常见的系统包包的访问权限控制继承继承的背景protected 关键字继承总结更复杂的继承关系final 关键字final关键字可以修饰常量final关键字可以修饰类final关键字也可以修饰方法组合多态向上转型发生向上转型的时机(形式)动态绑定方法重写理解多态向下转型super关键字在构造器(方法)中调用重写的方法(一个坑)多态总结【前言】本节学习的是面向对象编程,因内容较多所以分两部分来写,这一部分主要是对包、继承、组合和多态的学习。如发现错误,烦请指正!原创 2021-09-14 00:16:59 · 94 阅读 · 0 评论 -
十一道链表常考面试题【详解篇12】
文章目录链表常考面试题一、【Leetcode】203移出链表元素二、【Leetcode】206反转链表(链表逆置)三、【Leetcode】876 链表的中间结点四、【剑指offer】链表中倒数第k个结点五、【Leetcode】21合并两个有序链表六、【牛客网-程序面试宝典】 CM 11 链表分割七、【剑指offer】JZ56 删除链表中重复的结点八、【2016校招真题在线编程】OR36 链表的回文结构九、【Leetcode】141. 环形链表十、【Leetcode】142. 环形链表 II(求链表环的入口点原创 2021-09-11 10:26:22 · 317 阅读 · 5 评论 -
【java学习及数据结构初识】无头双向链表的实现【详解篇11】
文章目录什么是双向链表?无头双向链表的实现头插法尾插法任意位置插入,第一个数据节点为0号下标查找是否包含关键字key是否在单链表当中删除第一次出现关键字为key的节点删除所有值为key的节点得到单链表的长度打印双向链表清空链表什么是双向链表?双向链表是双向的,它也是由节点组成的,与单链表不同的是,双向链表每一个节点有三个域,分别是data域,next域,prev域,他们的位置没有严格的顺序要求,双向链表的节点也是有地址的。首先我们先看一下双向链表长什么样子,下面这个就是一个无头双向链表:n原创 2021-09-11 09:48:20 · 216 阅读 · 1 评论 -
【Java学习及数据结构初识】顺序表和链表【详解篇10】
文章目录一、线性表二、顺序表概念及结构接口实现顺序表接口的实现代码顺序表接口的测试代码测试打印结果三、链表什么是链表?带头结点的单向非循环链表带头节点的单向循环链表不带头节点的单向非循环列表如何产生一个节点?△头插法addFirst方法△尾插法addLast方法△任意位置插入addIndex方法查找是否包含关键字key是否在单链表当中 contains方法△删除第一次出现关键字为key的节点 remove方法△删除所有值为key的节点removeAllKey方法得到单链表的长度 size方法打印单链表dis原创 2021-09-02 21:57:09 · 303 阅读 · 3 评论 -
java 类和对象的学习【详解篇8】
文章目录一、类和对象的初步认识简单理解类和对象什么是类?什么是类的实例化?什么是对象?什么是面向对象?面向对象和面向过程的区别是什么?面向对象设计和开发二、类和类的实例化java当中如何定义一个类呢?三.类的成员成员变量学习内容如何使用字段呢?如何访问对象当中的实例成员变量呢?如何访问静态成员变量呢?成员方法的学习内容如何调用实例成员方法?如何调用静态成员方法?认识null字段就地初始化方法 (method)static 关键字观察以下代码, 分析内存布局四、封装什么叫封装?为什么要封装?private/原创 2021-08-26 01:00:04 · 206 阅读 · 0 评论 -
java 二维数组的基本用法【简单聊聊7】
文章目录二维数组二维数组的三种写法二维数组的使用二维数组的三种打印方式第一种打印方式:for循环第二种打印方式:for-each第三种打印方式:Arrays.deepToString()方法不规则的二维数组二维数组二维数组本质上也就是一维数组, 只不过每个元素又是一个一维数组基本语法数据类型[ ][ ] 数组名称 = new 数据类型 [行数] [列数] { 初始化数据 };二维数组的三种写法 public static void main1(String[] args) {原创 2021-08-16 01:49:48 · 256 阅读 · 1 评论 -
java 一维数组的基本用法【详解篇6】
文章目录什么是数组?如何创建数组?数组的使用Java中打印数组的方式初识 JVM 内存区域划分数组作为方法的参数理解引用类型认识null数组作为方法的返回值数组练习练习1:数组转字符串接练习1:实现一个自己版本的数组转字符串练习2:数组的四种拷贝方式(遍历数组元素,拷贝到另外一个新的数组)方式1:使用for循环进实现数组拷贝方式2:使用数组工具类Arrays.copyOf()实现数组拷贝方式3:借助System.arraycopy()进行拷贝方式4:调用对象的clone克隆方法画图理解是深拷贝、浅拷贝?练习原创 2021-08-16 01:30:40 · 516 阅读 · 0 评论 -
java中方法的使用和递归(三个维度讲递归)+递归练习【详解篇5】
文章目录方法什么是方法?方法定义的语法方法调用的执行过程实参和形参的关系没有返回值的方法方法的重载重载的规则递归从第一个维度来看递归:当n=3时从第二个维度来看递归:当n=4时从第三个维度来看递归:当n=4时:递归练习题练习1:递归求 N 的阶乘练习2:按顺序打印一个数字的每一位练习3:递归求 1 + 2 + 3 + ... + 10练习4:写一个递归方法,输入一个非负整数,返回组成它的数字之和.练习5:求斐波那契数列的第N项练习6:青蛙跳台阶问题练习7:汉诺塔问题方法什么是方法?方法就是一个代码片原创 2021-08-13 10:38:49 · 652 阅读 · 0 评论 -
java 程序逻辑控制+猜数字游戏+程序调试【详解篇4】
【前言】:本篇主要以代码举例的形式来讲解顺序结构、分支结构、循环结构以及输入输出的方式,最后写了一个猜数字游戏,并用画图的方式简单说了一下idea的调试方式,旁观者清,如发现有错误,请及时评论或私信指正,欢迎来访!!!文章目录顺序结构分支结构if 语句代码示例1:判断一个数是奇数还是偶数代码示例2:判段某一年份是否是闰年代码示例3:判断一个数字是正数还是负数switch语句代码示例4: 根据 day 的值输出星期循环结构while循环代码示例5:打印1~9的数字代码示例6:计算1~100的和代码示例7:计原创 2021-08-08 21:42:04 · 822 阅读 · 8 评论 -
Java的运算符和注释【详解篇3】
目录一.算术运算符二、 关系运算符三、逻辑运算符(重点)四、位运算符五、移位运算(了解)六、 条件运算符七、 运算符的优先级八、注释九、关键字一.算术运算符1.基本四则运算符+、-、*、\、%代码示例:注意/和%的使用public static void main1(String[] args) { //(1)int/int 结果还是int,想要得到小数需要使用double来计算 System.out.println(1原创 2021-08-08 16:13:33 · 207 阅读 · 1 评论 -
java的八种数据类型和一种引用类型及变量【详解篇2】
文章目录数据类型1.整型变量什么是字节?2.长整型变量3.双精度浮点型变量4.单精度浮点型变量5. 字符类型变量6.字节类型变量7.短整型变量8.布尔类型变量引用类型字符串类型变量(重点)变量变量的作用域变量的命名规则常量1.字面值常量2. final 关键字修饰的常量理解类型转换理解数值提升数据类型变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.我们所讨论的 “变量” 主要和我们的 “内存” 这样的硬件设备密原创 2021-07-31 14:24:42 · 551 阅读 · 8 评论 -
第一次使用IDEA?[简单粗暴型]
目录1.IDER的使用2.如何在IDEA上写程序3.如何设置代码的创建人、描述、用户、日期、时间?4.如何将IDEA背景设置成你喜欢的图片?1.IDER的使用【注】:按照图片步骤一步步走即可2.如何在IDEA上写程序3.如何设置代码的创建人、描述、用户、日期、时间?4.如何将IDEA背景设置成你喜欢的图片?...原创 2021-07-30 16:55:44 · 99 阅读 · 3 评论 -
Java概述及初识【详解篇1】
初识java1.java祖师爷:高斯林2.写java代码的时候要注意:①文件名需要和类名一样②每次写完代码,都需要保存,重新编译再运行③双引号引起来的是字符串④方法和函数是同一个概念,在java中,函数被叫为方法。⑤C语言没有字符串类型,但Java有字符串类型,叫String⑥注意java大括号的书写风格⑦代码自己的编码格式是UTF-8,但是java的编译平台(javac)的默认编码是GBK,所以在命令行编译代码的时候可以输入javac -encoding utf-8 文件名,进行解原创 2021-07-30 16:12:33 · 264 阅读 · 2 评论 -
【java学习及数据结构初识】 时间复杂度和空间复杂度的学习【详解篇9】
文章目录一.算法效率二.时间复杂度大O的渐进表示法实例1:请计算一下func1基本操作执行了多少次?常见时间复杂度计算举例实例2:计算func2的时间复杂度?实例3:计算func3的时间复杂度?实例4: 计算func4的时间复杂度?实例5: 计算bubbleSort的时间复杂度?实例6:计算binarySearch的时间复杂度?实例7:计算阶乘递归factorial的时间复杂度?实例8:计算斐波那契递归fibonacci的时间复杂度?三.空间复杂度实例1:计算bubbleSort的空间复杂度?实例2:计算f原创 2021-08-26 01:14:41 · 215 阅读 · 1 评论