![](https://img-blog.csdnimg.cn/90fc719c0c824721a4e98052093acda8.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
从零开始学Java
文章平均质量分 94
以实战为线索,从Java基础知识内容逐步深入至进阶内容,掌握Java学习系统化知识。内容结合大量代码实例,由浅入神全方位讲解,助力小白进阶Java大神
千锋教育官方
千锋立足于职业教育培训领域多年,现有教研讲师团队300余人。与国内20000余家IT相关企业建立人才输送合作关系,十年间累计培养超20余万泛IT人才,累计向互联网输出学科视频880余套,累积播放量超上亿次。
展开
-
Java使用redis-Redis是并发安全的吗?
本文主要介绍了 Redis 的并发安全性问题,并结合公司真实项目案例进行了详细分析说明。我们可以使用 Redis 的事务和乐观锁机制保证并发操作的安全性,从而避免数据的不一致性和安全性问题。在实际开发中,我们应该根据具体的应用场景选择适合的并发控制机制,确保数据的一致性和安全性。原创 2023-06-27 11:00:14 · 3295 阅读 · 0 评论 -
图文示例二叉树的编码实现过程
结点数据、左孩子子树、右孩子子树。//结点中存储的数据 Object data;//结点的左子树 Node left;//结点的右子树 Node right;//结点的高度 int height;//构造方法 Node(Object data) {} }通过本篇内容,就带大家一起学习了二叉树的Java编程实现,其实,前序遍历、中序遍历、后序遍历的编程实现原理都是相同的,只是遍历的顺序不同而已。原创 2023-06-26 09:30:05 · 3146 阅读 · 0 评论 -
树和二叉树详细讲解
树(Tree)是非线性结构的典型代表。在树型数据结构中,数据元素之间存在一对多的关系。树是由n(n>0)个有限结点组成一个具有层次关系的集合。当n=0时,称为空树。之所以把这些由层次关系的结点集合称之为树,主要是因为其在形状上看起来特别像一棵倒挂的树,即树根朝上,树叶朝下。首先壹哥给出树结构所具备的特点:(1). 树有且仅有一个特定的根(Root)结点。(2). 除了根结点,其余每个结点都有且只有一个直接前驱,这个前驱结点叫父结点(3). 树的每个结点都可以有多个后继,叫做子结点。没有后继的结点称为。原创 2023-06-25 09:25:12 · 5315 阅读 · 2 评论 -
线性结构中的栈、队列和串是怎么回事?
本篇文章中,向大家介绍了栈、队列和串三种新的线性数据结构。这三种数据结构相对数组和链表而言,操作比较简单,也比较容易理解,各位在学习时需要记住这几个不同数据结构特有的特点。在时间复杂度分析这个指标上,栈和队列的操作均为O(1)。原创 2023-06-20 11:25:23 · 23973 阅读 · 1 评论 -
关于线性结构中的双向链表如何实现的方法
在上一篇文章中,我们在介绍链表的种类时,曾经提到过双向链表。双向链表相比较于单链表,除数据域外,还具前和后两个指向指针。双向链表中的结构术语可以解释为:data:链表每个结点中存储的数据域;next:链表每个结点中包含的指向下一个结点地址的指针域;prev:链表每个结点中包含的前一个结点地址的指针域。Node prev;Node next;双向链表是一条真实存在的链表,由多个结点组成。头结点、尾结点。用另外一个变量size表示链表中元素的个数。链表中的第一个结点链表中的最后一个元素。原创 2023-06-20 09:26:21 · 45964 阅读 · 0 评论 -
5分钟学会数据结构中的线性链表
线性表可以说是一种最基础最简单的数据结构,它表示的是一种线性结构,比较常见的线性结构包括数组和链表等。所谓的链表,顾名思义,就是链式的线性表,即链表也是一种线性表。与数组不同的是,链表采用的是链式存储,这种链式结构是非连续、非顺序的内存空间。链表中的每一个独立的元素被称为结点,故链表由一系列的结点组成。假如我们需要存放一堆物品,但没有足够大的空间将所有的物品一次性放下,此时该如何既放下所有的物品,又能简单的找到所有的物品位置呢?原创 2023-06-12 09:43:29 · 4701 阅读 · 0 评论 -
从零开始学Java之查找算法有哪些?
二分查找法线性查找法插值查找法斐波那契查找法接下来分别给大家简单说一下这几种查找算法是怎么回事。二分查找法,是一种查询效率非常高的查找算法,又被称为折半查找法。该算法核心思路就是基于分治策略,将元素排序后,不断的进行折半查找,时间复杂度是O(log2N),空间复杂度是O(1)。至此,我们就把常见的几个查找算法给大家介绍完毕了,现在你有没有学会呢?二分查找法又被称为折半查找法,该算法核心思路就是基于分治策略,将元素排序后,不断的进行折半查找。原创 2023-06-08 18:55:32 · 519 阅读 · 0 评论 -
一文理清排序算法中的直接插入、快排和希尔排序的区别
接下来我们把插入排序的特性总结一下。(1) 希尔排序的时间复杂度与增量(即步长gap)的选取有关。例如,当增量为1时,希尔排序退化成了直接插入排序,此时最坏情况时间复杂度为O(n²)。而具有增量的希尔排序的平均时间复杂度为O(n^1.3),希尔排序最好情况时间复杂度是O(n)。(2) 希尔排序的空间复杂度是O(1)。(3)直接插入排序是稳定的,不会改变相同元素的相对顺序。但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱。原创 2023-06-07 10:01:43 · 3249 阅读 · 1 评论 -
排序算法中的冒泡和选择排序详解(持续更新系列)
我们要想成为一个优秀的程序员,其实非常关键的一点就是要锻炼培养自己的编程思维,就好比一个狙击手,要通过大量的射击训练要用大量的子弹喂出来。同样的,一个优秀的程序员,他的逻辑和编程思维,也是靠大量的训练锻炼出来的,而这个训练经常是通过各种“算法”来实现的。所以作为一个从零开始学习的小白,我们必然要学习各种编程算法。这些算法,一方面可以锻炼我们的编程思维,另一方面也是为了完成工作,很多项目中都会或多或少的用到一些算法,并且程序员面试时,算法也是必考的一项。基于这些因素,接下来会给大家介绍一些经典的算法,比如。原创 2023-06-05 11:04:45 · 2659 阅读 · 0 评论 -
简述泛型的基本使用和作用
我们可以在定义接口和类时使用泛型,这样该接口和类中的所有方法及成员变量等处,也都可以使用该泛型。但其实泛型可以应用在整个类上,也可以只应用在类中的某个方法上。也就是说,方法所在的类可以是泛型类,也可以不是泛型类。方法中是否带有泛型,与其所在的类有没有泛型没有关系。泛型方法是在调用方法时才确定类型的方法,泛型可以使得该方法独立于类而产生变化。另外,static静态方法无法访问泛型类的类型参数,因此,如果想让一个static方法具有泛型能力,就必须使该静态方法成为泛型方法。泛型中的通配符其实也是一种。原创 2023-06-02 10:04:42 · 1288 阅读 · 0 评论 -
从零开始学Java72之泛型是怎么回事?
作为Java中常用且重要的一个概念,泛型帮我们实现了代码重用,也保证了类型安全。但关于它的详细内容,目前很多同学还不清楚,所以接下来就带各位来学习这个重要的知识点。泛型最常见的一个用途,就是在集合中对数据元素的类型进行限定。集合作为一个容器,主要是用来容纳保存数据元素的,但集合的设计者并不知道我们会用集合来保存什么类型的对象,所以他们就把集合设计成能保存任何类型的对象。这就要求集合具有很好的通用性,内部可以装载各种类型的数据元素。原创 2023-05-31 09:57:27 · 1774 阅读 · 0 评论 -
从零开始学Java71之Properties配置类怎么用?
在前面的几篇文章中,给大家讲解了Java里的List、Set和Map等集合。所以现在我们知道,Map集合作为一个双列集合,有key和value两个值,这两个值共同组成了key-value键值对的映射关系。而正是这种映射关系,使得Map集合可以解决我们在开发时遇到的配置文件问题。所谓的配置文件问题,是指我们在开发时,经常需要读取和修改一些配置信息,比如数据库、消息队列、Nginx、Web服务器等的配置。这些配置信息在测试环境、开发环境和线上环境里的值是不同的,我们经常需要在几种环境中反复地修改配置信息。原创 2023-05-29 13:28:39 · 2923 阅读 · 0 评论 -
Java之Collection与Collections有什么区别?
截止到现在我们已经把Java里的ListSET和Map这三大集合都给大家讲解完毕了,不知道各位掌握了多少呢?如果你对之前的内容还没有熟练掌握,可以把前面的文章再多读几遍。如果你已经掌握的很好了,那就继续阅读今天的内容吧。今天会再用一篇文章,把集合中遗漏的内容给大家梳理一下,比如Collection与Collections的区别。全文大约【3300】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考…原创 2023-05-29 10:16:32 · 474 阅读 · 0 评论 -
详细解读Java中Map集合的底层原理(干货+源码解读)
在上一篇文章中给大家讲解了Java里的Set集合及其常用子类。现在我们已经掌握了Java里的两大集合,最后还有另一大集合等待着我们学习,这就是Map集合。与之前的集合不太一样,Map集合属于双列集合,该集合中的信息是key-value形式;而之前的LIst和Set都是单列集合,里面的元素没有key。有些小伙伴可能会很好奇,我们已经学习了List和Set集合了,为什么还要再搞出来一个Map集合呢?Map集合与Collection集合又有什么不同呢?要想搞清楚以上问题,我们可以考虑这么一个需求。原创 2023-05-25 18:10:36 · 3212 阅读 · 1 评论 -
【从零开始学Java】Java集合中Set都有哪些特性?
在上一篇文章中,带大家学习了List集合的用法和特性尤其是对ArrayList和LinkedList了解的更多一些。但Java中还有Set和Map集合等待我们学习,所以接下来就请各位继续跟我们一起来学习今天的内容吧。在本文中,会详细地给大家介绍Set集合的定义、特点、常用方法和基本原理等内容。全文大约【4000】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考…原创 2023-05-22 10:59:11 · 1885 阅读 · 1 评论 -
Java中List集合有哪些特性?(内含视频教程)
在上一篇文章中给大家介绍了Java里的集合,我们了解了集合的由来、特点,以及一些接口API等,但这些内容都偏重于理论。那么从今天这篇文章开始,我们会从实战的角度来进行List集合的学习。可以说,List集合是开发时用的最多的一种集合,尤其是ArrayList更是被经常使用。所以对今天的内容,希望大家要好好阅读和练习全文大约【5800】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考…原创 2023-05-19 15:34:27 · 25979 阅读 · 0 评论 -
【从零开始学Java66】讲解Java集合中的Collection体系
截止到今天,我们《从零开始学Java系列》的文章已经要到一个新的阶段了。在此之前,我们学习了Java里的各种基础知识,包括环境配置、基本语法、分支循环、数组、常用类等。而从今天开始,本系列文章要给大家介绍另一个我们开发时特别常用的知识点–集合!其实我们之前学习的数组也是集合的一种,但数组的结构比较简单,并且自身也存在一些天生的缺陷,比如数组的长度是不可修改的。然而在很多情况下,我们在开发时并不能直接确定数据的数量,这就导致我们在开发时不能频繁地使用数组。原创 2023-05-17 11:19:57 · 2321 阅读 · 0 评论 -
Java随机数之System/Random/SecureRandom详解
我们在解决实际问题时,除了经常需要对数字、日期、时间进行操作之外,有时候还需要对系统进行设置,另外还需要生成一些随机数字。那么我们又该如何实现这些需求呢?接下来我们会带着大家来学习一下Java中的另几个常用类,包括System、Random、SecureRandom等。全文大约【4000】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考…System。原创 2023-05-15 09:57:29 · 4897 阅读 · 0 评论 -
【从零开始学Java第64期】JDK8 关于日期时间的新特性
在上一篇文章中本系列内容给大家讲解了Java里的格式化问题,这样我们就可以个性化设置日期时间的展示方式了。似乎我们现在已经掌握了不少关于日期和时间的操作技巧,但其实随着时间的不断推移,现实的需求也在不断更新,原先的一些API已经难以满足开发需求了。所以从JDK 8之后,为了满足更多的开发需求,Java给我们增加了不少关于日期时间的新特性,接下来本篇文章就带各位来看看这些新特性有哪些。全文大约【5400】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!原创 2023-05-12 11:11:38 · 2277 阅读 · 0 评论 -
从零开始学Java63之时间格式化怎么实现?
DateFormat是负责日期/时间格式化的抽象类,它可以用与语言无关的方式格式化并解析日期或时间。它的子类(如SimpleDateFormat)允许进行日期的格式化,将日期转为文本;也可以进行文本的解析,将文本转为日期。虽然我们已经有了DateFormat,但有时候这个类并不能满足我们的实际开发需求。此时我们可以进一步使用它的子类,比如来进行更多的操作。是一个以与语言环境有关的方式来格式化和解析日期的具体类,它具有格式化(日期转文本)、解析(文本转日期)和规范化的功能。相对DateFormat来说,原创 2023-05-10 13:45:04 · 1104 阅读 · 0 评论 -
从零开始学Java62之时间相关的类有哪些?
在开始学习今天的知识之前,先给大家讲解一下与今天内容相关的一些概念,否则可能会让一些同学产生迷惑如果我们想在Java中获取当前的时间,可以使用java.util.Date类和类来实现。其中,Date类封装了系统的日期和时间信息,Calendar类则会根据系统的日历来填充Date对象。java.util.Date是一个表示日期和时间的类,代表了系统特定的时间戳。它是按照UTC时间显示的,可以精确到毫秒,源码内部使用long类型进行时间的存储。原创 2023-05-09 09:59:43 · 1306 阅读 · 0 评论 -
从零开始学Java61之大数字处理相关的类有哪些?
类型所占字节(byte)所占位数(bit)取值范围byte18short216int432long864char2字节16位0~65535float4字节32位±3.4E+38double8字节64位±1.7E+308boolean4字节32位true\false从上表中我们可以看到,整型的最大取值范围是,浮点型的最大取值范围是±1.7E+308。原创 2023-05-05 14:18:06 · 1207 阅读 · 0 评论 -
从零开始学Java60之--数字相关的类有哪些?
在开发的时候,我们经常需要对数字进行各种数学计算,虽然Java给我们提供了+、-、*、/ 和 %等基本算术运算符,但这些符号并不能进行更复杂的数学运算,例如三角函数、对数运算、指数运算等。所以为了方便实现这些数学计算功能,Java自身就给我们提供了一个Math数学类,用于进行各种常见的数学操作。Math中提供了用于执行基本数学运算的多个属性和方法,如初等指数、对数、平方根和三角函数等。Math 类位于 java.lang包中,它的构造方法是 private私有的,因此我们无法创建 Math类对象。原创 2023-05-05 09:20:51 · 1208 阅读 · 0 评论 -
从零开始学Java59之StringBuilder与StringBuffer
在Java中,我们除了可以通过String类创建和处理字符串之外,还可以使用和StringBuilder类来处理字符串。其中,String类定义的字符串内容不可变,所以String属于不可变字符串。而和定义的字符串内容可变,这两者属于可变字符串,并且和,对字符串的处理效率比String类更高。2. 使用场景有的小伙伴可能还是不太理解,字符串的使用并不是很难,咱们直接使用String来操作就可以了,为什么还要搞出来StringBuffer和StringBuilder这两个类?这不是找麻烦吗?原创 2023-04-28 10:45:00 · 2070 阅读 · 0 评论 -
从零开始学Java58之String字符串常量池和intern方法
常量池是堆中的一块存储区域,用于存储显式的String、float、Integer等数据。这是一个特殊的共享区域,开发时不需要在内存中经常改变的数据,都可以放在这里进行共享。JDK 7及其之前的常量池是在方法区中,从Java8之后,常量池存放到了堆中。为了让大家更好地理解常量池的作用,给大家分析一下String字符串的内存分配至此,我们就把字符串相关的一些常规原理性知识点,给大家讲解梳理完毕了。原创 2023-04-27 14:30:27 · 1464 阅读 · 0 评论 -
从零开始学Java57之String字符串的底层原理
String作为Java中使用最为广泛的一个类,之所以设计为不可变,主要是出于效率与安全性方面考虑。这种设计有优点,也有缺点。原创 2023-04-26 09:51:13 · 957 阅读 · 0 评论 -
从零开始学Java56--与字符串相关的正则表达式
在上一篇文章中给大家介绍了String字符串及其各种常用API方法,接下来继续给大家讲解一些String字符串的高级玩法。有时候我们操作一个字符串时,这个字符串的内容并不一定就是固定不变的。比如在用户注册时,我们要求用户在输入框中输入自己的手机号码。我们知道,每个人的手机号码都是不一样的,那我们该如何保证用户输入的是合法的手机号呢?原创 2023-04-24 09:25:39 · 1233 阅读 · 0 评论 -
55从零开始学Java55之String字符串的编码
所谓的字符编码(Character Encoding),也叫做字集码,其实就是一种映射规则,计算机可以根据这个映射规则,将某个字符映射成其他形式的数据,以便在计算机和网络中进行存储和传输。例如经典的ASCII字符编码,就是将字母、数字和其它符号进行编号,并用7个比特的二进制作为单字节的低位,然后再加一个额外扩充的比特占据高位,形成一个完整的字节,从而表示一个整数。原创 2023-04-21 09:59:00 · 1343 阅读 · 0 评论 -
54从零开始学Java54之String字符串很常用
接下来我们会利用一些篇章,来给大家重点讲解一下String的用法,因为这个太常用,也太常考了。String字符串的内容还是比较多的,尤其是它的一些底层远离更需要我们了解原创 2023-04-19 10:12:19 · 1629 阅读 · 0 评论 -
【从0开始学Java52期】包装类的装箱与拆箱问题
这篇文章中给大家继续讲解包装类的装箱和拆箱问题。你可能会很好奇,做java开发,怎么还装起箱子来了?那么就请大家带着疑惑往下看吧。原创 2023-04-14 09:56:52 · 2162 阅读 · 0 评论