自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot配置文件详解

本文从配置文件的作用、快速入手,到properties与yml的语法、读取方式,最后通过一个验证码案例进行综合实践。

2026-10-17 14:51:15 142

原创 Spring IoC和DI(二)

其中BeanFactory提供了基础的访问容器的能力,而ApplicationContext属于BeanFactory的子类,它除了继承了BeanFactory的所有功能外,还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持。也就是让Spring调用这个方法,把它的返回值纳入IoC容器管理,方法只是一个工厂,真正的Bean是方法return出来的那个对象。依赖注入是一个过程,是指IoC容器在创建Bean时,去提供运行时所依赖的资源,而资源指的就是对象。指定当前要注入的Bean对象。

2026-10-11 10:49:44 156

原创 Spring IoC和DI概念篇

Spring:核心框架,提供IoC、DI、AOP等Spring MVC:基于Spring的Web框架Spring Boot :基于Spring的快速开发整合包。Spring MVC 和Spring Boot都属于Spring ,Spring MVC是基于Spring的一个MVC框架,而Spring Boot是基于Spring的一套快速开发整合包。像之前接触到的 List/Map-->数据存储容器、Tomcat-->Web容器、Spring-->IoC容器。

2026-09-26 16:49:54 160

原创 Spring MVC 常用注解和用法(二)——url,cookie,session

注意:这里必须使用@Controller,不能使用@RestController。否则index.html会被当作数据返回,而不是视图。JSON是一种轻量的数据交互格式,本质是字符串,负责在不同语言中数据传递和交换。如果类中有方法返回页面,有方法返回数据,可以将@ResponseBody加到对应方法上。1.1@PathVariable:获取url中参数。1.2@RequestBody:传递JSON数据。作用在类上:该类中的所有方法返回的都是数据。2.2@ResponseBody:返回数据。

2026-09-20 18:10:26 78

原创 Spring MVC的常用注解和用法(一)

Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。MVC:是一种软件架构设计模式;Web框架:用于处理浏览器与Java程序之间的交互。MVC(Model View Controller),把软件系统分为三个基本部分:View(视图):与浏览器交互,展示数据。Model(模型):处理业务逻辑和数据Cotroller(控制器):接收请求,选择模型处理,并决定返回哪个视图这是MVC的定义。

2026-09-16 17:31:37 223

原创 网络编程(二):UDP数据报在客户端与服务端之间的传输

发送一个数据报,该方法不会阻塞,直接发送若网卡队列满,可能丢包。

2026-07-11 22:24:52 295

原创 网络编程(一):网络编程初识

Socket是操作系统提供的一组用于网络通信的编程接口。它封装了TCP/IP协议栈的细节,让我们可以通过简单的函数调用来发送和接收数据。在Java中,java.net包提供了Socket相关的类,我们无需关心底层协议实现,直接使用即可。

2026-07-07 15:51:45 247

原创 Java网络原理初识——原理、分层模型与一次HTTP请求的全链路

封装:应用数据自上而下,每层加一个头部。数据——>段(TCP头+数据)——>数据报(IP头+段)——>帧(MAC头+数据报+帧尾)。分用:自上而下,每层剥掉对应的头部,根据头部中的“类型/协议”字段,将载荷交给正确的上层模块。

2026-06-20 21:16:25 233

原创 Java文件操作和IO(三)——深入理解数据流与文件内容读写

例如,中文字符在UTF-8中可能占3个字节,若用字节流著俄国字节读取,无法得到正确的字符。Java提供了字符流(Reader/Writer),它们以字符(16-bit Unicode)为单位,自动处理字节与字符之间额转换,前提是必须指定正确的字符集。当你调用write时,数据往往没有真正写在硬盘或网络上,而是被放在了缓冲区,只有缓冲区满了或者流被关闭了,数据才会真正被flush到目标设备上。Java将所有的I/O抽象为流,无论数据源是文件、内存、网络还是其他设备,开发者都可以使用统一的API进行读写。

2026-06-19 12:52:43 462

原创 Java文件操作和IO(二)——File类

java.io.File是一个抽象路径表示。它既可以表示一个文件,可以代表一个目录,甚至可以代表一个不存在的路径。File对象仅仅是对路径的封装,它的创建不会在磁盘上产生任何文件,真正的文件操作需要调用对应的方法才会触发。

