<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Longtermevolution的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Longtermevolution</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Longtermevolution]]></copyright><item><title><![CDATA[单元测试mock和spy的区别]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/127230126</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/127230126</guid><author>Longtermevolution</author><pubDate>Sun, 09 Oct 2022 17:03:54 +0800</pubDate><description><![CDATA[tip]]></description><category></category></item><item><title><![CDATA[sql: group by 某个字段之后如何将某个字段以逗号拼接起来]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/124948762</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/124948762</guid><author>Longtermevolution</author><pubDate>Tue, 24 May 2022 16:22:27 +0800</pubDate><description><![CDATA[场景

如图，有一张基于pgsql的数据库表结构如下：



现在想按照value进行分组，并且取出每一个value关联的所有resource_id。

解决方法

这个需求需要一个类似于树形的查询结果，我们可以把每个value关联的所有resource_id以某种当时拼接起来，只要自己能够找到相应方式拿出来用就行了。经过查询pgsql支持的聚合查询，找到一个函数：


聚合函数：string_agg(resource_id, ',')


在数据库运行以下sql：


select value, stri]]></description><category></category></item><item><title><![CDATA[fastjson 循环引用 出现 $ref: “$.“的解决办法]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/120264805</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/120264805</guid><author>Longtermevolution</author><pubDate>Mon, 13 Sep 2021 12:31:14 +0800</pubDate><description><![CDATA[参考：fastjson JSONObject.toJSONString 出现 $ref: "$."的解决办法（重复引用） - AmbitiousMice - 博客园j

解决：

1.循环里面每次新创建一个对象，然后再复制；

2.设置不检查；
]]></description><category></category></item><item><title><![CDATA[tip-通过web前端界面查看后端调用的相关API信息]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/119110779</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/119110779</guid><author>Longtermevolution</author><pubDate>Mon, 26 Jul 2021 15:32:36 +0800</pubDate><description><![CDATA[今天主管布置了一个任务：进入已经发布的web开发版本页面，然后结合git上的项目源码，将页面功能点和源代码相对应，梳理一下相关功能点的业务逻辑和代码逻辑。
之前没有遇到过，所以记录一下。

1、通过web前端页面url获取后端开发api相关信息
 1）通过点击相应界面，按f12，查看network，可以看到网页请求的header，从中可以看到具体方法的url、入参、返回参数等信息；
 2）在idea中使用restfultoolkit插件实现通过url查找相应源码（快捷键ctrl + \）；
...]]></description><category></category></item><item><title><![CDATA[git整体理解+基本常见操作]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/118795773</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/118795773</guid><author>Longtermevolution</author><pubDate>Fri, 16 Jul 2021 15:28:56 +0800</pubDate><description><![CDATA[1、git的整体理解

如图所示，git的操作对象主要有四个：


	Workspace：工作区（idea中编译）
	
	
	Index / Stage：暂存区
	
	
	Repository：仓库区（或本地仓库）
	
	
	Remote：远程仓库
	
命令就是针对文件在这几个对象之间进行操作而设定的。





2、git的常用操作

附一个网站：https://www.runoob.com/git/git-basic-operations.html

常用命令：https://www.zhihu.com]]></description><category></category></item><item><title><![CDATA[每日算法- 贪心算法-两地调度]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/116854713</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/116854713</guid><author>Longtermevolution</author><pubDate>Sat, 15 May 2021 17:25:51 +0800</pubDate><description><![CDATA[目录

题目

思路

微观

宏观

代码

复杂度

题目

公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0]，飞往 B 市的费用为 costs[i][1]。

返回将每个人都飞到某座城市的最低费用，要求每个城市都有 N 人抵达。


示例：

输入：[[10,20],[30,200],[400,50],[30,20]]
输出：110
解释：
第一个人去 A 市，费用为 10。
第二个人去 A 市，费用为 30。
第三个人去 B 市，费用为 50。
第四个人去 B 市，费用]]></description><category></category></item><item><title><![CDATA[希尔排序-转发]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/115866578</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/115866578</guid><author>Longtermevolution</author><pubDate>Mon, 19 Apr 2021 15:49:41 +0800</pubDate><description><![CDATA[https://zhuanlan.zhihu.com/p/73726253



代码似乎有误，不做参考。
]]></description><category></category></item><item><title><![CDATA[spring原理面试题总结]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114117564</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114117564</guid><author>Longtermevolution</author><pubDate>Fri, 26 Feb 2021 10:35:06 +0800</pubDate><description><![CDATA[目录

1、什么是 Spring 框架？Spring 框架有哪些主要模块？

2、使用 Spring 框架能带来哪些好处？

3、什么是控制反转(IOC)？什么是依赖注入？

4、请解释下 Spring 框架中的 IOC？

5、BeanFactory 和 ApplicationContext 有什么区别？

6、Spring 提供几种配置方式来设置元数据？

7、如何使用 XML 配置的方式配置 Spring？

8、如何用基于 Java 配置的方式配置 Spring？

9、怎样用注解的方式配置 Spr]]></description><category></category></item><item><title><![CDATA[Spring IoC原理 -- 转载]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114117151</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114117151</guid><author>Longtermevolution</author><pubDate>Fri, 26 Feb 2021 10:30:58 +0800</pubDate><description><![CDATA[文章：Spring IOC原理总结

总结

Spring IOC容器主要有继承体系底层的BeanFactory、高层的ApplicationContext和WebApplicationContext
	Bean有自己的生命周期
	容器启动原理：Spring应用的IOC容器通过tomcat的Servlet或Listener监听启动加载；Spring MVC的容器由DispatchServlet作为入口加载；Spring容器是Spring MVC容器的父容器
	容器加载Bean原理：
BeanDefiniti]]></description><category></category></item><item><title><![CDATA[spring AoP的关键点（含术语解释）]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114117005</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114117005</guid><author>Longtermevolution</author><pubDate>Fri, 26 Feb 2021 10:21:19 +0800</pubDate><description><![CDATA[参考：Spring的面向切面编程（AOP）
]]></description><category></category></item><item><title><![CDATA[spring实现事务的几种方式]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114116261</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114116261</guid><author>Longtermevolution</author><pubDate>Fri, 26 Feb 2021 10:14:57 +0800</pubDate><description><![CDATA[目录

引言

例子

引言

spring框架中如何开启事务呢？本文将简单总结一下。

主要方式有以下4种：

1. 编程式事务管理，基于POJO的应用来说是唯一选择。需要在代码中调用 beginTransaction() commit() rollback()等事务管理相关的方法。
	2. 基于TransactionProxyFactoryBean的声明式事务管理；
	3. 基于@Transactionl的声明式事务管理；
	4. 基于Aspectj AOP配置事务。
例子

具体参考文章。以后再自己总]]></description><category></category></item><item><title><![CDATA[JVM的内存划分]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114107329</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114107329</guid><author>Longtermevolution</author><pubDate>Thu, 25 Feb 2021 21:57:47 +0800</pubDate><description><![CDATA[目录

JVM的内存划分

JVM的内存划分

另外可参考：https://zhuanlan.zhihu.com/p/336958119





程序计数器（Program Counter Register)。

在JVM规范中，每个线程都有自己的程序计数器。这是一块比较小的内存空间，存储当前线程正在执行的Java方法的JVM指令地址，即字节码的行号。如果正在执行Native方法，则这个计数器为空。该内存区域是唯一一个在Java虚拟机规范中没有规定任何OOM情况的内存区域。


Java虚拟机栈(Jav.]]></description><category></category></item><item><title><![CDATA[视图]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114106969</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114106969</guid><author>Longtermevolution</author><pubDate>Thu, 25 Feb 2021 21:37:42 +0800</pubDate><description><![CDATA[目录

视图定义

视图意义

创建视图语法

视图定义

视图(View)并不在数据库中实际存在，而是一种虚拟表，行和列数据来自定义视图的查询中使用的表，并且是在使用视图时动态生成的。即视图就是执行查询语句后所返回的结果集，所以在创建视图的时候，主要就是创建这条SQL查询语句。

对于普通的数据表来说，视图具有以下的一些特点：

1、简单：因为视图是查询语句执行后返回的已经过滤好的复合条件的结果集，所以使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件。

2、安全：使用视图的用户只能访问]]></description><category></category></item><item><title><![CDATA[数据库索引的一些问题-转载]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114106750</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114106750</guid><author>Longtermevolution</author><pubDate>Thu, 25 Feb 2021 21:29:10 +0800</pubDate><description><![CDATA[作者：路人zhang
链接：https://juejin.cn/post/6911532527605776391
来源：掘金

目录

什么是索引？

索引的优缺点？

索引的数据结构？

B+树索引

哈希索引

Hash索引和B+树索引的区别？

索引的类型有哪些?

索引的种类有哪些？

B树和B+树的区别？

数据库为什么使用B+树而不是B树？

什么是聚簇索引，什么是非聚簇索引？

非聚簇索引一定会进行回表查询吗？

索引的使用场景有哪些？

索引的设计原则？

如何对索引进行优化？

如何创建/]]></description><category></category></item><item><title><![CDATA[虚拟机类加载机制]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114095954</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114095954</guid><author>Longtermevolution</author><pubDate>Thu, 25 Feb 2021 21:09:35 +0800</pubDate><description><![CDATA[目录

引言

类加载的周期

类加载器

类与类加载器

双亲委派模型

破坏双亲委派模型

引言

如前文所述：java中.class文件的一些知识

Class文件（本质是一串具有特定格式的二进制流）一旦生成，JVM如何加载这些文件呢？这就需要讲到虚拟机的类加载机制。

类加载机制定义：虚拟机把描述类的数据从Class文件中加载到JVM内存，并对数据进行校验、转换解析和初始化，最终形成可以被虚拟机直接使用的java类型。

类加载的周期

notes：

五个确定顺序步骤：其中颜色标注的步骤，顺序确定]]></description><category></category></item><item><title><![CDATA[JVM中的垃圾回收算法总结]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/113543761</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/113543761</guid><author>Longtermevolution</author><pubDate>Thu, 25 Feb 2021 17:31:57 +0800</pubDate><description><![CDATA[引言

与c++相比，java的内存管理依托于JVM，而不是依托于程序员直接管理。关于在JVM中垃圾回收的内容，本文做一个简单的总结，供自己查阅。

目前内存的动态分配和内存回收技术已经相当成熟。为什么还需要去了解GC和内存分配呢？因为：当需要排查各种内存溢出、内存泄漏问题时，当垃圾收集成为系统达到更高并发量的瓶颈时，就需要对这些看起来很自动化的技术进行必要的监控和调节。

JVM中运行时区域中，程序计数器、虚拟机栈、本地方法栈这3个区域随着线程生而生，线程灭而灭，因此基本上随着方法结束或者线程结束，相应的]]></description><category></category></item><item><title><![CDATA[InnoDB引擎原理总结]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/114038290</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/114038290</guid><author>Longtermevolution</author><pubDate>Wed, 24 Feb 2021 20:44:09 +0800</pubDate><description><![CDATA[目录

引言

关键点

参考文章：一文了解InnoDB存储引擎

引言

InnoDB是能够保证事务安全的MySQL存储引擎。主要特点是：

支持行锁；
	支持MVCC;
	支持外键；
	提供一致性非锁定读；
	被设计用来有效利用以及使用内存和CPU;
关键点

详细参考文章，以及《mysql技术内幕》第二章内容。这里主要通过关键词记录关键点。

内存池（缓冲池）

本质：本质上是一块内存区域，因为在读写的速度：内存&gt;磁盘，所以用内存来弥补磁盘速度慢的缺陷。

具体：在数据库中读取页的操作时，首先将]]></description><category></category></item><item><title><![CDATA[IOC中对象的创建、获取]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/113684960</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/113684960</guid><author>Longtermevolution</author><pubDate>Fri, 05 Feb 2021 11:40:02 +0800</pubDate><description><![CDATA[目录

IOC创建对象？

BEAN有两种构造方法 ---- 有参构造 + 无参构造。

获取IOC创建的对象？

IOC与依赖注入？（DI）

常规依赖注入的三种方式？

IOC创建对象？

在Spring中，是在 spring.xml 中配置 bean 标签，IoC 容器通过加载 bean 标签来创建对象的。

BEAN有两种构造方法 ---- 有参构造 + 无参构造。

无参构造


&lt;bean id=”stu” class=”xyz.hahatomato.entity.Student”&lt;]]></description><category></category></item><item><title><![CDATA[修改idea内存配置，优化速度]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/113520412</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/113520412</guid><author>Longtermevolution</author><pubDate>Mon, 01 Feb 2021 15:34:25 +0800</pubDate><description><![CDATA[不时会用到，马克一下。

目录

修改IDEA内存的大小(2种方式)

参数解释

修改IDEA内存的大小(2种方式)

第一种: Help -&gt; Edit Custom VM options打开编辑窗口-&gt;修改参数-&gt;重启


第二种:用编辑器打开IDEA的安装目录bin文件夹里idea64.exe.vmoptions的配置文件，然后修改参数
参数解释


-Xms: 最小堆内存
-Xmx: 最大堆内存
-XX:ReservedCodeCacheSize:是设置代码缓存的最大值


我的]]></description><category></category></item><item><title><![CDATA[java中.class文件的一些知识]]></title><link>https://blog.youkuaiyun.com/Longtermevolution/article/details/113500259</link><guid>https://blog.youkuaiyun.com/Longtermevolution/article/details/113500259</guid><author>Longtermevolution</author><pubDate>Mon, 01 Feb 2021 11:18:24 +0800</pubDate><description><![CDATA[目录

引言

class类文件的结构

class文件的生存周期

结语

引言

class文件即是字节码（字节码是一种能够在所有平台统一使用的程序存储格式）文件，其本质是供JVM进行编译包含特定格式二进制流的磁盘文件，这是实现java跨平台编译的基础之一（另一个基础就是JVM）。

在程序编译的流程上，其来源具有多源性（可能是多种语言（如java程序、JRuby程序、Groovy程序、其他等），实现了JVM的跨语言编译），class文件是提供给JVM进行编译的文件；

在文件内容上，其保存的是Java]]></description><category></category></item></channel></rss>