自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot 快速上手:从 Maven 到第一个 Controller

本文介绍了Maven在JavaEE开发中的核心作用,包括其依赖管理、项目构建生命周期及仓库机制,并详细讲解了pom.xml配置文件的使用。通过创建SpringBoot项目,演示了如何利用Maven快速搭建Web应用,实现首个Controller接口的编写与测试。文章还提供了学习资料下载链接,帮助初学者高效入门SpringBoot开发。

2026-10-02 13:51:35 327 9

原创 JavaEE进阶-JavaScript初识

本文系统介绍了JavaScript的基础概念、语法及应用,涵盖变量、数据类型、运算符、数组、函数与对象等核心内容,并重点讲解console.log在调试中的作用。通过三种引入方式(行内、内部、外部)实现基础使用,结合jQuery简化DOM操作与事件处理。最后通过“猜数字”和“留言板”两个实战案例,演示了如何实现用户交互与动态页面更新,为网页动态化开发奠定基础。

2026-09-29 17:19:59 241 11

原创 LeetCode刷题day1(移动零+复写零 Java版)

本文总结了数组移动类问题的双指针解法,核心思想是原地操作、区域划分。以“移动零”为例,通过 cur 遍历,dest 指向非零元素末尾,遇非零则交换;“复写零”则先反向定位最后需处理元素,再从后往前复写,避免覆盖。两题均利用双指针实现高效原地修改,关键在于合理定义指针状态与边界处理。

2026-09-26 20:20:49 473 9

原创 JavaEE进阶-CSS初识

本文介绍了CSS的基本概念及其在网页样式中的作用,阐述了其与HTML、JavaScript的关系。内容涵盖CSS语法结构、三种引入方式(内部、行内、外部)、常用选择器(标签、class、id、通配符、复合选择器)及基础属性(如color、font-size、border、width/height、padding与margin),强调了选择器的优先级和元素显示类型对样式的影晌,帮助初学者理解如何通过CSS美化网页。

2026-09-26 18:00:38 258 13

原创 JavaEE进阶-HTML基础认识

本文系统介绍HTML基础知识,涵盖其作为超文本标记语言的本质、基本结构(doctype、head、body)、标签与属性的使用,以及常用标签如标题、段落、图片、链接、表格、表单等。重点解析了表单提交机制与语义化标签的应用,并结合前后端交互流程,说明HTML在网页构建中的基础作用,为后续学习CSS和JavaScript奠定基础。

2026-09-25 20:49:13 266 10

原创 JavaEE初识

本文从JavaSE过渡到JavaEE,系统介绍企业级Web开发的核心概念。重点讲解B/S架构下Web网站的工作流程,明确JavaEE在后端开发中的应用,涵盖Spring、SpringBoot、MyBatis等主流框架,强调项目实战能力培养。学习者将掌握从需求分析、代码开发、数据库操作到项目部署的全流程技能,具备独立完成完整Web项目的能力,并逐步具备企业级开发所需的规范意识与问题解决能力。

2026-09-25 13:04:21 302 16

原创 JVM面试考点

Java程序通过编译生成.class字节码,由JVM加载并执行,实现“一次编译,到处运行”。JVM作为操作系统与Java程序间的桥梁,负责内存管理、类加载、垃圾回收等核心功能。其内存区域包括程序计数器、虚拟机栈、堆、元数据区等,分别存储指令位置、方法调用信息、对象实例及类元数据。类加载采用双亲委派模型,确保核心类安全且避免重复加载。垃圾回收基于可达性分析,通过标记-清除、复制、整理等算法管理堆内存,结合分代回收机制(新生代与老年代)提升效率,有效应对内存溢出与泄漏问题。

2026-09-23 19:04:05 370 13

原创 网络原理(HTTP协议)

HTTP是应用层协议,采用“请求-响应”模式,用于客户端与服务器间传输数据。它定义了通信格式,底层依赖TCP。学习HTTP有助于理解前后端交互流程。抓包工具如Fiddler可捕获请求/响应,分析URL结构(协议、域名、端口、路径、查询参数)、请求方法(GET/POST)、请求头(Host、Content-Type、Cookie等)及状态码(200成功,404未找到等)。为解决HTTP的窃听、篡改和身份冒充问题,引入HTTPS,通过TLS实现非对称加密协商密钥、证书验证身份,最终用对称加密高效传输数据,保障安

