邻位互换法 由 Johnson-Trotter 首先提出的,算法利用递归思想,将第 n 个数插入到 n-1 阶排列的不同位置,从而得到不同排列。本文将给出算法的原理及 Java 和 Go 语言的代码实现。
本文主要介绍怎么使用 Spring Cloud 快速创建一个 restful 服务。
Java 程序中堆栈( Stack Space )用来做方法的递归调用时压入栈帧( Stack Frame ),每个线程都有自己的堆栈,这个堆栈不是来自 Heap 的分配。所以堆栈的大小不会受到 -Xmx
和 -Xms
的影响,这2个 JVM 参数仅仅是影响 Heap 的大小。虚拟机参数 -Xss
用来指定每个线程的堆栈大小,设定该值后,当递归调用太深的时候,就有可能耗尽堆栈空间,爆出 StackOverflow 的错误,我们使用如下代码做实验:
<!-- more -->
标记,标记之前内容为摘要
VisualVM(All-in-One Java Troubleshooting Tool) 是随 JDK 发布的一款功能强大的运行监视和故障处理程序。除了运行监视、故障处理之外,它还提供了性能分析等其他功能。与其他功能相比,VisualVM 不需要被监视程序基于特殊的 Agent 运行,因此他对应用程序的实际性能影响很小,使得它可以直接应用在生产环境中。
<!-- more -->
标记,标记之前内容为摘要
<!-- more -->
标记,标记之前内容为摘要
在 JDK 1.2 之前,Java 对象的引用很传统:如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过狭隘,一个对象在这种状态下只有被引用或不被引用两种状态,有时候我们希望描述这样一类对象:当内存空间还足够时,则能保留在内存之中;如果内存空间在进行垃圾收集后还是非常紧张,则可以抛弃这些对象。
<!-- more -->
标记,标记之前内容为摘要
<!-- more -->
标记,标记之前内容为摘要