2026-06-17 20:46:37 277

原创 Java文件操作和IO(一):文件的基础概念

当我们谈论计算机中的文件时,实际上是在讨论一种逻辑抽象。物理层面,我们的数据存储在硬盘、固态硬盘等持久化设备上,这些设备以扇形、块为单位存储二进制数据。如果直接面向这些物理地址,用户和程序都将寸步难行。于是操作系统引入文件这个概念,将分散的存储块组织成一个独立的单位,就像办公桌上的一份份纸质文件。每个文件拥有自己的内容和标签,用户可以按名称访问,而无序关心它具体在磁盘的哪个磁道上。

2026-06-16 21:46:20 402

原创 多线程初阶(四):单例、阻塞队列、定时器、线程池

通过前面学习,最后我们来梳理一下保证线程安全地整体思路。

2026-06-15 20:53:55 195

原创 Java多线程初阶(三)——线程安全问题以及synchronized与voltile如何解决线程安全

在之前文章中,我们学会了如何创建线程、使用Thread的核心方法以及线程的生命周期。但是,当我们真正让多个线程同时操作同一个共享变量时,问题来了——两个线程各自加50000次,结果却不是100000?这是经典的线程安全问题。今天这篇文章,从这个问题出发,一步步分析原因,然后介绍synchronized和volatile的应用。目录前言一、问题现场——一个进店的线程不完全案例二、线程安全的三大原因2.1.原子性被破坏2.2.内存可见性问题——Java内存模型(JMM)2.3指令重排序。

2026-06-14 13:14:24 561

原创 Java多线程初阶(二):核心方法与生命周期

1.isAlive()返回true当线程状态未RUNABLE、BLOCKED、WAITING、TIMED_WAITING。WAITING ←── notify/notifyAll/线程结束 ──→ RUNNABLE。2.线程正在运行,仅设置中断标志,需要线程自己检查isInterrupted()并退出。注意:interrupted()是静态方法,判断当前线程是否是中断,且清除标志位;4.interrupt()——中断线程。│ wait() / join() (无超时)2.join()——等待线程结束。

2026-06-14 09:41:33 214

原创 Java多线程初阶(一):认识线程、创建方式

线程是程序中的一条执行路径,可以理解为“一个独立干活的人”。一个进程可以包含多个线程,这些线程并发地执行不同任务。

2026-06-10 19:40:12 180

原创 计算机是如何工作的

现在回头看,一个简单的System.out.println("Hello")经历了什么?1.编写Java源代码2.Javac编译成字节码3.JVM加载字节码,解释/JIT编译成机器指令4.操作系统创建进程,分配内存,建立页表5.CPU的PC指向第一条指令6.控制单元取指令、译码7.ALU执行计算8.写回到显存9.时钟终端可能发生,操作系统切换进程10最终,显示器出现你想要的输出。

2026-06-10 13:43:26 274

原创 Java数据结构——Map&Set

二叉搜索树(Binary Search Tree)满足:1.若左子树不为空,那左子树上所有节点的值都小于根节点的值2.若右子树不为空,则右子树上所有节点的值都大于根节点的值3.左右子树本身也是一个二叉搜索树中序遍历可以得到一个递增序列哈希表(Hash Table)是一种通过哈希函数将键映射到数组中某个位置。从而实现快速存取的数据结构。理想情况下,插入、删除、查找的时间复杂度都是O(1)。在HashMap中,判断两个Key是否相等的逻辑是:1.先比较hashCode是否相等。

2026-06-07 15:04:13 258

原创 Java——从插入排序到归并排序

本文将详细介绍七大排序插入排序:直接插入排序,希尔排序选择排序:直接选择排序,堆排序交换排序:冒泡排序,快速排序归并排序此外,还会拓展介绍非比较排序(计数排序,基数排序,桶排序),分析各算法的时间复杂度,空间复杂度与稳定性。排序:是将一串记录(或数据元素)按照某个或某些关键字的大小,递增(升序)或递减(降序)排列的操作。

2026-05-31 12:58:20 295

原创 Java数据结构——优先级队列

