使用java -cp CLASSPATH和运行Java应用程序有什么区别java -jar JAR_FILE_PATH?是否其中一个更喜欢运行Java应用程序?我的意思是JVM中哪一种方式更昂贵(根据他们的机器资源使用情况)?
哪一个会导致JVM在尝试运行应用程序时产生更多线程?
我试图在main方法中运行OSGi框架(Equinox).每次我启动框架时,当我打印时BundleContext.getBundles().length,它表示框架上只安装了1个Bundle(当然是系统包).当我安装第一个捆绑包时,捆绑包ID将从上一个会话继续.假设我上次会话时有4个捆绑(并且在停止系统捆绑之前我已经停止并卸载了所有捆绑包),第一个捆绑ID设置为5.现在,我想知道框架如何选择捆绑ID?框架为什么以及如何记住最后一个会话,即使我已经卸载了所有捆绑包?是因为Bundle Cache吗?如果是,我如何清除缓存(从1重新开始编号)?
当我遇到一些奇怪的东西时,我正在测试代码,我无法弄清楚为什么会发生这种情况.所以我将举一个关于那里发生的事情的简单例子.
考虑这些课程
public class A {
public void print(A a) {
System.out.println("A");
}
}
public class B extends A {
public void print() {
System.out.println("B");
}
}
public class C extends B {
public void print(A a) {
System.out.println("C");
}
}
public class E extends C {
public void print(E e) {
System.out.println("E");
}
}
Run Code Online (Sandbox Code Playgroud)
现在在我的main方法中我有这种实例化:
B b = new E();
C c = new E();
E e = new E();
Run Code Online (Sandbox Code Playgroud)
我调用这些方法并获得以下输出.
b.print(b);
c.print(e);
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
C
C
Run Code Online (Sandbox Code Playgroud)
我有两个解释,但每个解释都与这些方法调用之一相矛盾.也有可能我的两个解释都是完全错误的,所以我在这里没有任何要求.
解释1
b.print(b) …
所以标题说明了.<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>当我想在我的页面中包含Jquery时,使用它是不好的做法吗?
我问过这个问题,因为在Jquery,Google和Microsoft网站中没有提供这样的链接.相反,他们把这样的版本链接<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>.这就是为什么我认为他们可能不希望人们使用该链接.
如果这是不好的做法,那为什么呢?什么是跟上这些版本变化的解决方案?
当我看到名字中带括号的函数时,我正在阅读源代码:
extern int LIB_(strcmp) ( const char* s1, const char* s2 );
extern char LIB_(tolower) ( char c );
Run Code Online (Sandbox Code Playgroud)
那是什么?
我很困惑,因为我可以调用这样的函数: char c = LIB_(tolower)('A');
是不是在C中,括号用于将函数名与参数分开并进行类型转换?
java ×2
c ×1
classpath ×1
html ×1
jar ×1
javascript ×1
jquery ×1
jvm ×1
methods ×1
osgi ×1
overloading ×1
overriding ×1