Tag: java

高效的Modulo 3操作?

可能重复: 快速模3或除法算法? 每个人都知道模运算可能是性能上的一个巨大缺点。 有没有人知道x%3操作的好选择? 我知道x%2存在一个,但我真的需要一个模3,因为我想在for循环中在三个缓冲区之间交替。 谢谢!

更快的Math.exp()通过JNI?

我需要非常频繁地从java计算Math.exp() ,是否有可能让本机版本比java的Math.exp()更快地运行? 我只尝试了jni + C,但它比普通的java慢。

从命令行创建jar文件

我有以下目录层次结构: SigarTest src SigarTest .java files bin SigarTest .class files 这里,SigarTest是一个包名。 根文件夹位于jdk的bin文件夹中。 从那里,我运行以下命令来创建我的项目的jar文件 – ./jar cfe temp.jar SigarTest.SigarMain SigarTest/bin/ tools.jar sigar.jar mongo-2.7.3.jar 其中tools.jar,mongo-2.7.3.jar和sigar.jar是必需的,并且与根目录(jdk的bin文件夹)位于同一文件夹中。 但是,在运行它时,我明白了 ClassNotFoundException : SigarTest.SigarMain 我究竟做错了什么 ?

OSX:JavaVM,AWT / Swing以及可能的死锁

我是java编程的新手,所以如果这听起来像个愚蠢的问题,我会提前道歉。 我正在尝试构建一个用简单C编写的简单应用程序,它必须创建一个JavaVM ,然后通过加载基于AWT/Swing Java代码来创建一个新窗口。 按照本技术说明我了解到,仅在Mac OSX中,必须从与主线程不同的线程调用JavaVM,以便能够基于AWT创建GUI。 因此,在我的C应用程序的mainfunction中,我创建了一个执行所有操作的新线程,从创建javaVM到创建GUI。 由于应用程序实际上并不那么简单,我将发布一个简化版本。 主function: int main(int argc, char** argv) { // Run-time loading of JavaVM framework void *result; result = dlopen(“/System/Library/Frameworks/JavaVM.framework/JavaVM”, RTLD_LAZY); if (!result) { printf(“can’t open library JavaVM: %s\n”, dlerror()); } else { printf(“library JavaVM loaded\n”); } /* Start the thread that runs the VM. */ pthread_t vmthread; // […]

是否可以从Java运行C源代码?

现在我有一些C源代码,我想在我的java应用程序中使用它。 我需要执行C源代码,并将结果返回到我的java应用程序。 而不是将所有C源代码重写到java,我如何在我的Java应用程序中重用C的源代码?

为什么两种技术中的相同代码表现不同

下面是我在C中的代码片段。 void main(){ int x = 7; x = x++; printf(“%d”,x); } 输出:8 public static void main(String[] args){ int x = 7; x = x++; System.out.println(x); } 输出:7 我不明白为什么两种语言给出不同的输出。 我在下面提到了链接什么是“x = x ++”之后的x?

从JNI / NDK返回从C到Java的2D原始数组

我已经找到了大量关于如何在JNI中生成2D原始数组并将其返回给Java的文档。 但是这些信息无法描述如何在C中给定上下文传递已经存在的 2D浮点数组(float **)。 为了明确地描述我的问题,我将添加一些我想要实现的C伪代码: // Returns a 2D float array from C to Java jfloatArray ndk_test_getMy2DArray(JNIEnv* env, jobject thiz, jlong context) { // Cast my context reference MyContextRef contextRef = (MyContextRef) context; // In case we need it below unsigned int length = MyContextGet1DLength(contextRef); // Get the 2D Array we want to “Cast” float** […]

在Java中使用C结构

我必须编写一个Java程序,它将从网络接收消息并将其内容显示给用户。 问题是我收到的消息只是C结构的二进制转储。 除此之外,一些消息来自小端机器,一些来自大端,没有字段被转换为网络字节顺序。 我的一种方法是使用JNI并将c结构转换为某些XML字符串,然后将此XML字符串反序列化为Java对象。 这是一项艰巨的工作,因为大约有122种不同的结构,每种结构都包含20多个区域。 我想知道是否有一个图书馆/工具/方法可以让我的工作变得有点容易?

为什么名称main为函数main()

为什么函数名main()保留在许多语言中,如C,C ++,Java? 为什么没有该function的任何其他名称? 所有这3个main()是否有任何共同的结构(在C,C ++,Java中)

客户端 – 服务器网络入门

我是一名优秀的程序员,但我没有网络经验。 基本上,我想进入客户端 – 服务器网络。 例如,我想尝试获取服务器进程,允许客户端通过Internet连接并将ping发送到所有其他连接的客户端。 那么也许我会尝试开发一个简单的聊天客户端,或者一些简单的多人游戏,我会从那里开始。 我非常清楚可能有用的语言:Java,C ++,C。 我该如何开始? 我想预先学习最佳实践,所以你可以推荐的好学习资源(例如书籍,在线资料等)会很棒。 编辑:我是否还应该研究某种虚拟机来模拟彼此交互的各种机器? 编辑2:我已经提出了50个代表的赏金。 到目前为止已经提出了一些很好的答案 – 我正在寻找更详细的答案,所以希望这会鼓励这样做。 例如,具有这种比较不同学习方法的经验的人的答案将非常有帮助。 谢谢! 我也可以获得有关整个VM的一些反馈吗?