个人向galgame原声带或相关音乐整理及其资源
也是一直以来打算整理一下自己爱听的galgame ost
或者其他galgame相关的音乐,按照专辑的方式进行整理,同时我有的也会扒下来上传
就借助这个机会,好好的搞一下吧
顺序随缘
持续更新
【FLAC+MP3】AIR ORIGINAL
SOUNDTRACK
神尾观铃镇楼
AIR ORIGINAL SOUNDTRACK
通过网盘分享的文件:AIR ORIGINAL SOUNDTRACK.zip
13XeUCWQxV19snaDqzz48uA?pwd=1174 提取码: 1174 解压 10086
【WAV】ゲーム「水葬銀貨のイストリア」Sound
Track/ウグイスカグラ
【WAV】ゲーム「水葬銀貨のイストリア」Sound
Track/ウグイスカグラ
【WAV】ゲーム「水葬銀貨のイストリア」Sound Track/ウグイスカグラ.zip
百度网盘
提取码: 1174
【FLAC】さよならアーリーサマー/やなぎなぎ、麻枝准
img
百度网盘
提取码: 1174...
Netty part1—网络编程基础与Netty入门
网络编程基础
何为网络编程
网络编程的核心,是让运行在不同机器或同一机器的进程能够相互通信、交换数据。Netty
本质上就是一个高度封装、高性能的网络编程框架
从最朴素的定义看,网络编程就是利用网络应用编程接口开发通信应用程序,实现两个或多个设备之间的信息交互。这里的
接口,在绝大多数场景下指的就是 Socket(套接字)。
Socket
可以理解为操作系统提供给应用程序的通信端点。它像文件一样被打开、读取、写入和关闭。应用程序把数据写入
Socket,由操作系统内核负责后续的协议封装和网络发送接收方则从自己的
Socket 中读出内核递上来的数据。
网络协议栈(TCP/IP)的复杂处理由内核完成,应用层只面对 Socket
这个抽象,这正是网络编程得以相对简单地进行的根本原因。
一次网络通信涉及两个基本角色:客户端发起请求,服务端监听并响应。
为了定位通信的双方,需要 IP
地址(找到哪台机器)和端口号(找到机器上的哪个进程)。
了解 Socket 和 Socket
的基本操作
要想解释清楚 Socket,首先要知道 TCP,要想知道...
RabbitMQ、Kafka等消息队列相关面试题和面试知识点讲解
消息队列基础
为什么系统里要用消息队列?请结合「跨服务最终一致性」说说,MQ
解决了哪一类问题。引入 MQ
会带来哪些新问题?什么场景不该用 MQ?
在跨服务场景中,三大价值是这样体现的:
解耦:例如,订单服务不需要在代码里硬编码调用库存、积分、物流的接口。它只管把“订单已创建”这个事件扔进
MQ,谁关心这个事件谁就自己去订阅。以后新增一个相关的业务,订单服务一行代码都不用改。
异步:同步调用三个下游假设分别耗时
200ms、300ms、150ms,加上本地写库,用户要等近 1 秒。引入 MQ
后,订单服务写完本地库、发完消息(假设
5ms)就直接返回给用户,把服务必须的同步等待变成了最终一致性,用户体验是质变。
削峰:如果遇到大促,订单创建 TPS 瞬间飙到
5000,但库存服务数据库最多只能抗 2000 TPS。MQ 作为缓冲池,把 5000
个请求先囤起来,库存服务按自己的节奏以 2000...
Web实时消息推送的两种方案—WebSocket和SSE,从原理到落地
Web
实时消息推送的两种方案:WebSocket 与 SSE
在接触服务端消息主动推送的时候,做业务遇到需要一个”新消息提醒”、“订单状态变化”、“进度条实时更新”这种,其实第一反应是加一个定时器轮询接口。但是很明显,在你的业务压力不是很大的时候,这种方式会白白浪费很多宝贵的系统资源。。。因此,在一个事件完成之后,服务端主动推送消息是很有必要的。
从轮询到推送,实时消息到底难在哪
HTTP
的本质就不支持服务器主动说话
要理解实时推送难在哪,得先接受一个有点反直觉的事实:HTTP
从设计之初就不是为了”服务器主动找客户端”而生的。
在经典的 HTTP 请求响应模型里,通信永远是客户端发起的:
123456客户端 服务端 | | | ----------- 请求 (Request) -------------> | | ...
SpringDataJPA,Hibernate,MyBatis常见面试题汇总
Spring Data JPA 和 JPA
Spring
中的 JPA 和 Hibernate 有什么区别?Spring Data JPA 能不能脱离 Hibernate
用?
名称
负责什么
典型内容
JPA / Jakarta Persistence
定义对象关系映射和持久化行为的标准
@Entity、EntityManager、JPQL、Criteria
API
Hibernate ORM
实现规范,生成 SQL,管理实体状态
Session、脏检查、代理、批处理;另有 Hibernate 扩展
Spring Data JPA
在 JPA 上封装数据访问接口
JpaRepository、方法名派生、分页、Specification
JPA 是 Java 官方定义的 ORM
规范,只定义了接口和注解,不提供实现,Spring Data JPA 是 Spring 对 JPA
的再封装,不是 JPA 实现,底层默认用 Hibernate;
Hibernate 是...
Spring Security及网络安全相关内容面试题汇总
Spring Seucrity 相关重要知识
Spring
Security 到底是什么?过滤器链是怎么串起来的?
Spring Security 本质上就是一组 Servlet 过滤器,为
Java 应用提供认证、授权,以及一系列安全防护
它不创造新的运行容器,而是挂到 Servlet 容器的
FilterChain
上,所以它管不到过滤器链之前的东西
它的真正威力在于扩展力,几乎每个环节都留了扩展点。
对于过滤器链,首先先看三个类
DelegatingFilterProxy:它只是一个“壳”,由 Servlet
容器注册;作用是把请求委托给 FilterChainProxy 这个
Bean,这样就能让容器拿到 Spring 容器管理的 Filter
FilterChainProxy:Spring Security...
Spring Boot 相关面试题整理—相关注解
Spring Boot 框架相关注解
@Aspect注解的使用?如何定义切面和通知?结合
Spring 框架聊聊
@Aspect注解是 Spring AOP
中定义切面类的核心注解,需要配合@Component注册为
Bean。一个标准的切面类需要同时使用@Aspect和@Component两个注解
Spring AOP 基于代理机制,所以只有通过 Spring
容器调用的方法才能被拦截,这也是为什么我们要确保被拦截的类要注册为
Spring Bean 的原因。
切面定义通过在类上添加@Aspect实现,切点定义使用@Pointcut注解指定拦截规则,比如@Pointcut("execution(* com.example.service.*.*(..))")表示拦截
service 包下所有方法。
谈到 @Aspect
时,你需要明确 Spring AOP 和 AspectJ 的关系:Spring AOP 实际上借鉴了
AspectJ 的注解体系,包括 @Aspect、@Pointcut、@Before...
Redis面试题汇总和面试知识讲解
缓存基础
缓存的基本思想其实很简单,就是我们非常熟悉的
空间换时间
这一经典性能优化策略的运用。所谓空间换时间,也就是用更多的存储空间来存储一些可能重复使用或计算的数据,从而减少数据的重新获取或计算的时间。
说到空间换时间,除了缓存之外,这里再列举几个常见的:
索引:索引是一种将数据库表中的某些列或字段按照一定的排序规则组织成一个单独的数据结构,虽然需要额外占用空间,但可以大大提高检索效率,降低数据排序成本。
数据库表字段冗余:将经常联合查询的数据冗余存储在同一张表中,以减少对多张表的关联查询,进而提升查询性能,减轻数据库压力。
CDN(内容分发网络):将静态资源分发到多个边缘节点以实现就近访问,进而加快静态资源的访问速度,减轻源站服务器以及带宽的负担。
缓存的分类有哪些?他们在你开发中你都是如何使用的?
日常开发中,缓存基本分为三种:
类型
位置
典型代表
核心特点
本地缓存
应用进程内
Caffeine、Guava...
从JDK8开始各个版本JDK的重要新特性
前言
关注 JDK 新特性中的什么内容
学习 JDK
新特性,最容易遇到的问题就是:版本很多,特性更多,但是看完一长串名称之后,还是不知道它们到底解决了什么问题。
对企业开发来说,真正值得关注的变化,通常会影响下面几件事:
业务代码怎么写:Lambda、Stream、Record、模式匹配。
并发任务怎么组织:CompletableFuture、虚拟线程、ScopedValue。
应用怎么运行:容器资源识别、垃圾收集器、启动与预热优化。
老项目怎么升级:模块封装、默认字符集、API
移除、Agent 与本地访问限制。
所以,这篇文章只介绍重要的新特性和对企业开发影响较大的调整。某些版本只是在继续预览同一项特性,就放到该特性正式发布的版本中说明,不重复列一遍。
资料核对日期:2026 年 10 月 5 日。本文覆盖 JDK 8 至 JDK
27;JDK 27 已于 2026 年 9 月 15 日正式发布。 发布状态以 Oracle
JDK 27 发布说明为依据。
如果没有特殊说明,JVM 实现相关内容针对
HotSpot;示例均为 Java...
详解Java之集合框架 part4—详解Map接口下的集合
Map
Map 接口概述
前面介绍的 List、Set、Queue
都从 Collection
这条线展开,保存的是一个个成员。Map
则单独定义了映射关系:通过一个键,找到它当前对应的值。
每个键最多对应一个值,但不同的键可以对应相同的值。因此,Map.size()
统计的是映射数量,不是键与值加起来的对象数量。是否允许
null、键怎样判定重复、遍历是否有顺序,都要继续看具体实现。
12345Map<String, Integer> scores = new HashMap<>();System.out.println(scores.put("Java", 90)); // null:原来没有映射System.out.println(scores.put("Java", 95)); // 90:返回旧值,映射数量不变scores.put("SQL", 95); //...
详解Java之集合框架 part3—详解Queue和Deque接口下的集合
Queue
本文源码以本机 JDK 21.0.4 为准
Queue 接口概述
前面说到,List
关注的是“按照位置组织元素”,Set
关注的是“保存唯一成员”。Queue
则把重点放在了另一个问题上,新元素怎样进入容器,下一个应该处理哪个元素。
普通排队场景中,先到的先处理,也就是
FIFO;优先队列则按照比较规则选择队首;双端队列还能从两端插入和取出,模拟
LIFO 栈。因此,Queue
不能简单理解为“所有实现都按照插入顺序遍历”。
Queue 继承
Collection,没有公开下标访问方法。它提供两组最常用的操作:
操作
失败时抛异常
正常失败时返回特殊值
添加元素
add(e)
offer(e)
移除队首
remove()
poll()
查看队首
element()
peek()
容量受限时,add() 可能抛
IllegalStateException,offer()...
详解Java之集合框架 part2—详解Set接口下的集合
Set
Set 接口概述
Set 是 Java 集合框架中的一个接口,它继承了
Collection 接口,并添加了一些独有的方法。
我们通常看作 Set 是没有重复元素的
Collection,或者说,Set是一个不允许重复元素的集合。
Set 源自数学中的 集合
概念——元素唯一、无序(多数情况下)、不可通过索引访问。
Set 接口本身并未定义新的方法,而是通过语义约束对
Collection
的行为进行了强化:任何尝试添加重复元素的操作都会被忽略(add()
返回 false)。这一特性就使得 Set
成为去重、成员存在性判断等场景的首选数据结构。
目前,Java 提供了多个 Set
的常用实现类,下面我会逐一深入分析,尽管这些实现类在底层数据结构、元素顺序和性能特征上各有不同,但它们都严格遵循
Set 接口的三大核心契约
元素唯一性:不允许存储重复元素(依赖
equals() 和 hashCode() 或
compareTo() 判断);
无索引访问:不支持通过下标获取元素,遍历需依赖迭代器或增强
for 循环;
对...
数学物理方程之三类典型模型的建立
数学物理方程模型前言
介绍
《数学物理方程》是偏微分方程方向的一门入门课程。我们希望从具体的物理现象出发,找出所遵循的规律,把它写成方程,再研究方程的解能否解释和预测原来的现象。
数学物理方程主要研究由物理、力学等实际问题产生的函数方程,本部分以偏微分方程为主。偏微分方程理论还用于化学、生物、工程、图像处理和金融等领域。
这门课有两个比较明显的特点:
数学理论、解题方法与物理实际结合:不仅要会解方程,还要知道方程和定解条件是怎样从物理问题中来的。
需要综合运用已有知识:数学分析、常微分方程、线性代数、复变函数等知识都会用到。
本部分建立三类典型模型:波动方程、热传导方程、调和方程(及泊松方程)。它们分别描述振动传播、温度或物质的扩散、稳定状态下物理量的空间分布。
数学物理方程的研究方法
如何从实际问题中导出方程呢?课件给出的思路是:
$$
\text{物理模型}\xrightarrow{\text{定量化}}\text{数学模型}.
$$
建立坐标系,明确研究区域和时间范围。
选择表征过程的物理量,例如位移 u(x, t)...

























