avatar
文章
35
标签
28
分类
11

首页
时间轴
标签
分类
列表
  • 音乐
  • 电影
  • 照片
友情链接
关于
Journey
搜索
首页
时间轴
标签
分类
列表
  • 音乐
  • 电影
  • 照片
友情链接
关于

Journey

计算机网络复习重点
发表于2026-01-12|更新于2026-01-15|计算机网络
一、OSI七层模型 应用层:为最终用户提供网络服务接口,包含各种应用程序协议,如HTTP、FTP、SMTP、DNS等。 表示层:处理数据的表示、安全和压缩,负责数据格式转换、加密解密等。 会话层:管理用户间的会话,负责建立、维护和终止会话。 传输层:定义端口号,负责数据的分割、流控和差错校验,主要协议有TCP和UDP。 网络层:负责逻辑地址寻址和路径选择,主要协议包括IP、ICMP等。 数据链路层:建立逻辑连接,进行硬件地址寻址和差错校验,主要协议有ARP。 物理层:负责建立、维护和断开物理连接,处理通信信道上的原始比特流传输。 二、TCP/IP模型TCP/IP模型分为四层,自下而上分别为 网络接口层 网络层 传输层(Transport) 应用层(Application) 但为了方便学习,教学中将网络接口层拆成数据链路层和物理层进行学习,以下是按这5层的学习重点描述: (1)应用层应用层是TCP/IP模型中的最高层,直接面向用户,为应用程序提供网络服务。常见的应用层协议如下所示: DNS(域名系统–D**omain Name **System)1. ...
手写RPC框架
发表于2025-12-15|更新于2025-12-31|java|rpc
什么是RPC我的理解是,RPC(远程过程调用)是一种让程序能够像调用本地函数一样调用远程服务的思想概念。而RPC协议,则是详细设计了通信的数据格式(如JSON、XML、Protobuf)、传输协议(TCP/HTTP等)和序列化方式,从而将复杂的网络通信细节封装起来。 任何人都可以定义自己的rpc协议,只要: 明确的格式规范:定义请求和响应数据的结构、字段、编码方式 完整的调用语义:包含方法标识、参数传递、返回值、错误处理机制 一致的序列化:双方使用相同的序列化/反序列化规则 基本功能实现下面,我将完整介绍如何实现一个基本的RPC框架,主要涉及服务的注册和远程调用。 环境配置创建一个Maven项目,然后分别创建如下四个模块 通用模块通用模块存放了远程调用的接口和一些公共配置。消费者需要这个调用这个接口的远程实现。而服务端提供了这个接口的实现类,并可供消费者调用。 结构很简单,如图所示 在common模块中定义一个HelloServer的接口 1234567891011/** * * 远程调用的通用接口 * * @author ldy * @date 2025/ ...
如何自己实现一个Spring的starter依赖
发表于2025-12-10|更新于2025-12-22|spring|spring
Spring Boot自动装配原理解析及自定义Starter开发指南在使用Springboot做项目的时候,你是否好奇,为什么项目里只要引入了那些starter为后缀命名的依赖,spring容器中就自动配置了这些依赖中的实现类,你只需要注入即可。比如RedisTemplate、RabbitTemplate等。你是否想自己也实现一个springboot可以自动配置的依赖。那么通过本篇文章,你就可以更加清晰的理解spring的自动装配机制,以及手动实现一个starter依赖。 一、SPI机制1.1 什么是SPI机制SPI,字面意思:服务提供者的接口 我的理解是,他是专门提供给服务提供者去开发的一个接口。SPI将接口的定义和实现分离开来,将两者解耦(放在不同的包)。从而提升程序的可扩展性(支持多种实现)。 举例很多框架都用到了SPI机制,比如Spring框架、数据库驱动、日志接口等。 以日志接口举例:slf4j提供了spi接口,然后有多个实现spi的依赖包可供选择,比如原生的logback或者其他开发者提供的log4j2。⭐(这里可以记下,贴合实际,面试有用) 模块 主要职责 是否S ...
轻松掌握Langchain4j
发表于2025-08-24|更新于2025-08-25|java|大模型
一、快速入门普通maven项目1.创建maven工程2.引入依赖123456<!-- 这个依赖额外提供 OpenAI 模型调用能力 --><dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>1.0.1</version></dependency> 3.构建聊天对象OpenAiChatModel因为Deepseek使用与OpenAi兼容的API格式,所以这里我创建了连接DeepSeek的模型 123456789101112131415public class App { public static void main(String[] args) { //1.构建openAiChatModel对象 OpenAiChatModel model = OpenAiChatMod ...
深入java集合
发表于2025-08-15|更新于2025-08-25|集合
一、内容概览 二、算法复杂度要想深入学习集合的底层原理,就要先对复杂度的概念有个清晰的认知。 (1)时间复杂度时间复杂度表示了算法的执行时间与数据规模n之间的增长关系。 常见的时间复杂度:O(1)、O(n)、O(n^2)、O(logn) 速记口诀:常对幂指阶 (2)空间复杂度空间复杂度表示算法占用的额外存储空间和数据规模n之间的增长关系。 三、List1.ArrayList(1)数据结构ArrayList底层使用数组来存储数据的。数组是一种用连续的内存空间存储相同数据类型的线性数据结构。 (2)基础问题1.数组下标为什么从0开始这就涉及到了数组元素的内存地址的计算问题了。 寻址公式 :baseAddress + i * dataType,计算下标的内存地址速率高。 人话:基地址 + 索引下标 * 元素类型占用的空间大小 如果索引是从1开始,那么寻址公式就需要对(i-1),对于cpu来说,相当于多了一个减法指令。 2.查找的时间复杂度 随机(通过下标)查找的时间复杂度是O(1) 查找未知下标的元素的时间复杂度是O(n) 如果未知下标,但数组是排好序的,那么利用二分查找的时间复杂度是O( ...
开发常见问题汇总
发表于2025-07-11|更新于2025-12-24|java
一、maven项目环境搭建每次创建项目时,都要借鉴已有的项目依赖和配置文件进行创建,依赖用于什么功能的,以及配置文件作用于哪些依赖的,都云里雾里的。为此,写一个通用的环境搭建的博客就方便我创建新项目,需要引入什么常见依赖就看看这篇博客,顺便看看依赖之间的关系和配置文件的使用,(●’◡’●)。 1.1 SpringBoot依赖以maven创建的项目为例,仅需基础springboot父工程,然后引入启动器和测试依赖即可。 注意:springboot父工程定义了很多需要使用的依赖版本,故部分依赖版本号无需手动指定。 123456789101112131415161718<parent> <!--继承springboot父工程--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.5</version>< ...
Java网络编程
发表于2025-06-01|更新于2025-11-06
Java网络编程一、基础知识IP: 用于标记计算机设备,是分配给上网设备的唯一标志。 有两种形式:IPv4和IPv6。 IPv4: 一共32位,分成四段表示。每段用十进制标志。 IPv6: 一共128位,分成八段表示,每段每四位编码成一个十六进制位表示,数之间用冒号分开。 示例: 12345678910//1.获取主机ipInetAddress localHost = InetAddress.getLocalHost();System.out.println(localHost.getHostName());System.out.println(localHost.getHostAddress());//2.获取域名ipInetAddress ip2 = InetAddress.getByName("www.zhihu.com");System.out.println(ip2.getHostName());System.out.println(ip2.getHostAddress());//ping www.zhihu.comSystem.out.print ...
Java深入学习
发表于2025-05-14|更新于2025-08-12|Java
这篇文章用于记录Java基础知识相关的深入学习。包括了 动态代理、反射、JVM 一、动态代理篇首先先理清代理的概念,代理就是用来增强原对象功能的。通过代理,可以无侵入式的给对象增强其他功能。 代理长什么样?代理类里面就是对象要被代理的方法。 Java通过什么来保证代理的样子?通过接口保证的,被代理对象和代理都需要实现同一个接口,而这个接口里的方法就是要被代理的所有方法。 例子JDK动态代理被代理的原对象 123456789101112131415161718192021222324252627282930public class Star implements Star_Interface { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Star() { & ...
黑马头条项目
发表于2025-04-30|更新于2025-05-10|微服务
有意义的亮点摘要后面总结 1.垂直分表 2.ElasticSearch 3.xxl-job 分布式任务调度框架
后端知识点总结
发表于2025-04-20|更新于2025-08-11|八股文|八股文
随心记 这篇用于随时记各类八股文,后面会详细拆分各个模块 一、Spring相关1.Spring框架中的单例bean是线程安全的吗?答:不是。首先,Spring中的单例bean是全局共享的。一般情况下,spring的bean中注入的都是无状态的对象(无状态指的是不会存储数据,即没有定义可修改的成员变量),所以不会有线程安全问题。但如果假设这个bean定义了可修改的成员变量,多个线程如果同时访问并修改这个成员变量时,可能会造成数据的不一致,这种情况可用使用多例或者加锁来解决。 知识点:无状态Bean(即没有可修改的成员变量)、有状态Bean 2.什么是AOP答:AOP的话,指的就是面向切面编程,简单说就是把一些业务逻辑中相同的代码抽取到一个独立模块中,通过动态代理的方式增强原方法,让业务逻辑更加简洁。 知识点: JDK动态代理,被代理的对象必须实现一个接口 CGLIB动态代理,适用于被代理的对象没有实现接口的场景。 Spring AOP 默认使用JDK动态代理,但如果目标类没有实现接口,则会自动切换到CGLIB动态代理。 AOP的具体应用 事务处理 统一异常处理 日志记录 权限控制 资源 ...
12…4
avatar
ldy
I am a slow walker,but I never walk backwards.我走得很慢,但是我从来不会后退
文章
35
标签
28
分类
11
别点这里
公告
This is my Blog
最新文章
计算机网络复习重点2026-01-12
手写RPC框架2025-12-15
如何自己实现一个Spring的starter依赖2025-12-10
轻松掌握Langchain4j2025-08-24
深入java集合2025-08-15
分类
  • Spring1
  • java5
    • redis1
  • javaweb1
  • redis1
  • spring1
  • ssm4
  • 八股文1
标签
Linux javaweb 大模型 八股文 java Docker 容器 微服务 redis 持久化 音乐播放器 算法 spring java ioc aop tx Java springmvc redis lua SpringBoot 计算机网络 rabbitmq 消息队列 spring rpc 项目 集合 EL redis SprinBoot Redis MinIO Linux Knife4j Mysql Springcloud mybatis mybatisplus spring java ioc mysql
归档
  • 一月 20261
  • 十二月 20252
  • 八月 20252
  • 七月 20251
  • 六月 20251
  • 五月 20251
  • 四月 20253
  • 三月 20254
网站资讯
文章数目 :
35
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By ldy
框架 Hexo|主题 Butterfly
搜索
数据库加载中