自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Java中的Object类解析与应用探究

我们开始新的模块学习java常用类的概述和使用,今天我们就来聊聊Object类!!

2024-03-30 18:09:38 940

原创 深入解析Java继承机制:面向对象编程的核心探究【Java面试题】

当你想象一个生物类别,比如动物,其中有许多不同的种类,比如狗、猫、鸟等等。现在假设你想在程序中模拟这些动物,你可能会创建一个名为"动物"的类,其中包含一些通用属性和方法,比如“移动”、“发出声音”等等。现在,如果你想创建一个代表狗的类,你可以使用继承来实现。你可以创建一个名为"狗"的类,这个类继承自"动物"类。通过继承,“狗"类会自动获得"动物"类的所有属性和方法,比如"移动"和"发出声音”。然后,你可以在"狗"类中添加特定于狗的属性和方法,比如"吠叫"和"追逐尾巴"。

2024-03-29 19:55:04 777

原创 Spring AOP:面向切面编程的实现【与OOP比较】

AOP即面向切面编程,它是编程的一个范式,用于通过分离横切关注点来提高代码模块化。Spring AOP(面向切面编程)是核心Spring框架的一个关键组成部分。它允许开发者将一些横切关注点(cross-cutting concerns)比如日志记录、事务管理、安全等,从业务逻辑代码中分离出来。通过使用AOP,开发者可以将这些横切关注点模块化成特殊的类,这些类在Spring术语中被称为切面(aspects)。这样可以使得业务逻辑更加清晰,并且提高代码的可复用性和可维护性。

2024-03-06 19:50:31 847

原创 Spring Bean装配精解:探索自动化与显式配置之道

上节我们介绍了Spring中的Bean,关于Bean的配置和Bean的作用域,今天我们就来聊聊Bean的装配方式。Bean的装配方式指的是在Spring框架中,将Bean组件连接和组合在一起的过程以及实现这一过程的不同方法。基于XML的配置:最传统的装配方式,开发者在XML配置文件中定义Bean及其依赖关系。通过<bean>元素声明Bean,并通过<property>或元素注入依赖。

2024-03-05 21:00:50 1188

原创 了解Spring中Bean:配置与作用域

Spring如同一个工厂,用于管理Spring中的Bean。使用这个工厂我们需要对SPring的文件进行配置,采用XML文件的形式进行对Bean的讲解。下面我们就开始学习吧。在Spring框架中,bean是指一个由Spring IoC容器实例化、组装和管理的对象。可以理解为是由Spring容器生成和控制生命周期的一个对象实例。Spring中的bean通常是普通的Java对象(POJOs),可以通过配置文件或者注解的方式来声明和配置。

2024-03-02 19:39:54 1149

原创 【数据结构与算法】树结构----从入门到精通

树相信大家很了解了,今天我们就从入门到精通普,从认识树,到如何在实际开发中使用树。后面会有很多知识需要同学们对树这个章节足够的了解,能够对数据结构有更好的掌握和了解。!!

2024-02-28 15:19:25 991

原创 【数据结构查找算法篇】----散列查找【实战项目】

今天我们需要认识目前非常高效的一种查找算法----散列查找,下面我们就来系统的学习一下如何正确使用散列查找,如何在开发中应用。**散列查找(也称为哈希查找)**是基于散列函数(或哈希函数)的查找技术,它是一种非常高效的查找方法。散列函数将要查找的键值映射到一个位置上,这样可以直接访问到存储在那个位置上的值,进行查找操作。在散列查找中,数据元素的存储位置和它的关键字之间存在一种确定的对应关系,因此,存取时间可以近似认为是常数时间,即 O(1)。

2024-02-27 16:14:37 920

原创 【数据结构查找算法篇】----二分查找【实战项目】

