JavaSE
文章平均质量分 91
JavaSE基础语言
听雨7x
recognize the truth of life and still love it.
展开
-
浅析Java中的泛型
hello !大家好!今天的主题就是:泛型。在使用集合类时,大家就已经接触到泛型了,那就是每个集合类后面的尖括号<>,这样一对尖括号,在java中就称为泛型。那么泛型这一个点,我们又该知道多少呢?我们往下看!文章目录一、泛型的使用二、泛型类的定义-类型边界三、类型擦除四、泛型类的使用-通配符五、泛型方法六、泛型的限制一、泛型的使用前面我们学集合的时候,简单的说过泛型的使用。如下:ArrayList<Integer> list = new ArrayList<>(原创 2021-11-07 15:45:28 · 1266 阅读 · 8 评论 -
5千字长文,深度总结HashMap底层实现&面试题【收藏】
哈喽,大家好!!!今天的主题:HashMap反观整个Java的集合框架,我们讲了ArrayList、LinkedList、Stack、Queue、Deque、PriorityQueue等等集合,以及它们背后所对应的数据结构,今天我们来看一下java集合中,最为重要的,也是最常用的一个集合:HashMap。它的重要性,毋庸置疑,网上随意找一篇面经,几乎都会问到HashMap的底层实现、哈希冲突该怎么办?…… 这里我们就不细说了,直接进入主题。文章目录一、认识HashMap二、哈希函数1、哈希函数的概念2原创 2021-11-03 17:59:13 · 1086 阅读 · 13 评论 -
进阶JavaSE-PriorityQueue优先级队列
大家好。好久不见,今天我们接着上次讲完List接口以及List底层所实现的一些容器。今天我们来讲一下Java中的另外一个容器:优先级队列!这个容器,底层是一个堆,那么具体什么是堆?什么是优先级队列?我们往下看!!!一、堆的概念堆,实则就是一颗二叉树的抽象,堆在底层实现,是用一个数组来存储数据的。堆有两种:大根堆小根堆大根堆:在一颗二叉树中,堆顶的元素是整课树中最大的,对于每颗子树而言,也是如此。小根堆:在一颗二叉树中,堆顶的元素是整棵树中最小的,对于每颗子树而言,也是如此。上图就是两种堆原创 2021-10-22 17:12:19 · 1370 阅读 · 12 评论 -
进阶JavaSE-三大接口:Comparator、Comparable和Cloneable。
进阶JavaSE-三大接口:Comparator、Comparable和Cloneable。Comparable和Comparator这两个接口很相似,都是用于比较大小的接口。在我们写一些数据结构的算法题时,用的比较多,具体是怎么用的,我们接着往下看。Comparator接口:public interface Comparator<T> { public int compare(T o1, T o2); //比较方法}Comparable接口:public interfac原创 2021-10-12 17:22:28 · 417 阅读 · 7 评论 -
进阶JavaSE(一)- List、栈、队列
在前面,我们讲完了JavaSE的基础语法部分,现在我们就来开始学习JavaSE最后很重要的一部分:集合。这一块,面试官也会经常问到,比如JDK1.8后,HashMap底层是如何实现的…… 话不多说,我们来看一下今天的主题:List。 在讲解List之前,我们先来看一下JavaSE集合的大致框架,分别包含了哪些集合,以及每个集合背后所多余的数据结构是什么。以上全部就是JavaSE中的所有集合,后面的文章都是围绕这张图进行讲解。前期文章:前言- IDEA如何配置?让你敲代码更轻松!初识Java语言原创 2021-10-06 16:19:37 · 1024 阅读 · 14 评论 -
初识Java语言(八)- 异常
在前期所有的文章中,我们都是假设用户输入的参数都是有效的,自己写的代码都是没有bug的。但是在现实生活中,这并不实际。比如:登陆某一个账户,密码错误或账号错误等等,如果确实是错误了,应该向用户提示这类信息,并在密码错误后,应该进行适当的处理。所以出现了异常。使用异常应该做到以下几点:向用户通知错误保存所有的工作允许用户妥善地退出程序对于异常情况,例如,可能造成程序崩溃的错误输入,java使用了一种称为异常处理的错误捕获机制。具体到底是什么?我们往下看!!!前期文章前言- IDEA如何配置原创 2021-09-25 09:07:48 · 428 阅读 · 12 评论 -
初识Java语言(七)- String、StringBuilder和 StringBuffer三者之间的区别和联系!!!【建议收藏】
当我们学习了Java中的继承和多态后,现在我们就可以来学习一个非常重要的东西:String字符串,以及还有StringBuilder和StringBuffer两兄弟。我们直接发车了!!!前期文章前言- IDEA如何配置?让你敲代码更轻松!初识Java语言(一)- 基本数据类型及运算符初识Java语言(二)- 方法以及递归初识Java语言(三)- 数组初识Java语言(四)-类和对象初识Java语言(五)- 包和继承初识Java语言(六)-多态、抽象类以及接口文章目录一、StringStr原创 2021-09-20 13:18:30 · 603 阅读 · 17 评论 -
初识Java语言(六)- 多态、抽象类以及接口
前些天,我们简单地讲解了继承的概念,也理解了继承是什么。本期文章,我们将在继承的基础之上,引申出一个思想:多态。那么,多态是什么?本期文章概念居多,读者不妨多看几遍,或许会有不同的理解。我们往下看。前期文章:前言- IDEA如何配置?让你敲代码更轻松!初识Java语言(一)- 基本数据类型及运算符初识Java语言(二)- 方法以及递归初识Java语言(三)- 数组初识Java语言(四)-类和对象初识Java语言(五)- 包和继承文章目录一、多态向上转型动态绑定向下转型深入理解多态面试题总结原创 2021-09-16 15:34:36 · 264 阅读 · 9 评论 -
初识Java语言(五)- 包和继承
前面,我们讲了Java中的一些基本的特征,与其他语言也有很多的相似之处。本期文章,我们来看一看在Java中包的概念和继承的概念。大家坐好,我们发车了!!!前期文章:前言- IDEA如何配置?让你敲代码更轻松!初识Java语言(一)- 基本数据类型及运算符初识Java语言(二)- 方法以及递归初识Java语言(三)- 数组初识Java语言(四)-类和对象文章目录一、包包名类的导入与静态导入在包中添加类包访问权限二、继承类、超类与子类重写方法(override)子类构造器protected关键字原创 2021-09-11 14:40:15 · 1449 阅读 · 26 评论 -
平衡二叉树(AVL树),原来如此!!!【爆肝力作 建议收藏】
文章目录一、认识平衡二叉树二、插入操作三、删除操作一、认识平衡二叉树前几天,我们将搜索二叉树(也称为二叉排序树)讲解了,重点讲了搜索二叉树的插入和删除操作,由特别是删除操作,是比较难的知识点。现在我们将继续在搜索二叉树的基础之上,学习一颗新的数,那就是大名鼎鼎的平衡二叉树(AVL树)。在学习平衡二叉树前,同学们需掌握了搜索二叉树的基本操作之后,再来看平衡二叉树的知识,就会简单一点哦!!!前期文章:二叉树的概念以及搜索二叉树。本期文章:GitHub源码链接。我们前面讲了搜索二叉树的定义:一个节点的.原创 2021-08-23 09:58:45 · 1028 阅读 · 8 评论 -
二叉树的概念以及搜索二叉树【建议收藏】
hello, everyone. Long time no see. 本期文章,我们主要讲解一下二叉树的相关概念,顺便也把搜索二叉树(也叫二叉排序树)讲一下。我们直接进入正题吧!GitHub源码链接文章目录一、二叉树的概念二、搜索二叉树一、二叉树的概念为什么要使用二叉树?为什么要用到树呢?因为它通常结合了另外两种数据结构的优点:一种是有序数组,另一种是链表。在树中查找数据项的速度和在有序数组中查找一样快,并且插入数据项和删除数据项的速度也和链表一样。下面,我们先来稍微思考一下这些话题,然后再深原创 2021-08-20 22:11:08 · 2293 阅读 · 3 评论 -
单调栈与队列的概念与练习!【建议收藏】
本期文章,小编给大家介绍一下数据结构中很重要的两个角色,那就是栈与队列两兄弟。文中若有欠妥之处,还望指正!感谢!文章目录一、栈与队列的概念1、栈2、队列二、栈的运用题目:逆波兰表达式求值问题三、单调栈运用题目:最大子矩形面积三、队列的运用题目:生成窗口最大数值一、栈与队列的概念1、栈栈是限定仅在表尾进行插入和删除操作的线性表。 栈的插入操作叫做:压栈或者入栈,栈的删除操作叫做 : 弹栈或者出栈。栈的特点是先进后出。什么意思?如图:我们可以将栈想象为一个杯子,假设我先将“冰红茶”倒入,再将“绿原创 2021-08-14 20:40:35 · 202 阅读 · 5 评论 -
面试官常考的15道链表题,你会多少?【建议收藏】
面试官常考的15道链表题,你会多少?链表题,在平时练起来感觉难度还行。但是在面试的过程中,在那种氛围,面试者很容易因为紧张,导致面试表现不好。所以这里总结了一些链表最常见的练习题。反复练习,孰能生巧。希望能帮助到大家!!!题目在线OJ链接难度反转单向链表牛客网易反转部分单向链表牛客网易在链表中删除倒数第K个节点牛客网易环形链表的约瑟夫环问题牛客网中判断一个链表是否为回文结构牛客网易将单链表按某值划分左边小、中间等于、右边大于牛客原创 2021-08-08 23:02:08 · 1280 阅读 · 8 评论 -
初识Java语言(四)- 类和对象
初始java语言(三)- 类和对象文章目录初始java语言(三)- 类和对象一、类与对象的概念1、类2、对象3、面向过程与面向对象的区别二、类的成员1、字段2、方法3、static关键字三、自定义类1、从构造方法开始2、用var声明局部变量3、显式参数与隐式参数4、认识引用往期文章:前言- IDEA如何配置?让你敲代码更轻松!初识Java语言(一)- 基本数据类型及运算符初识Java语言(二)- 方法以及递归初识Java语言(三)- 数组一、类与对象的概念1、类类(class)是构造对原创 2021-08-06 21:11:28 · 1228 阅读 · 8 评论 -
初识Java语言(三)- 数组
文章目录一、数组的概念二、声明数组三、访问数组元素四、数组拷贝与排序拷贝与排序深拷贝与浅拷贝的区别五、二维数组以及存储形式往期文章一、 初识java数据类型以及运算符(力作)二、 Java中方法的概念以及递归的讨论一、数组的概念数组是存储相同类型值的序列。数组是一种数据结构,用来存储同一类型值的集合。通过一个整形下标(索引)可以访问数组中的每一个值。二、声明数组数组的声明,分为两种: 静态的声明 和 动态的声明。静态: int[] arr = {1,2,3,4,5};动态: int原创 2021-08-05 11:51:49 · 1276 阅读 · 6 评论 -
Java中方法的概念以及递归的讨论
Java中方法的概念以及递归(汉诺塔问题)文章目录Java中方法的概念以及递归(汉诺塔问题)一、方法的基本使用1、方法的概念2、实参形参的关系二、方法的重载1、重载所能解决的问题三、递归的概念1、递归的概念2、递归的练习1、汉诺塔问题2、青蛙跳台阶3、青蛙跳台阶(进阶)(递归->动态规划)一、方法的基本使用1、方法的概念Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function)。对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,原创 2021-07-31 17:50:17 · 770 阅读 · 9 评论 -
初识java数据类型以及运算符(力作)
初识JavaSE数据类型及运算符文章目录初识JavaSE数据类型及运算符一、Java语言简介二、Java中的main方法三、数据类型1、整形2、长整形3、双精度浮点型4、单精度浮点型5、字符型6、字节型7、短整型8、布尔类型9、字符串类型字符串类型与整形之间的转换:字符串的+操作:不可变字符串:判断字符串是否相等:四、运算符一、Java语言简介Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征原创 2021-07-29 20:20:44 · 629 阅读 · 5 评论 -
IDEA如何配置?让你愉快地敲代码!!!
IDEA如何配置,让你愉快地敲代码!!!hello,大家好。本期给大家讲解一些IDEA的简单配置以及快捷键。若有不妥之处,还望指点,谢谢。文章目录IDEA如何配置,让你愉快地敲代码!!!一、进入设置二、设置主题1、设置主题2、 设置背景图片三、代码编辑区1、 Ctrl + 鼠标滚轮 改变编辑区字体大小。2、编辑区行号以及方法之间的分隔符3、默认字体大小(编辑区和控制台)4、注释字体颜色5、代码显示结构四、鼠标悬浮在代码上有提示五、自动导包和优化多余的包六、同一个包下的类,超过指定个数时,自动合并原创 2021-07-26 23:09:48 · 664 阅读 · 6 评论 -
二叉树的三种非递归遍历方式(附C、java源码)
详解二叉树的三种非递归遍历方式(附C、java源码)前言二叉树的递归遍历方式很简单,三种递归遍历方式的区别,只是printf放的位置不一样而已,这里就不多讲了。把前序遍历代码贴在这里://结点struct Node{ int val; struct Node* left, * right;};//前序遍历void pre(Node root) { if (root == null) return; printf("%d ",root->val);原创 2021-06-29 22:38:45 · 490 阅读 · 6 评论 -
字典树的算法实现(附Java源码)
字典树(前缀树)算法实现前言字典树,又称单词查找树,是一个典型的 一对多的字符串匹配算法。“一”指的是一个模式串,“多”指的是多个模板串。字典树经常被用来统计、排序和保存大量的字符串。它利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。字典树有3个基本性质:1、根节点不包含字符,其余的每个节点都包含一个字符;2、从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串;3、每个节点的所有子节点包含的字符都不相同。pass参数:代表从这个点经过的单词数原创 2021-06-28 20:02:39 · 363 阅读 · 0 评论 -
从此不再无序:八大排序算法总结(附Java、C源码)
前言大家好!今天小编整理一下面试官常考的一大热点题型:“排序”。下面的文章将重点的几大排序做了解析,我们从冒泡、选择、插入、归并、快速、堆、计数和基数这八大经典的排序算法讲起,比如:希尔排序,在插入排序的基础上做了优化,本文就不在讲解,博客网站上有很多文章!!!大部分公司都会注重查找和排序算法。应聘者可以在了解各种查找和排序算法的基础上,重点掌握二分查找、归并排序和快速排序。 还要对各种排序算法的时间、空间复杂度烂熟于心,了解它的优缺点。我参考的文章有:十大经典排序算法总结(Java实现+动画)原创 2021-06-08 11:22:44 · 467 阅读 · 11 评论