2026-09-21 17:05:24 1312 25

原创 面试题(网络部分前传)-13问

本文总结了网络知识中常见的13个面试题,涵盖TCP/IP五层模型、IP/MAC/ARP关系、DNS解析、TCP/UDP区别、三次握手与四次挥手、TIME_WAIT/CLOSE_WAIT、可靠传输机制、流量与拥塞控制、TCP报文头字段及粘包拆包问题。作者结合自身理解与AI评分反馈,逐题分析错误并给出标准答案,帮助读者检验学习成果,适用于实习及秋招备考。后续将更新包含HTTP内容的题目,敬请期待。

2026-09-15 19:42:46 248 23

原创 网络原理(网络层,数据链路层)

本文深入解析网络层核心机制,重点讲解IPv4报头结构与IP地址管理。通过版本、首部长度、服务类型、总长度等字段,阐述数据包的传输控制与拆包重组。针对IPv4地址枯竭问题,介绍NAT网络地址转换原理,实现内网/外网地址映射,并说明路由器如何维护NAT表以区分多设备通信。同时对比IPv6优势,探讨子网划分与子网掩码作用,明确网络号与主机号的界定。最后结合路由选择与ARP协议,揭示数据从源到目的地的路径规划过程,完整呈现从网络层到数据链路层的封装与转发逻辑。

2026-09-14 22:51:54 628 26

原创 网络原理TCP/IP

本文的题目为什么只说TCP,为什么不包含UDP,因为在传输层当中,TCP的使用程度,复杂程度,相关的知识点是占大头的!!!

2026-09-11 20:27:20 929 22

原创 网络编程套接字(socket)

所谓的套接字也就是socket,这个socket和我们编写网络程序又有什么关系呢:socket是传输层给应用层提供的API的集合,socket就相当于是程序使用网络的接口,而网卡是把数据发出去的硬件,socket就相当于是网卡的一个遥控器我们网络编程主要涉及的就是传输层以及应用层的交互,我们先决定传输层的哪一个协议,是UDP还是TCP,也就是上文所介绍的两种:后续的各种层是操作系统根据我们代码中的任务来选择的Java 程序↓Java Socket 对象↓文件描述符 fd↓。

2026-09-07 15:59:53 295 17

原创 网络的初识

材料核心脉络是网络发展历程、网络分层、关键设备与协议。网络发展从单机到互联再到互联网与物联网。分层模型是TCP/IP五层,用于简化网络设计。关键设备路由器连接不同网络,交换机连接同网设备。IP负责定位终点,MAC负责当前段转发。传输层有TCP可靠和UDP不可靠两种协议。

2026-09-04 16:19:09 255 7

原创 文件操作和IO

本文介绍了文件与目录的概念、相对/绝对路径及文件分类,并讲解Java中File类的使用和IO流读写操作,包括字节流、字符流、flush与close的重要性,最后提供删除、复制、关键字查找等实际案例。

2026-09-03 19:33:13 251 4

原创 红黑树,位图的理解以及实现

因为我们前面讲到的AVL树对于平衡有着绝对的追求,它要求树高度差的绝对值要小于等于一,所以需要经常进行旋转,但是旋转会很消耗时间,所以即使AVL树的查找时间更快,我们依然引入了更加均衡的红黑树。

2026-08-30 20:27:36 171 5

原创 AVL树的实现(Java版)

本文介绍了AVL树的概念及其实现。普通二叉搜索树在极端情况下会退化为链表,查询效率降至O(n)。AVL树通过旋转操作保持平衡,确保任意节点左右子树高度差不超过1。文章详细展示了AVL树的Java实现代码,包括节点插入、四种旋转操作(左旋、右旋、左右旋、右左旋)以及平衡因子调整。通过测试用例验证了实现的正确性,确保树始终保持平衡状态,从而保证查询效率维持在O(log₂n)。

2026-08-16 20:06:05 66 5

原创 Java多线程四个案例