想象一下,你在一座图书馆里的一排排整齐排列的书架前,这些书按照字母顺序摆放着,你需要找到一本名字以字母"M"开头的书。先站在书架的中间位置,这大致相当于字母顺序的“M”附近。如果你手上的书以字母“S”开头,那么你知道“M”开头的书应该在你左边的上。你忽略右半部分的书架,将范围缩小到左半部分。然后你去左边书架的中间位置,重复进行查找。如果这次拿到的书以字母“G”开头,意味着“M”会在你右手边的书架上。再次缩小范围,只考虑“G”和“S”之间的部分,并在这个缩小后的范围内继续寻找。

2024-02-26 14:19:24 1292

原创 【数据结构查找算法篇】----线性查找【实战项目】

在数据结构中,有许多查找算法,它们根据数据的存储结构方式和结构的特点而有所区别,关于数据结构查找算法的学习,博主会依次详细的介绍现在比较常见的查找算法,通过对算法的介绍,搭配Java的实战项目,更深层次的对算法进行讲解。今天,我们就来介绍一下比较简单的查找算法----线性查找。线性查找,也叫顺序查找(Sequential Search),是一种最基本的查找算法。它适用于元素随机排列的数组(或者其他线性数据结构,如链表)。这种查找算法不要求数据被排序。线性查找的工作原理是。

2024-02-23 14:13:58 1254

原创 Sping基础篇----掌握Sping的控制反转/依赖注入的概念【实战案例总结】

本节我们来学习Sping是什么样的一个框架,介绍Spring框架支持包和相关文件的获取方式,并介绍其目录结构,学习这些知识是为使用Spring框架打好基础.Java Spring,通常指的是Spring Framework,这是一个开放源代码的Java平台,广泛用于创建各种Java应用程序,尤其是企业级应用程序。Spring Framework是一个轻量级的控制反转(IoC)和面向切面的容器框架。依赖注入(DI)

2024-02-22 18:35:57 1196

原创 链表全景:探索单链表、双向链表与循环链表【实战演练】

链表在数据结构中的重要性是无法替代的,无论是动态增删节点,还是对内存的利用,实现多种复杂结构,甚至在预分配内存等方面都有很好的表现。今天我们就依次对单链表,双向链表,循环链表进行讲解。链表的介绍就到这里,链表虽然简单,但是贯穿整个数据结构,我们需要了解底层原理,便于我们更好的解决实际开发中遇到的问题。!!

2024-02-21 23:18:29 936

原创 【数据结构排序算法篇】----对十大经典算法的总结

我们已经将所有的排序算法讲解完毕,通过对数组进行排序和面试题的训练,相信大家收获了干货,今天我们就来对排序算法进行总结,讨论在不同场景下应该挑选什么样的算法,这也是实际开发中我们经常需要思考的问题。对实时系统中小数据集进行排序:插入排序或希尔排序。对大数据集进行内存中的排序:快速排序、堆排序或归并排序。对巨量数据集进行外部排序:外部归并排序。对有限范围整数进行排序:计数排序、基数排序或桶排序。要求稳定排序:归并排序、冒泡排序、插入排序。对性能有极度要求,可以预知数据分布。

2024-02-20 03:00:00 1002

原创 【热点话题】----还分不清Java和JavaScript嘛【JavaScript猜数字游戏】

对于初学的小伙伴们经常会问道,Java和JavaScript到底有什么关系和区别呢,其实Java和javaS是两种截然不同的编程语言只是,在名字上比较相似,容易让大家混淆,他们之间的区别还是非常大滴!后面博主会详细的对JavaScript进行系统的讲解,希望各位看官点个关注,我们共同进步。!!

2024-02-19 05:00:00 2027

原创 【数据结构排序算法篇】----桶排序【实战演练】

我们刚刚学完计数排序,今天我们再来讲讲桶排序,实际上桶排序就是计数排序的拓展版本,下面我们就来讲解一下桶排序。桶排序是一种分布式排序算法,它将元素分散到多个“桶”里进行排序。这里的“桶”可以理解为一系列的分类槽,每个槽会根据元素的一个特性来收集这些元素。通常,桶排序用于当输入数据均匀且独立分布在一个范围内时。初始化桶:创建一定数量的桶,这些桶可以是数组、链表或者其他集合。分配元素到桶中:遍历需要排序的元素,根据规则(如元素的大小或者其他属性)将它们放入对应的桶中。对每个桶内部排序。