优先级队列是一种特殊的队列,它支持两种核心操作:1.返回最高优先级对象2.插入新的对象与普通队列不同,优先级队列不是先进先出,而是高优先级的先出。如果优先级相同,则通常按插入顺序或元素自然顺序决定对于集合K={……},将其按完全二叉树的顺序存储在一维数组中。小根堆:任意节点Ki<=K2i+1且Ki<=K2i+2大根堆:任意节点KI>=K2i+1且Ki>=K2i+2堆的两个重要性质:堆中的某个节点的值总是不大于(或不小于)其父节点的值。堆总是一个完全二叉树。

2026-05-30 19:42:00 161

原创 Java数据结构——二叉树(一)

树是由n个有限节点组成的层次关系的集合。当n=0时称为空树。树的特点:有一个特殊的节点称为根节点,根节点没有前驱。除根节点外,其余节点被分成M个不相交的集合,每个集合又是一个子树。每个子树的根节点有且只有一个父节点,可以有0个或多个子节点。子树直接不能有交集,否则就不是树二叉树是n个节点的有限集合:可以是空树(n=0)或者由一个根节点和两棵互不相交的左子树,右子树组成,左,右子树本身也是二叉树。二叉树的特点:每个节点最多有两个子节点(度<=2)。

2026-05-26 21:05:38 320

原创 Java数据结构入门——栈和队列

栈是一种只允许在一段进行插入和删除操作的线性表。允许操作的一段称为栈顶,另一端称为栈底核心特性:后进先出(LIFO)类比生活中的场景:叠盘子:后洗干净的盘子放在最上面,取用时先取最上面的撤销操作:最后执行的操作最先被撤销。基本操作:压栈(push):将元素放在栈顶出栈(pop):将栈顶元素移除并返回。查看栈顶(peek):只返回栈顶元素,不移除。队列是只允许在一端插入(队尾),在另一端删除(队头)的线性表。核心特性:先进先出类别生活中的场景:排队买票:先到的人先买到票,后来的人排在队尾。

2026-05-23 20:55:48 448

原创 Java数据结构——LinkedList与链表

LinkedList是java集合框架中List接口的双向链表实现。它没有RandomAccess接口,因此不支持高效随机访问(get(int index)时间复杂度O(N))。特点:任意位置插入/删除效率高O(1),前提是已经持有节点引用实现了Deque接口,可以用作双端队列内存不连续,对CPU缓存不友好相比ArrayList占用更多内存(每个节点存储两个引用)链表的基本概念与分类手动实现单向链表和双向链表的核心方法LinkedList的构造,常用方法,遍历方式。

2026-05-20 21:47:13 364

原创 Java数据结构——List接口与ArrayList源码剖析

目录一.什么是List ?二.顺序表与ArrayList的关系2.1什么是顺序表?2.2 ArrayList:Java中的动态顺序表三.ArrayList的核心使用3.1构造方法3.2常用方法3.3三种遍历方式四,深入理解ArrayList扩容机制4.1问题引入4.2源码分析(JDK 17)五.案例5.1简单的洗牌算法5.2杨辉三角六.ArrayList的优缺点与适用场景七。常见面试题目总结: 在集合框架中,List是一个接口,继承自Collection。它代表一个有序,可重复的元素序列,允许

2026-05-20 18:06:17 596

原创 Java数据结构入门:集合框架,时间复杂度与泛型解析

Java集合框架(JCF)是定义在Java.util包下的依据接口和实现类,也被称为容器。它的作用是将多个元素放入一个单元中,并提供一套标准的增删查改操作。集合框架:一组接口和实现类,封装了常见的数据结构时间复杂度:大O表示法描述算法运行时间增长趋势,关注最坏情况空间复杂度:临时占用额外空间的量度包装类:基本类型的引用类型封装,支持自动拆箱/装箱,注意缓存池泛型:类型参数化,编译时类型安全,运行时擦除通配符:?extends用于生产者,?super用于消费者。

2026-05-16 15:09:54 363

原创 Java基础——异常处理

在日常开发中,程序在运行时总会遇到各种“意外”——数据格式不对,内存溢出......这些“意外”在Java中被称为异常。如何处理异常呢?本文将带你系统学习Java异常处理机制,涵盖异常概念,体系结构,处理方式,自定义异常等核心内容。目录一.异常的概念与体系结构1.1什么是异常?1.2异常体系结构1.3异常分类二.异常的处理方式2.1防御式编程2.2关键字三.异常的使用3.1抛出异常:throw3.2声明异常:throws3.3捕获异常:try-catch-finally四.异常处理流程五.自定义异常类。