摘要:本文介绍了四种Java多线程编程中的重要模式与工具。1. 单例模式分为饿汉式(线程安全)和懒汉式(需双重检查锁+volatile保证线程安全);2. 阻塞队列通过wait/notify机制实现生产者-消费者模型,解决瞬时流量洪峰和空转问题;3. 线程池通过预创建线程降低开销,核心参数包括核心/最大线程数、存活时间等,可自定义线程工厂;4. 定时器使用优先级队列管理延时任务,通过时间比较和wait实现精准调度。每种技术均包含原理分析、线程安全实现要点及代码示例,最后还展示了如何手动实现这些核心组件。

2026-08-14 16:44:57 215 6

原创 多线程初阶

在代码中实现多线程的前提下,我们需要了解一下多线程的背景,cpu我们都知道,是电脑的大脑,电脑的计算,逻辑判断以及任务的调度都需要他,那为了提高开发的效率以及电脑的效率,我们可以提高cpu的能力,早期的cpu是单核的,也就是只有一个核心,这个时候我们如果要实现程序真正的并行(两个任务同时进行)运行的话,就得用到多核心,多核cpu通过多个核心从而调用多个进程来同时执行任务,但是进程的创建和销毁的成本很高,所以我们引入了更小的单位,也就是我们所说的线程,并且同一时刻,一个 CPU 核心只能执行一个线程。

2026-08-10 16:59:37 3329 14

原创 MySQL数据库基础(从零到一)

MySQL数据库学习笔记摘要 本文全面介绍了MySQL数据库的核心知识,内容涵盖10个主要部分: 基础概念:区分数据库软件与数据库实例的关系,介绍关系型与非关系型数据库的区别 基本操作:包括库表创建、数据类型选择、增删改查等基础SQL语句 数据库约束:主键、外键、唯一、非空等约束的使用场景和方法 数据库设计:三大范式理论和表间关系设计(1:1、1:n、n:n) 高级查询:联合查询(内连接、外连接、自连接)的实现方式 索引机制:B+树索引原理、索引分类及优化策略 事务管理:ACID特性、隔离级别解决并发问题(

2026-08-01 19:02:44 260 8

原创 Java数据结构8(map和set)

容器里只存储关键字 Key判断某个 key 是否存在、自动去重。

2026-07-14 23:08:11 193

原创 常见排序汇总--你都了解吗?

我们一般比较排序只要通过判断排序是否是稳定的,然后就是比较时间复杂度和空间复杂度,并且在下面的排序当中也会设计到,具体:也就是如下图,我们原本红色的5在后面,不过通过排序之后,可能会有以下两种情况,位置不改变也就是稳定的,空间复杂度我们探究的是最坏情况。

2026-07-01 12:27:27 217 4

原创 Java数据结构7(优先级队列)

本文介绍了堆的概念、实现方法及应用场景。堆是一种特殊的完全二叉树,分为大根堆和小根堆,其中大根堆的根节点是最大值,小根堆的根节点是最小值。文章详细讲解了堆的创建过程,包括向下调整(shelldown)和向上调整(siftup)方法,以及插入和删除操作的实现。同时介绍了Java中的PriorityQueue优先级队列及其比较器的使用方法。最后探讨了堆在解决top(k)问题和堆排序中的应用,展示了如何利用堆高效地获取前k个最小元素和实现从小到大排序。

2026-06-19 17:57:26 206 1

原创 Java数据结构6(队列和二叉树初步)

本文介绍了队列和二叉树的基本概念与实现。队列部分阐述了先进先出特性,对比了顺序存储(循环队列)和链式存储的实现方式,重点讲解了循环队列的空间优化策略。二叉树部分详细说明了树的基本术语、特殊二叉树类型(满二叉树、完全二叉树)及其性质,包括节点数量关系、遍历方式(前序、中序、后序)等核心知识点,并通过代码示例展示了二叉树的构建和遍历实现。全文通过理论讲解结合实践代码,系统性地介绍了这两种重要数据结构的关键特性与应用方法。

2026-05-10 14:32:03 377 1

原创 Java数据结构5(栈)

本文介绍了栈的基本概念、特点及常用方法。栈是一种遵循后进先出原则的线性表,主要操作包括压栈(push)和出栈(pop)。文章详细讲解了栈在编程中的实际应用:1)实现逆序打印;2)解决有效的括号匹配问题;3)判断出栈顺序是否合法;4)计算逆波兰表达式。每种应用都配有Java代码示例,如利用栈结构验证括号匹配、实现数组逆序输出等。这些示例展示了栈在算法问题中的典型使用场景,帮助读者理解栈"先进后出"的特性及其实际应用价值。

