小编Mat*_*ARD的帖子

JVM将内存发送回OS

我有一个关于JVM内存管理的问题(至少对于SUN的内存管理问题).

我想知道如何控制JVM将未使用的内存发送回操作系统(在我的情况下为Windows)这一事实.

我写了一个简单的java程序来说明我的期望.使用-Dcom.sun.management.jmxremote选项运行它,以便您也可以使用jconsole监视堆.

使用以下程序:

package fr.brouillard.jvm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;

public class MemoryFree {
    private BufferedReader reader = new BufferedReader(new
        InputStreamReader(System.in));
    private List<byte[]> usedMemory = new LinkedList<byte[]>();
    private int totalMB = 0;
    private int gcTimes = 0;

    public void allocate(int howManyMB) {
        usedMemory.add(new byte[howManyMB * 1024 * 1024]);
        totalMB += howManyMB;
        System.out.println(howManyMB + "MB allocated, total allocated: " +
                totalMB + "MB");
    }

    public void free() {
        usedMemory.clear();
    }

    public void gc() {
        System.gc(); …
Run Code Online (Sandbox Code Playgroud)

java jvm memory-management

19
推荐指数
2
解决办法
1万
查看次数

处理没有注释的java类型

我有几个使用 java 注释处理器执行的检查,但我也想对未注释的类型进行检查。

例如,如果我们假设我有一个注释,例如@Responsible(name="xyz")挂钩编译过程的最佳方法是什么,以强制所有顶级类型都存在该注释。

在我当前的实现中,我依赖于两个注释,预期的注释(Responsible)和包级别的注释。后者用于“触发”注释处理器,即使不存在预期的注释。然后,在触发的注释处理器内,我搜索并过滤磁盘上的 java 文件(使用传递给编译器的参数)以收集我想要处理的所有文件,并在 java 文件对应于处理器正在处理的注释类型时过滤它们。如果有人在未指定注释的情况下提交新文件,则构建会失败。

是否有更干净的方法来查找“无注释”类型?

java annotation-processing

7
推荐指数
2
解决办法
895
查看次数

检索特定的先前兄弟节点属性

是否有一种XPath方法使用XPath查询直接恢复XML节点的前一个兄弟节点的一个特定属性?

在下面的示例中,我想检索在标有该元素的元素之前的alt每个img节点的属性值.divid=marker

<content>
  <img alt="1" src="file.gif" />
  <img alt="2" src="file.gif" />
  <img alt="3" src="file.gif" />
  <img alt="4" src="file.gif" />
  <div id='marker'></div>
</content>
Run Code Online (Sandbox Code Playgroud)

对于此示例,我想检索值1 2 3 4.
我使用以下XPath查询

//div[@id='marker']/preceding-sibling::img
Run Code Online (Sandbox Code Playgroud)

为了检索我想要的节点列表

<img alt="1" src="file.gif"/>
<img alt="2" src="file.gif"/>
<img alt="3" src="file.gif"/>
<img alt="4" src="file.gif"/>
Run Code Online (Sandbox Code Playgroud)

由于它是一个节点列表,我可以在节点上迭代以检索我正在寻找的属性值,但是有一种XPath方式吗?我原以为能够写下这样的东西:

//div[@id='marker']/preceding-sibling::img@alt
or //div[@id='marker']/preceding-sibling@alt::img
Run Code Online (Sandbox Code Playgroud)

但是,一旦你使用了XPath Axe类似的兄弟姐妹,我甚至不知道是否可能.

xml xpath

0
推荐指数
1
解决办法
6470
查看次数