个人向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...
MyBatis part4—MyBatis的缓存机制和事务管理
MyBatis的缓存机制
查询缓存
MyBatis 支持查询缓存,将查询结果临时存储在内存中,避免重复执行相同 SQL
导致的数据库往返开销,用于减轻数据压力,提高数据库性能。
MyBatis 的查询缓存分为一级缓存和二级缓存,两者的大致关系如下
img
日常开发中,80%
的数据库操作是查询,其中大量查询是重复且无状态变化的。这时候缓存就能:
减少数据库 IO 次数,降低数据库压力;
提升查询响应速度
而且 MyBatis 的缓存和 Hibernate
的不一样,它的代码层缓存逻辑更简单,因为 MyBatis 内置缓存,无需手动写
Map 缓存,很容易加上 Spring Cache 和 Redis 形成一个二级缓存
SqlSession
SqlSession 是 MyBatis
中最核心的接口之一,很明显,MyBatis
通过这个接口与数据库建立连接的 Session 会话
所有对数据库的操作都必须通过 SqlSession 来执行,底层封装了 JDBC 的
Connection,同时整合了缓存、事务、Mapper...
MyBatis part3—使用注解进行开发
MyBatis进行注解开发
如何理解注解开发
在 Spring Boot 中使用 MyBatis 注解开发替代 XML 配置,核心是通过
MyBatis 提供的注解直接在 Mapper 接口上编写 SQL,无需编写 Mapper 中 XML
文件的那些</select>等这种标签
使用注解实现基本 CURD
MyBatis 注解开发的核心是在 Mapper 接口
上通过注解编写 SQL,常用注解如下
注解
作用
示例
@Mapper
标记接口为 MyBatis Mapper
加在接口上(或用 @MapperScan 替代)
@Select
编写查询 SQL
@Select("SELECT * FROM user WHERE id = #{id}")
@Insert
编写插入 SQL
@Insert("INSERT INTO user(name, age) VALUES(#{name},...
MyBatis part2—如何编写Mapper的XML配置文件
MyBatis 中有哪些配置文件
在 MyBatis 体系中,Mapper XML 和 MyBatis
Config XML 是两类核心配置文件,但在 Spring Boot
开发中,MyBatis Config XML 几乎被
配置化属性也就是properties或者yaml配置文件
代替了
明确一下两类配置文件的分工
配置文件类型
核心定位
核心作用
类比
Mapper XML
业务 SQL 层配置
定义具体的 SQL 语句、参数映射、结果映射
业务代码(个性化)
MyBatis Config XML
全局核心配置层
配置 MyBatis 全局规则(数据源、缓存、插件等)
框架配置(通用规则)
Mapper XML
Mapper XML 是 MyBatis 业务 SQL 的载体,它是将 Java 你写的
Mapper 中的接口方法与 SQL 语句绑定的,做手写 SQL + 参数 /
结果映射的,一个 Mapper XML 中的逻辑对应一个 Mapper...
MyBatis part1—了解MyBatis并基于Demo了解基本使用
了解 MyBatis
什么是 MyBatis
对于什么是 ORM,我就不说了
MyBatis 原来是 Apache 的一个开源项目,叫做 ibatis,2010年这个项目由
Apache 迁移到了 Google
Code,并且改名为MyBatis,2013年11月官方代码迁移到GitHub
MyBatis 是一款半自动的 ORM 框架,核心定位是简化 JDBC
操作,同时兼顾 SQL 的灵活性。
如果你使用过 Hibernate,你就能理解什么是半自动 ORM 了,因为 Hibernate
是全自动 ORM,Hibernate 自动生成 SQL,开发者几乎无需写
SQL,映射方式是通过实体类注解全表映射,性能通过缓存调整,抓取策略,HQL优化等方式
MyBatis 作为一种半自动 ORM,它给了你对 SQL 的完全控制权,完全掌控 SQL
逻辑,而且是按需映射,支持字段与属性自定义映射,所以灵活性高一点,因为高程度的基于原生
SQL,学习成本也低一些,但代价是需要手动编写SQL语句
Hibernate 追求 完全屏蔽...
讲解并认识常见的流媒体协议
介绍流媒体协议
什么是流媒体协议?
协议是定义数据如何在网络中传输的规则和流程,千万要把它和格式分开,格式是定义音视频数据如何组织和封装,包括容器格式和编码格式的。
流媒体协议简要来说就是视频 / 音频在网络上 实时传输
的规则。包括规定了音视频数据如何被切分、打包、在网络中传输以及在接收端如何还原这种。
流媒体协议是视频在线传输的协议。
互联网上流媒体技术的变更
在过去的接近10多年时间里(从2004年到2018年),网页视频播放一直是
Flash 技术的天下,我们所熟悉的众多视频网站和新闻门户网站一直都在使用
Flash 技术来播放网页视频。
这里的主要原因是IE浏览器的高比例占有量和 Flash
插件在客户端的普及,还有就是主要流媒体服务器产品对 RTMP 协议和FLV
视频格式的广泛支持,这是这一个时期的视频生态系统。
在那个浏览器功能贫瘠的年代,Flash
插件几乎是网页视频的唯一救命稻草。RTMP 低延迟,而且 FLV
容器简单,非常适合流式传输。但是,他太封闭了,不管是服务端的生态 FMS
还是 客户端的 Flash...
算法笔试—美团20260314春招实习笔试
T1 小美的因子数量
image-20260314102158293
image-20260314102203440
一个正整数的因子个数为奇数,当且仅当它是 完全平方数
因数通常是成对出现的,只有当 d = n/d
时,这一对因子才会合并为一个,从而使总数变成奇数。而 d = n/d 意味着
n = d2,即
n 是一个完全平方数(如 1, 4,
9, 16…)。
因此,题目要求的区间 [l, r]
内因子数量为奇数的数的个数,等价于问:区间 [l, r]
内有多少个完全平方数?
那么,计算区间 [l, r]
内完全平方数的个数,可以用 前缀和 的思想:
1 到 r 之间有多少完全平方数
计算 1 到 l−1 之间有多少个完全平方数
相减
1234567891011public static void main(String[] args) { Scanner in = new Scanner(System.in); long l = in.nextLong(); ...
Spring框架面试题汇总—Spring及Spring Boot相关面试题整理
Spring Boot 原理
介绍一下 Spring Boot
整体的启动流程?
Spring Boot
启动流程的核心是通过自动配置和上下文初始化,将零散的组件装配成一个可运行的应用上下文(ApplicationContext),整体分为
前置准备、上下文初始化、核心刷新、启动收尾 四大步
首先从 main 找到
SpringApplication.run(主类.class, args) 方法,在执行
run() 方法之前先 new 一个 SpringApplication
实例对象。
实例化时做的具体核心内容:
然后进行应用类型推断,判断当前应用是 Servlet 应用(Spring Web
MVC)、Reactive 应用(Spring WebFlux)还是普通非 Web 应用。
紧接着进行初始化器加载,从 META-INF/spring.factories
中加载所有 ApplicationContextInitializer
的实现类,用于在上下文刷新前进行自定义配置,包括 Spring...
MySQL面试题汇总—进阶知识与性能优化
约束
MySQL有哪些约束类型?各自的业务作用是什么?如何选择合适的约束策略?
MySQL的约束类型包括主键约束、唯一约束、非空约束、外键约束和检查约束五种。
主键约束的业务作用是提供表的唯一标识,支持高效的数据检索和关联查询。唯一约束确保业务关键字段的唯一性,如用户邮箱、订单号等。非空约束保证关键业务数据的完整性,避免因空值导致的业务逻辑错误。外键约束维护数据一致性,确保关联数据的有效性。检查约束在数据库层面实现业务规则验证,提高数据质量。
选择合适的约束策略需要综合考虑业务需求、性能影响和维护成本。对于核心业务表,应该使用主键约束和必要的非空约束。对于需要唯一性验证的字段,使用唯一约束并配合索引优化。外键约束在数据一致性要求高的场景下使用,但需要考虑性能影响。检查约束适用于简单的业务规则验证,复杂逻辑建议在应用层处理。
外键约束还涉及到级联操作的概念
可以通过 ON DELETE 和 ON UPDATE
子句定义外键的级联行为
还包括
CASCADE、SET ...
MySQL面试题汇总—SQL及其基础知识
持续更新,不重要的我不收集
MySQL 基础知识
什么是关系型数据库?
关系型数据库 RDB,就是一种建立在关系模型的基础上的数据库。
关系模型表明了数据库中所存储的数据之间的联系,例如一对一、一对多、多对多
关系型数据库中,我们的数据都被存放在了各种表中(比如用户表),表中的每一行就存放着一条数据(比如一个用户的信息)。
关系型数据库表关系
大部分关系型数据库都使用 SQL
来操作数据库中的数据。并且,大部分关系型数据库都支持事务的四大特性(ACID)。
有哪些常见的关系型数据库呢?
MySQL、PostgreSQL、Oracle、SQL Server、SQLite
什么是 SQL?
SQL 是一种结构化查询语言(Structured Query
Language),专门用来与数据库打交道,目的是提供一种从数据库中读写数据的简单有效的方法。
几乎所有的主流关系数据库都支持 SQL
,适用性非常强。并且,一些非关系型数据库也兼容 SQL 或者使用的是类似于
SQL 的查询语言。
什么是元组, 码,
候选码, 主码, 外码,...
Java面试题汇总——JVM常见面试题总结
持续更新
面试题系列都持续更新
内存结构与对象创建
请详细介绍JVM内存区域的整体布局,各个区域的作用和特点
Java 虚拟机在执行 Java
程序的过程中会把它管理的内存划分成若干个不同的数据区域
Java 运行时数据区域(JDK1.8
)
JVM
运行时数据区分成五块:堆、方法区、虚拟机栈、本地方法栈、程序计数器。其中堆和方法区是所有线程共享的,另外三个是每个线程私有的。
堆:存放对象实例与数组,是 GC
管理的核心区域。它线程共享,是JVM
中最大的一块内存,分为新生代和老年代
image-20260314155842050
堆中包含字符串常量池,是 JVM
为了提升性能和减少内存消耗,针对字符串专门开辟的一个区域,主要目的是为了避免字符串的重复创建。因为同一个字面量的字符串,在常量池中只会保留一个引用
元空间(方法区):JDK1.8前叫方法区,它存储类的元信息,包括类结构、常量池、静态变量、JIT
编译后的代码缓存等内容,而且其中包含运行时常量池,其中垃圾回收行为较少
JDK 8...
Java面试题汇总——Java集合框架中的面试题
List
Collections 和 Collection
的区别
Collection 是 Java
集合框架中的顶级接口。它定义了一组通用的操作和方法,如添加、删除、遍历等,用于操作和管理一组对象。Collection
接口有许多实现类,如 List、Set 和 Queue 等。
Collections(注意有一个s)是Java提供的一个工具类,位于 java.util
包中。它提供了一系列静态方法,用于对集合进行操作和算法。Collections
类中的方法包括排序、查找、替换、反转、随机化等等。这些方法可以对实现了
Collection 接口的集合进行操作,如 List 和 Set。
说说 List 和...
Java面试题汇总——Java基础,JavaSE中常见的面试题
本文章持续更新
Java 基础概念和常识内容
JVM vs JDK vs JRE
Java 虚拟机(Java Virtual Machine, JVM)是运行 Java
字节码的虚拟机。JVM
有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的
JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。
image-20260205134622558
JVM 并不是只有一种!只要满足 JVM
规范,每个公司、组织或者个人都可以开发自己的专属 JVM。
也就是说我们平时接触到的 HotSpot VM 仅仅是是 JVM
规范的一种实现而已。
维基百科上就有常见 JVM 的对比:Comparison
of Java virtual machines ,感兴趣的可以去看看。并且,你可以在 Java SE
Specifications 上找到各个版本的 JDK 对应的 JVM 规范。
JDK(Java Development...