2026-05-03 23:17:47 395 1

原创 Java数据结构4(自己实现简单LinkedList)

本文介绍了链表的基本概念及其实现方法。链表是一种非连续存储结构,通过节点间的引用连接数据,与ArrayList的连续存储不同。重点讲解了双向链表的实现,包括节点类定义(包含prev和next指针)以及核心操作方法:头插法、尾插法、任意位置插入、查找、删除(单个/所有指定值节点)等。代码示例展示了如何通过改变节点引用来实现增删操作,并提供了获取链表长度、清空链表等辅助功能。实现中特别处理了头尾节点的边界情况,确保操作的正确性。

2026-04-25 16:24:16 43

原创 Java数据结构3(ArrayList与顺序表)

本文介绍了ArrayList的核心知识点,包括其基本概念、三种构造方法(无参构造、指定容量构造和集合构造)、常见操作方法(增删改查等)、三种遍历方式(for循环、foreach和迭代器)以及扩容机制(默认1.5倍扩容)。文章通过一个洗牌算法的实例演示了ArrayList的具体应用,包括创建牌组、洗牌和发牌等操作。最后指出ArrayList作为连续存储结构,插入删除操作时间复杂度较高(O(N)),且扩容机制可能造成空间浪费。这些内容全面覆盖了ArrayList的基本特性和使用场景,为开发者提供了实用的参考。

2026-04-22 12:44:01 324 2

原创 Java数据结构2

这是一张Java 集合框架(Java Collections Framework)的核心继承关系图,它把 Java 里所有常用的「数据容器」的关系、分类和特点数据结构说白了,就是数据的「组织 / 摆放方式」物理上的 “摆放”:数据在内存里实际怎么存逻辑上的 “摆放”:数据之间的关系怎么定(谁先谁后、谁和谁关联、有没有顺序)(我们先从线性的摆放开始学起,也就是线性表)

2026-04-19 14:04:16 375 1

原创 Java数据结构1

本文摘要:文章系统介绍了数据结构与算法的基础知识。数据结构是计算机存储数据的组织方式,包含数据的存储和访问方法。算法效率分析包括时间复杂度和空间复杂度,采用大O渐进表示法估算性能。通过冒泡排序、二分查找、递归等示例详细讲解了复杂度计算方法。同时介绍了Java中的包装类(装箱拆箱机制)和泛型概念,说明泛型通过类型参数化实现代码复用。文章结合具体代码示例,帮助理解数据结构和算法的核心概念及其实际应用。

2026-04-14 23:08:32 425

原创 Java项目里常见的模式

摘要:本文介绍了三种常见的设计模式:1)单例模式通过私有构造方法和静态变量确保类只有一个实例,分为饿汉式(提前创建)和懒汉式(延迟创建);2)工厂模式通过抽象产品和工厂类简化对象创建,避免直接new对象;3)代理模式通过代理类控制对原对象的访问,在不修改原代码的情况下增强功能,包括静态代理和动态代理两种实现方式。每种模式都通过具体代码示例说明了其实现原理和应用场景。

2026-03-27 13:13:05 409

原创 异常的认识

本文介绍了Java异常处理的基本概念和方法。主要内容包括:1.异常分类体系,分为Error(严重JVM错误)和Exception(可处理异常);2.两种异常处理方式:throws抛出给JVM和try-catch-finally自行处理;3.异常传递机制,从下层方法向上层方法逐级查找处理;4.自定义异常的应用场景;5.通过两道面试题演示异常处理的优先级和传递过程。文章重点讲解了运行时异常和编译时异常的区别,以及如何通过throw和throws配合使用来优化异常处理逻辑。

2026-03-23 14:38:33 487

空空如也

空空如也

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

TA关注的人

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