2024-02-18 09:45:56 993

原创 【数据结构排序算法篇】----基数排序【实战演练】

今天我来继续聊聊数据结构排序算法----基数排序基数排序是一种非比较型整数排序算法,它的工作原理是按照数字的每一位来分配和收集元素。这种排序方式通常用于排序数字(尽管它也可以用于排序其他类型的数据,比如字符串),它可以处理从小到大的各个数字位,这被称作“最低位优先”(LSD)方法,或者从大到小的各个数字位,称为“最高位优先”(MSD)方法。基数排序的基本思想是将所有待比较的数字统一为相同的位数长度,位数较短的数字前面补零。然后,从最低位开始,依次进行一次分配和收集。

2024-02-17 20:36:10 1223

原创 【数据结构排序算法篇】----计数排序【实战演练】

关于计数排序,我们在考研中或者平时练习中还是比较难以见到的,但在工作中,我们还是必须要学会正确使用。计数排序(Counting Sort)是一种非比较型的线性时间复杂度的排序算法,最适合于一定范围内的整数排序问题。它是一个整数排序算法,且只能用在待排序元素的值是有限范围的情况下。扫描待排序数组,假设数组中有n个数,并找出数组中的最大值max。开辟一个长度为max+1的计数数组,以记录每个值为i的元素出现的次数,初始化为0。再次扫描原始数组,对于数组中的每个数值,将计数数组对应数值的计数加一。

2024-02-14 06:00:00 1860

原创 【数据结构排序算法篇】----希尔排序【实战演练】

