Вызов Java JNI для загрузки библиотеки

Влияет ли это на память, если у меня есть два Java-класса, у которых есть собственные вызовы для скомпилированного кода C, и я вызываю оба этих класса в другом классе? Например, у меня есть класс A и класс B с обоими вызовами собственных функций. Они настроены следующим образом:

public class A{
    // declare the native code function - must match ndkfoo.c
    static {
        System.loadLibrary("ndkfoo");
    }

    private static native double mathMethod();

    public A() {}

    public double getMath() {
          double dResult = 0;  
          dResult = mathMethod();
          return dResult;
    }
}


public class B{
    // declare the native code function - must match ndkfoo.c
    static {
        System.loadLibrary("ndkfoo");
    }

    private static native double nonMathMethod();

    public B() {}

    public double getNonMath() {
          double dResult = 0;  
          dResult = nonMathMethod();
          return dResult;
    }
}

Класс C затем вызывает оба, поскольку они оба делают статический вызов для загрузки библиотеки, будет ли это иметь значение для класса C? Или лучше, если класс C вызовет System.loadLibrary (...?

public class C{
    // declare the native code function - must match ndkfoo.c
    //  So is it beter to declare loadLibrary here than in each individual class?
    //static {
    //  System.loadLibrary("ndkfoo");
    //}
    //

    public C() {}

    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        double result = a.getMath() + b.getNonMath();

    }
}
8
задан JPM 8 December 2011 в 20:16
поделиться