我正在探索Java中的内存使用,以了解我的程序泄漏内存的原因.在我的main while循环中剥离代码之后,我仍然会随着时间的推移增加内存使用量.思考空程序的内存使用情况:
class Nothing
{ public static void main(String[] args)
{ while(true); }
}
Run Code Online (Sandbox Code Playgroud)
我仍然看到内存增加:
所以我的问题是:为什么还有锯齿形?为什么当GC运行时它不会保存所有内存(每次gc运行(谷值)使用的内存增加10-20Kb(与之前的谷值相比))?
编辑:
java版"1.6.0_29"
Java(TM)SE运行时环境(版本1.6.0_29-b11)
Java HotSpot(TM)客户端VM(内置20.4-b02,混合模式,共享)
操作系统:Windows 7 Enterprise-32位
鉴于下表:
... | item | type | ...
... | A | 1 | ...
... | B | 2 | ...
... | A | 2 | ...
... | A | 3 | ...
... | B | 3 | ...
... | A | 2 | ...
Run Code Online (Sandbox Code Playgroud)
让我们通过配对(A1、B2、A2 等)来调用项目。表中有一个错误,其中 A3 实际上应该是 C3。
我想编写一个查询,如果行返回 A3,它将返回行并将项目列更改为 C。
不起作用的示例查询:
SELECT (item like 'A' ? (type == 3? 'C' : 'A') : item) as "item", type from table;
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
"item" | …Run Code Online (Sandbox Code Playgroud)