小编tua*_*uan的帖子

如何修剪Java程序

让我从我想做的事情开始,然后提出一些问题.

我想开发一个通用的Java程序,它是许多程序的超集(让我们称之为程序变体).特别地,通用程序具有仅由一个或多个程序变体(但不是全部)使用的方法.给定一个特定的配置,我想删除不必要的方法,并为一个程序变量保留最小的方法集.

例如,我有一个通用程序如下:

public class GeneralProgram {

    // this method is common for all variants
    public void method1() {};

    // this method is specific to variant 1
    public void method2() {};

    // this method is specific to variant 2
    public void method3() {};
}
Run Code Online (Sandbox Code Playgroud)

然后在基于变体1的配置修剪程序之后,结果是

public class GeneralProgram {

    // this method is common for all variants
    public void method1() {};

    // this method is specific to variant 1
    public void method2() {};
}
Run Code Online (Sandbox Code Playgroud)

结果类名称是否与原始类名称相同无关紧要.我只想修剪课程内容.

所以,这是我的问题:

  1. 除了低级文本处理之外,您是否知道如何实现这一目标?

  2. 我知道我可以使用aspectJ在运行时禁用/启用特定方法,但我真正想要做的是在部署程序之前执行此任务.为此目的,Java中是否有任何技术?

java aspectj variant pruning

5
推荐指数
1
解决办法
1198
查看次数

在Android中运行具有root权限的应用

你知道如何在Android下运行具有root权限的应用程序吗?我使用了以下代码段,但root权限仅授予生成的进程,而不是应用程序本身.

process = Runtime.getRuntime().exec("su")
Run Code Online (Sandbox Code Playgroud)

permissions android root su

4
推荐指数
1
解决办法
8083
查看次数

WSO2 ESB 4.8.1中支持的XPath函数

WSO2 ESB 4.8.1似乎不支持以下XPath函数:

  • 逃生HTML-URI()
  • IRI到URI()
  • 编码换URI()

有谁知道支持哪些XPath功能以及WSO2 ESB 4.8.1中不支持哪些功能?

xpath esb function wso2 apache-synapse

4
推荐指数
1
解决办法
3649
查看次数

使用 jvisualvm 进行内存采样

我正在使用 Java Visual VM 的内存采样功能,但我无法回答以下问题:

  1. 为什么会创建这么多实例?

  2. 为什么这些实例数和字节数不断增加?

例如,我创建了一个非常简单的 Java 程序,如下所示:

public class TestMemory{
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Hello");
        Thread.sleep(60 * 60 * 1000);
    }
} 
Run Code Online (Sandbox Code Playgroud)

我可以在 Java Visual VM 中看到有 611 个类。实例数量不断从 25,000 增加到接近 50,000,然后又回落到 25,000 左右。实例减少的原因可能是由 GC 引起的,但我不知道为什么这些数字如此动态,即使我没有对我的程序做任何事情。

profiling visualvm memory-profiling sampling

3
推荐指数
1
解决办法
2606
查看次数