大家好!新年快乐哦,年后我们学习还要继续,博主依然要定时发文,今天我们一起来讲讲另一个排序算法----希尔排序希尔排序是一种基于插入排序的排序算法,由Donald Shell于1959年提出。其关键的概念是将原来要排序的列表划分成若干个较小的子列表,分别进行插入排序,然后逐渐减少子列表的数量,直到全列表作为一个列表来对待进行插入排序为止。这种方法中,每个子列表实际上是间隔一定"增量"的一组元素构成的。选择一个增量序列,其中ti > tjtk = 1(通常使用序列中每个元素作为n/2的结果,n。

2024-02-13 06:00:00 1904

原创 【数据结构排序算法篇】----堆排序【实战演练】

继续继续继续,今天我们还是排序算法,认识新的排序算法----堆排序堆排序是一种基于比较的排序算法,它利用二叉堆这种数据结构的特性来对元素进行排序。最大堆:任何一个父节点的值都大于或等于它的孩子节点的值。最小堆:任何一个父节点的值都小于或等于它的孩子节点的值。在堆排序算法中,最大堆用于升序排序,而最小堆则用于降序排序。建立堆:将待排序的数组构造成一个最大堆(升序排序)。这个步骤是将数组转换成最大堆的过程,通常可以从最后一个非叶子节点开始向上进行调整。堆排序从堆中逐个取出元素进行排序;

2024-02-10 07:00:00 2111 2

原创 龙年大吉,好运连年

过年啦,首先在这里祝福大家新年快乐,在过去一年里,我相信大家过得一定很充实,我们回顾过去一年,得到了很多知识,收获可很多人生阅历,明年我们也一定会好运连连,考研的同学一个个都可以上岸,考公的同学也能够笔试面试接连通过,大家也可以找到一个自己满意的工作,在豪华都市有自己的一片天地,开始新的人生篇章,逆袭之路即将开始,爽文主角就是你啦!今天就给大家准备一个非常简单的Java祝福页面吧,初学就可以写出来哦。

2024-02-09 08:00:00 501 1

原创 【数据结构排序算法篇】----快速排序【实战演练】

学习快速排序,最重要的就是学会分治思想,对于pivot的选择有很多种,这让我们产生了如何使用更加合适的pivot时代码变得更加高效,下面我们就开始谈谈快速排序。快速排序是一个高效的排序算法,由C.A.R. Hoare在1960年提出。因其平均时间复杂度为O(n log n)而被广泛使用,并且还具有原地排序(不需要额外大量的内存空间)的优点。这种算法的基本思想是分治策略,通过一个称为"pivot"(中枢或枢轴)的元素来将原数组分割成两个子数组。选择pivot(枢轴元素)从数组中选择一个元素作为pivot。

2024-02-08 07:00:00 1463

原创 【数据结构排序算法篇】----归并排序【实战演练】

我们继续学习下一个排序,归并排序,这是一个重要的排序,排序思想也很重要,这种排序也很高效,希望同学们可以认真阅读。归并排序(Merge Sort)是一种高效的排序算法,采用分治的策略来对数组或列表进行排序。基本思想是将原始数组分成若干子数组,对每个子数组进行排序,然后将它们合并成一个全部有序的数组。分解:递归地将当前数组分成两个长度差不多的子数组。解决:递归地对子数组进行归并排序,如果子数组长度是 1 或者更小,则不需要继绀做分解,因为长度为 1 的数组自然而然就是有序的。合并。

2024-02-07 08:00:00 980 1

原创 【数据结构排序算法篇】----插入排序【实战演练】

继续学习下一个排序算法----插入排序,我们废话不多说,直接进入主题吧插入排序是一种简单直观的排序算法,它的工作方式类似于我们整理手中扑克牌的方式。开始时我们左手为空并且桌子上的牌面朝下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右向左将它与手中已有的牌相比较。数组中实现就是从数组的第二个元素开始把待插入的元素复制为一个副本(记作 key)。比较其与之前元素的大小,如果 key 更小,则之前元素向后移动一位。

2024-02-06 15:20:15 801 1

原创 【数据结构排序算法篇】----选择排序【实战演练】

前面我们已经学习了较为简单的冒泡排序,相信大家对排序也有了新的认识,今天我们就来谈谈选择排序,通过对选择排序的讲解,搭配各种实战题目,来加强大家对排序算法新的认识,也希望同学们可以看完讲解后先将题目做一做。选择排序是一种简单直观的比较排序算法。它的基本思想是:首先通过比较找出最小(或最大)元素,然后将它和数组的第一个元素交换。接下来,再从剩下的元素中找出最小(或最大)的元素,再与数组的第二个元素交换。如此继续,直到整个数组排序完成。

2024-02-06 15:01:23 1026 1

原创 【数据结构排序算法篇】----冒泡排序【实战演练】

冒泡排序顾名思义,想泡泡一样慢慢冒上去,今天,我们就来深刻理解冒泡排序的排序步骤,通过一些联系给大家讲解如何解决有关冒泡排序算法的一些问题。冒泡排序(Bubble Sort)是一种基础的排序算法。它的工作原理是通过重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换的元素为止,这时数列就完全排序好了。冒泡排序的名称来自于较小的元素会像“气泡”一样逐渐通过交换“浮”到数列的顶端,而较大的元素则沉到底部。

2024-02-05 16:41:16 976 1

原创 【数据结构】----先来聊聊【排序】(先导片)

我们开始算法与数据结构专栏,讲解基础算法,无论在学习那种编程语言,都要求我们能够熟练掌握各种算法。数据结构与算法是计算机科学中最基础,也是最核心的学科之一。提高程序效率: 合理地使用数据结构可以显著提升程序的性能,比如时间复杂度和空间复杂度。解决问题能力: 对数据结构的了解能帮助你更好地分析问题并选择或设计出合适的解决方案。代码组织: 数据结构能帮助你组织和管理数据,使得代码更加清晰、易于维护。库和框架的使用。

2024-02-04 16:19:55 840 1

原创 递归算法还有哪些是你不知道的----【探讨Java经典遍历问题和面试题】

对于学习编程的同学来说,可能最先接触到的就是遍历算法,但是对于新手来说,如何正确理解遍历以及如何在适当的场合使用遍历,让你的代码变得更加简洁高效是个难以解决问题,下面我们就来好好的聊聊我们熟知而不善使用的递归当然,对于遍历的总结远不止于此,遍历算法最重要的是让同学们有大问题化为小问题的思想,面对大量的代码循环时,能够抓住问题的根本,用一种方法来解决问题。在遍历算法构建的同时,更应该注重效率,想到更好的算法的情况下,大家还是尽量使用别的方法,实在解决不了在尝试使用遍历。

2024-02-02 17:01:34 1443

原创 探究Java【方法的定义及使用】----【简单面试题】

在编程中,方法是一段执行特定任务的代码块。它是将一组相关的语句组织在一起,以便在程序中重复使用。方法有自己的名称,可以带有参数,可以返回一个值,也可以是不返回值的。方法的主要目的是提高代码的可读性、可维护性和重用性。1.方法签名: 方法的名称和参数列表共同构成方法的签名。例如,中的printMessage是方法名,而(String message)是参数列表。2.返回类型: 方法可以有一个返回类型,它表示方法执行后返回的数据类型。如果方法不返回任何值,返回类型是void。3.参数列表。

2024-02-01 16:30:49 1128 3

原创 背后的魔术师----jsp

想象一下,你在一家餐厅(网站),有很多工作人员(不同的技术和组件)共同协作,以便为顾客(用户)提供一顿美妙的用餐体验。在这个餐厅中,JSP(JavaServerPages)就像是那些在厨房里做出美食的厨师。顾客通过菜单(浏览器)下单(发送请求),然后厨师根据菜单上的食物项(网页),使用各种食材和调料(数据),通过一系列烹饪步骤(服务器端处理)来准备食物(生成动态内容顾客坐在餐桌旁,不需要知道厨房里究竟发生了什么,他们只需要看到最终端上来的菜肴(最终的HTML页面厨师们使用各种烹饪工具(

2024-01-28 11:28:21 1091

原创 我想再学一次Java三种循环结构哦---【开发实例】

通过详细的介绍这三种结构,希望同学们有新的认识,在任何一种语言的学习中,三种循环结构可以解决任何与循环有关的问题,我们在面对不同场景下,要选择适当的循环语句,当然,结合使用是在开发中必不可少的.!!

2024-01-25 14:32:45 1084 1

原创 Java链式存储LinkedList----与ArrayList比较

同学们,今天我们一起来看看List接口的另一种实现LinkedList,看看如何实现对LinkedList链表的搭建.我们需要结合底层的逻辑,更深层次的熟悉链表数据结构.最后比较我们前面讲到的ArrayList动态数组实现,各自应用场景的不同.在学习List接口的两种不同的实现方式时,我们要尝试比较,在未来的应用时,选择合适的数据结构要取决于不同的应用场景.前提是大家对这两种结构的熟练程度是非常高的,希望大家可以对找点题目练练手,加深印象.!!

2024-01-22 18:40:44 1340

原创 Java基础篇----包机制与JavaDoc

这周学习任务很重,希望大家可以在坚持住,珍惜学习时间,学有余力的同学可以看看题目,巩固一下,三分学,七分练,大家努力,希望在未来的学习中可以一帆风顺,加油!!!

2024-01-21 21:25:10 1384 3

原创 Java基础篇----算术魔术大揭秘【面试题拓展】

同学们,在学习Java中,理解和掌握运算符的使用是非常重要的,因为它们是编写有效和功能丰富的代码的基础。不同类型的运算符支持不同的操作,例如进行数学运算、比较值、执行逻辑操作等。透彻理解运算符的使用方式和规则,有助于编写更高效和可读性更强的代码。下面我将带大家学习,在Java中我们需要掌握那些基本的运算符,就从底层的角度探究每种运算符是怎么使用的.运算符是编程语言中用于执行各种操作的符号或关键字。在Java中,运算符用于执行算术、关系、逻辑、位、赋值等各种操作。

2024-01-20 16:42:26 1125 5

原创 Java基础----变量与常量【面试题拓展】

前面我们已经介绍了Java的数据类型和类型转换,今天我们继续和大家介绍一个编程语言中最常见到的知识点,变量和常量,我们重点学习变量,希望大家跟随博主的脚步,好好打牢基础。我们不仅深入了解了变量的基本概念,还探讨了其在Java中的应用和底层原理。良好的变量命名、作用域管理以及常量的使用是编写高质量代码的关键。通过这篇博客,我们希望读者能够更清晰地理解:1.Java中的变量是用于存储数据的标识符,包括基本数据类型和引用数据类型。2.变量的命名规则、作用域和初始化是写出可读、可维护代码的基础。

2024-01-19 15:03:15 1431 1

原创 Java基础篇----类型转换【面试题拓展】

前面我们讲到了Java的数据类型,接下来我们将要学习Java关于类型转换的知识点。我也会向之前一样,向大家介绍内容的同时,为大家整理一些面试时会遇到的常见问题,顺便给出解释。希望大家可以静下心来思考,联系知识点先看看自己会不会这些题目,就当是锻炼。希望大家今天可以好好复习一下类型转换的知识点,虽然不难,但是长时间不去回忆的话,还是会有些陌生,同志们,在学习之余可以去拓展一些更有趣的面试题或者笔试题目,不要眼高手低哦,加油!

2024-01-18 16:48:01 1000 5

原创 铁子,你还记得这些吗----Java基础【拓展面试常问题型】

我们知道,学习每门语言,最重要的就是打牢基础,相信各位Java学者和大佬们也深知基础的重要性,在目前这个阶段,如果可以养成好的编程习惯,做好前期准备,了解Java最基础的知识点,对未来的学习和工作,都有很大的帮助。今天。在介绍Java编程的同时,我也会通过常见的面试题,和大家聊聊底层逻辑。在银行系统中,浮点数比较可能涉及到金额计算、利率比较等情景,因为在金融领域精度要求较高。在银行系统中,为什么不应该使用简单的等号(==)来比较浮点数?举例说明这种比较可能导致的问题,并提供一种更好的比较方式。

2024-01-17 16:37:01 1053 4

原创 Java动态数组实现----聊聊ArrayList

在学习Java 编程中我们遇到最重要的集合框架之一就是用于存储和操作对象的动态数组----ArrayList,今天我们就通过对介绍ArrayList来加强大家对数组实现的认识.ArrayList提供动态调整大小的能力,可灵活管理数据集合,学习方法包括掌握基本概念、熟悉常用方法、实际项目实践以及深入理解Java集合框架。

2024-01-15 23:38:55 1435 1

原创 正式开始JAVA学习之旅

今天开始,博主正式开始学习java相关知识,期间也会发布与算法相关的题目和自己的感悟理解,通过博客记录学习生活,结交志同道合的朋友.今天我将会介绍java入门java起源java学习思路开发工具常用快捷键(基于IDEA)

2024-01-10 22:01:23 932 3

原创 第一篇博客----代码启航

双非院校大四学生,像绝大多数学生一样,我选择了考研这条路,但是当我考完才发现我这段的时间的努力被时间带走.我进入了人生中最重要的交汇口,我要进入社会了,我选择一边学习编程语言,一边准备考研,当然作为成年人了,工作是必不可少的.接下来是我对目前人生交汇点的认识和对未来的规划与展望.首先,编程对于我个人和职业生涯来说意义非凡,相伴一生,他为我提供了一种全新的思考和解决问题的方式.通过学习编程, 我不仅掌握了具体的编码技能,更培养了逻辑思维、分析问题的能力以及持续学习的意识.: 学习编程需要时间和耐心。

2024-01-09 22:34:45 504 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除