众所周知递归就是一个由递归体和递归终止条件组成的,例如下面
递归求1~9的和 传入N的值为 1 这里是1~9的和再加1
public static int digui(int n){
if (n>=10){
return 1;
}
int j =digui(n+1);
return n+j;
}
这个例子很简单,但是大多数人都不清楚内部原理。
先展示一下递归的过程
如上图展示,不难看出递归其实就是一个入栈和出栈的过程。
要说明的是在jvm中 new出来的对象都存在堆内存中 方法是存在栈内存中。
栈的特点是先进后出,后进先出。这就很好的解释了为啥输进去的是
[1,2,3,4,5,6,7,8,9,10] 返回的是 [10,9,8,7,6,5,4,3,2,1]
要记住的一点是 return返回的值就是 j 接收的值。可以从上图中看出来。
此外再分享一下如何将视频转成gif 方法
可以使用pr进行转换但是pr转换出来的gif太大甚至超过原视频大小。可以通过减小帧率的方法来解决。不过操作有点麻烦。
这里分享一个网站可以直接将视频转换成gif。
https://www.shipinyasuo.com/videoToGif?b_scene_zt=1
不过是收费的,但是作为一个java web开发者有什么数据是不能从网页上白嫖的😂😂😂
F12审查元素 , 定位到预览图片中,有两种格式
一个是未压缩容量很大获取非常容易
一个是压缩过的容量很小,获取的时候有限制。
将下面的选项选成对应的然后点击优化图片
然后接下来的操作将鼠标移到url()的链接 鼠标右键 选中第一个选项然后进入