- 博客(55)
- 收藏
- 关注
原创 【消息队列】AMQP协议
AMQP:Advanced Message Queuing Protocol,高级消息队列协议,它是一个面向消息中间件的开放应用层协议,用来让客户端和消息代理之间以统一、可互操作的方式通信。
2026-03-20 10:40:33
389
原创 【计算机网络】网络数据通信基本流程
一不小心又鸽了这么久,,,咳咳,这节我们来继续了解计网中的网络数据通信基本流程,也就是一个数据包是怎么在网络上传输并被对端接收使用的。
2026-01-30 16:51:09
452
原创 【项目实战】zookeeper+dubbo搭建分布式项目
正如标题所言,这篇文章来介绍一下我是怎么使用zookeeper+dubbo成功搭建一个分布式项目的。
2026-01-16 14:41:18
578
原创 【MyBatis】DML映射
这一篇没有什么“高深”的内容,但它决定了你后面写的每一条 SQL 是否安全、可控、好维护如果说 resultMap 是在告诉 MyBatis:“结果你别乱猜,我来告诉你怎么映射”;那 DTO + DML 映射就是在告诉它:“参数你只管用,别帮我造对象”
2026-01-14 15:03:00
996
原创 【MyBatis】简单映射
今天开始复习总结MyBatis,正好换了新电脑(嘿嘿),重新熟悉一下如何从头开始创建一个MyBatis项目、导入依赖、基础配置、编写Mapper、结果映射、获取结果~
2026-01-14 11:43:10
727
原创 【JavaEE】Spring AOP(二)
前情提要:前文书我们说到Spring AOP并不会修改原始Bean,而是通过代理对象,接管方法调用过程那么问题来了,这个代理对象是怎么来的?是谁生成的?为什么它看起来像原始对象?答案就俩字:代理这篇文章,我们就来详细介绍一下这两种机制以及他们之间的区别。
2026-01-13 15:15:57
1076
原创 【javaEE】Spring AOP(一)
书接上文,我们已经把对象交给了 Spring,类被注册为 Bean,依赖由容器注入,一切看起来都非常优雅。Bean 在什么时候创建?依赖在什么时候注入?初始化方法什么时候执行?上一篇,我们已经把这些问题拆得很清楚了,但事情并没有结束你有没有想过一个问题:你拿到的,真的就是当初 new 出来的那个 UserService 对象吗?如果你在项目里用过事务、日志、权限校验、监控……
2026-01-13 10:49:41
748
原创 【JavaEE】Spring IoC(二)
现在,BService已经是完整对象,Spring回到AService,将BService注入进AService,AService创建完成Spring能解决循环依赖的前提,是Bean在依赖注入之前,就已经有了一个真实存在的对象实例也就是说,构造方法先执行,对象先“出生”,再慢慢补齐依赖这正是字段、Setter注入能被解决的原因。
2026-01-10 15:34:07
826
原创 【计算机网络】网络发展历程与网络模型
回顾一下前面几篇,Java基础、多线程、IO都介绍了一轮,现在终于轮到计算机网络这个老朋友了(绝对不是因为我马上要考计网借此复习的)其实一开始我对计网这门课或者说这一系列知识的态度是,这玩意不就是应付考试的,,,背会了不就好了但是当我真正开始做项目写程序,修bug部署服务器的时候发现,大意了,,,这玩意真得好好学一下的所以我新开了这一系列博客,打算从头开始,一点一点把计网这套东西搞清除。
2026-01-09 22:59:00
1172
原创 【JavaSE】IO之字符流与编码机制
上一篇文章中,我们介绍了Java IO中的字节流,并通过InputStream / OutputStream 完成了文件的读写操作字节流以byte为最小单位,能够精确地操作文件中地原始数据,因此非常适合处理图片、视频等二进制文件而在实际开发中,我们更多面对的是文本文件,此时开发者真正关心的往往不是“字节”,而是“字符”为了解决文本读写以及字符编码相关的问题,Java在字节流之上,有提供了一套的抽象一句话来说,就是在字节流之上,由编码参与的IO操作。
2026-01-09 15:05:11
1229
原创 【JavaSE】IO之字节流与文件读写
通过上文我们知道,流是一个操作系统层面的概念,本质上,流表示的是Java提供了一组IO相关的类,用来统一描述对数据的输入和输出操作。
2026-01-09 13:40:58
1144
原创 【JavaSE】文件基础与File类
在日常开发中,我们几乎每天都在和“文件”打交道:读取配置文件、写日志、上传下载文件……但很多时候,我们对“文件”的理解其实是比较模糊的,这篇文章我们将从文件的基本概念出发,重新了解一下文件~
2026-01-08 15:55:13
350
原创 【JavaSE】多线程之安全使用容器
不出意外这是多线程的最后一篇文章,主要介绍的是面试中比较常考的一个点——多线程下使用容器,我们开始吧~我们知道,在单线程环境下ArrayList、HashMap等容器使用起来非常方便,但在多线程环境中,如果多个线程同时对容器进行修改,就可能导致数据不一致、数组越界甚至死循环等问题那么在多线程环境下我们该如何安全地使用这些容器呢?
2026-01-08 15:23:36
932
原创 【JavaSE】多线程之JUC组件
嘿嘿,一不小心从25年鸽到了26年,,还记得我们在这里留了一点尾巴,也就是JUC(java.util.concurrent包),里面包括一些多线程相关工具,接下来我们就来介绍一下。
2026-01-08 13:59:45
1204
原创 【JVM】基础概念之内存结构介绍
通过前一节的内容我们了解了,我们的Java程序都是运行在JVM上面的,那么JVM具体内部是怎样划分的呢?我们来具体了解一下JVM内存区域可以被划分为这样几个核心部分:运行时数据区、直接内存、执行引擎、本地库接口和垃圾回收系统现在我们对这几个核心区域有了一定了解,接下来我们着重介绍一下运行时数据区和垃圾回收系统这两部分。
2025-12-03 01:09:00
666
原创 【JVM】基础概念之为什么要使用JVM
换句话讲,JVM就是在字节码和机器码之间做一个翻译的工作,不同平台的机器码存在区别,JVM存在适配不同平台的版本来解析字节码(生成的字节码都是相同的);正是因为所有平台的JVM都能解读同一份字节码,所以开发者只需编译一次就能在任何安装了JVM的平台上运行,这也就是“一次编译,到处运行”的本质。也就是打开下载好的电子书之前,里面的内容需要先加载出来,比如书里的 “前言固定说明”(类似静态变量的显式赋值)和 “开篇必读提示”(类似静态代码块),得先按规则准备好,才能让读者翻开时看到完整内容。
2025-10-21 22:20:38
849
原创 【JavaSE】多线程之CAS和原子类
CAS:compare and swap,翻译过来就是比较并交换我们可以借助伪代码来感受一下这个过程上述的CAS一整个过程是CPU的一条指令,不可拆分,因此具有原子性,指令本身也就不存在指令重排序、编译器优化等线程安全问题操作系统对这个指令进行了封装,提供了一些API供C++调用,而我们的JVM又是基于C++实现的,这样JVM也能够调用这样的CAS操作既然它是线程安全的,我们为什么之前一直没有直接调用这个指令呢?
2025-10-20 18:44:14
407
原创 【JavaSE】多线程之synchronized相关情况
前一篇文章中我们了解了几种常见的锁策略,这里我们来着重介绍一下synchronized的相关情况。
2025-10-20 16:43:49
295
原创 【JavaSE】多线程之常见的锁策略
这篇文章主要介绍一下多线程中常见的几种锁,以便大家更好的了解和使用锁tip:此处的锁策略不是和Java强相关的,其他语言只要是涉及到并发编程都可以谈到这样的锁策略。
2025-10-19 16:09:40
865
原创 【JavaSE】多线程之代码案例(四)
Java标准库定义的定时器——Timer使用的时候需要结合TimerTask类,相当于将要执行的任务放在TimerTask实例中,再调用Timer中的schedule方法,将任务和执行时间添加到任务列表中定时器,顾名思义,就是给线程设置一个时间,到点执行@Override}, 2000);运行的结果就是,依次打印hello time1000/2000/3000。
2025-08-23 20:36:30
227
原创 【JavaSE】多线程之代码案例(一)
I’m back ~ 本节将主要介绍多线程中几种常用的设计模式(类似于模板?一种编程的软性要求,能够提升代码质量和程序运行效率,总之,好啊<(^-^)>)tips:不同编程语言由于代码风格不同,有些设计模式可能在某个语言中是不适用的。
2025-08-13 01:58:42
503
原创 【JavaSE】多线程之线程安全(下)
本节是线程安全的最后一部分,当然了,线程安全这个概念本身会伴随着我们整个多线程学习部分,so,let’s begin~
2025-08-13 00:27:43
653
原创 【JavaSE】多线程之Thread类(下)
前面我们了解了Thread类中的常用属性,本节我们来介绍Thread相关的方法以及几种基本的线程操作。
2025-08-08 00:18:58
1010
原创 【JavaSE】多线程之Thread类(上)
经过前面几篇文章的铺垫,相信大家对于多线程已经有了初步的了解,本篇将着重介绍多线程的封装类——Thread类。
2025-08-07 22:13:44
722
原创 【JavaSE】多线程之线程介绍
嘿嘿,是不是有点绕晕了,可以这样理解,CPU是一个工厂,进程是工厂中不同的流水线,每一条流水线上都拥有一定的机器和原料(资源)用来加工,线程则是流水线上的工人,轮流在这条流水线上工作,每条流水线的工人使用的都是这条流水线上的资源。通过前面的内容我们已经知道,计算机中运行的程序都是由操作系统来管理的,进程则是操作系统分配资源的基本单位,为了提升CPU的运行效率,我们采用分时复用、多线程等方法进行多个程序的并发、并行执行。还有可能,线程1、2在一个核心上来回切换,线程3在另一个核心上和其他进程的线程来回切换。
2025-07-29 12:15:13
791
原创 Java数组
数组表示一个相同类型元素的集合对于一个数组,可以有以下几种定义方法//并没有进行初始化对数组进行整体初始化,只能在定义数组的时候进行存储类型为引用类型时,默认值为NULL存储类型为布尔类型时,默认值为false存储类型为整型时,默认值为0。
2025-04-22 20:07:40
1032
原创 Java方法
简单来说,方法就是一个可以解决某些问题、完成某项功能的代码块(类似于C语言中的函数)规模化组织代码做到代码复用(一份代码可以在多个位置使用)让代码更具可读性、便于理解直接调用现有的方法开发,不必重复造轮子,提高效率修饰符 返回值类型 方法名称(参数类型1 形参1, 参数类型2 形参,……){方法体 //代码主体return 返回值 //不一定存在修饰符:public、private、protected、static、final等(这里后续会展开介绍)
2025-03-17 20:43:45
980
原创 Java运算符&逻辑控制&输入输出
和C逻辑相同,括号中必须是布尔表达式,注意花括号的位置(左括号和if在同一行)~是一元运算符,其余都是二元运算符,针对的是数据的某一个位(二进制位)操作数为布尔类型时,位运算和逻辑运算原理相同,但是不存在短路问题。运算规则与数学计算规则相同,需要注意以下几点。=、<、>、<=、>=分为前置++(--)、后置++(--)运算符:+=、-=、*=、/=、%=和C逻辑相同,括号中必须是布尔表达式。运算符:+、-、*、/、%运算符:<<、>>、>>>运算符:&&、||、!运算符:&、|、~、^
2024-10-11 22:35:53
1056
原创 Java数据类型&常量
定义常量,使用final关键字,后跟数据类型、常量名和初始值,例如其中MAX_WIDTH和COMPANY_NAME就是常量,他们分别被赋值为800和"Tech Corp"tips:一般将被修饰的变量大写。
2024-10-09 19:27:59
976
原创 Java关键字&标识符
abstract:抽象类型final:修饰类,表示该类不能被继承;修饰方法,表示方法不能被重写;修饰变量,表示变量不能被修改static:静态类型synchronized:修饰方法,表示只有一个方法进入临界区1.3类间关系extends:表示类之间的继承implements:表示实现了一个或多个接口1.4定义建立实例及引用实例new:创建一个对象this:表示调用本类中的变量或方法super:表示调用父类中的变量或方法instanceof:测试对象是否是类的实例。
2024-10-08 19:10:55
465
原创 Java开发环境&命名规则
源代码(Test.java)->class文件(Test.class)->JVM java虚拟机。JRE ---- Java Runtime Environment Java运行环境。JDK ---- Java Development Kit Java开发者工具。JVM ---- Java Virtual Machine Java虚拟机。注意:main不是关键字,可以将变量定义成main。文档注释中需要包含相关内容。
2024-10-08 08:20:28
605
原创 Java异常
Java中虽然已经内置了丰富的异常类,但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构自定义异常通常会继承自Exception或者RunTimeException继承自Exception的异常默认是受查异常继承自RunTimeException的异常默认是非受查异常。
2024-07-20 11:02:13
756
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