2026-05-11 21:48:59 347

原创 Java基础——String类

在C语言中,处理字符串往往需要借助字符数组或指针,再配合标准库函数(strcpy,strlen)。这种方法将数据与操作方法分离开来,不太符合面向对象的思想。而字符串再日常开发中无处不在,因此java专门设计了String类,将字符串相关的数据和操作封装在一起。本文将带你全面了解String的内部原理,常用方法,不可变性,常量池机制,以及它的“好兄弟”StringBuilder和StringBuffer。目录一.String的构造方法二.String的内存布局与常量池。

2026-05-10 22:06:09 392

原创 Java基础——抽象类与接口

在Java面向对象编程中,抽象类,接口,内部类以及Object类是构建灵活,可拓展代码的核心工具。理解它们的区别与联系,掌握使用场景,是每一位Java开发者进阶的必经之路。本文将结合通俗易懂的案例,带你彻底搞懂:抽象类的概念,语法和特性接口的定义,多实现与继承Object类的常用方法(toString,equals)各种内部类的使用(静态内部类,实例内部类,局部内部类,匿名内部类)抽象类与接口的核心区别目录一.抽象类1.1为什么需要抽象类1.2抽象类语法1.3抽象类特性1.4抽象类的作用。

2026-05-10 16:36:37 372

原创 Java基础——多态

在面向对象编程中,继承实现了代码的复用,而多态则让代码更具拓展性和灵活性。多态(Polymorphism)——“多种形态”,指的是同一行为在不同对象上表现出不同的结果。例如:让猫和狗都执行“吃”这个动作,猫吃鱼,狗吃骨头。这就是多态的直观体现。本文将从多态的概念开始,详细解析Java中多态的实现条件,方法重写规则,向上/向下转型,动态绑定机制,多态的优缺点。目录一.多态的概念1.1多态的实现条件二.方法重写(Override)2.2重写vs重载2.3重写的设计原则三.向上转型与向下转型。

2026-05-05 20:54:18 447

原创 Java基础——继承

在面向对象编程中,继承是实现代码复用,建立类之间层次关系的重要机制。通过继承,我们可以将多个类的公共部分抽取到父类中,子类只需要关注自己特有的属性和行为,从而让代码更加简洁,易于维护。本文将从为什么需要继承讲起,详细解析java中继承的语法,成员访问规则,super关键字,构造方法互动,protected访问权限,代码块初始化顺序,final的限制作用。目录一.为什么需要继承——代码的复用二.继承的基本语法2.1什么是继承?2.2 extends关键字三.父类成员访问规则3.1成员变量访问:就近原则。

2026-05-05 17:47:04 559

原创 Java基础--类和对象指南

类:是对现实世界实体的抽象描述,相当于一张设计图纸,它规定了给实体有哪些属性(如品牌,尺寸)和哪些功能(如洗衣脱水)。对象:根据图纸实例化出来的具体东西,真正存在于内存中。内存视角:定义一个class时,JVM只是在方法区记录了这个类的结构,并没有分配存储数据的空间。当使用new关键字实例化对象时,JVM才会在堆内存中开辟空间存储具体数据。//成员变量(属性)//成员方法(行为)//洗衣机类示例// 成员变量// 品牌// 型号// 重量// 颜色// 成员方法。

2026-04-28 21:17:13 478

原创 Java基础入门--数组指南

1.数组是存储相同类型元素的连续内存空间,支持随机访问。2.数组是引用类型,变量存的是堆中的地址。3.二维数组本质是数组的数组,支持不规则结构(锯齿结构)

2026-04-26 22:00:07 478

原创 Java基础入门

Java是一种优秀的面向对象程序设计语言,以其精简的语法和强大的跨平台能力而闻名。Java提供了一整套用于软件开发和跨平台部署的支持环境。Java程序的运行机制:Java源代码经过编译生与平台无关的字节码(.class)文件,这些字节码可以在任何安装了Java虚拟机(JVM)平台上运行。修饰符 返回值类型 方法名 ([参数类型 形参]){方法体代码;[return 返回值;示例:判断闰年} else {// 输出true本文梳理了java入门阶段的核心知识点。

2026-04-18 10:01:10 589

空空如也

空空如也

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

TA关注的人

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