Tag: java

使用JNI中的GetDirectBufferAddress

我试图了解如何从JNI层使用GetDirectBufferAddress 。 要理解我构建了一个非常简单的例子: public class my_image_info { static { System.loadLibrary(“my_jni”); } private java.nio.ByteBuffer image_info_bb; native static void initc( java.nio.ByteBuffer bb ); my_image_info() { image_info_bb = java.nio.ByteBuffer.allocateDirect( 5 * 4 ); initc( image_info_bb ); } public java.nio.ByteBuffer getBB() { return image_info_bb; } static public void main(String argv[]) { my_image_info fii = new my_image_info(); java.nio.ByteBuffer bb = […]

Java数组初始化列表以逗号结尾

数组初始化列表中使用的逗号,项分隔符可以在C中结束列表,这在Kernighan&Ritchie编写的第二版C编程语言中提到。 例如 int c[] = { 1, 2, 3, }; 当列表很长时,这很方便,并且在添加项目时不希望更改/检查上一行 long long c[] = { 22342342344, 4324234234, 12312311111, }; 但是在Java中我可以观察到两种不同的行为: 在Eclipse中,接受结束,而某些版本的maven编译器插件会抱怨并抛出编译错误。 但是,我没有在Flanagan的Java书中找到任何关于这种奇点的提及。 关于初始化项后结束逗号的官方规则是什么? 建议不要使用它吗?

是否有类似C的方式从java中的枚举中获取项目编号?

Perhap这是一个简单的基本问题 有一个枚举 public enum TK{ ID,GROUP,DATA,FAIL; } 我可以获得订单号,例如ID = 0,GROUP = 2,DATA = 3,FAIL = 4? 这是一种方法,但一个奇怪而漫长的方式! = S public enum TK{ ID(0),GROUP(1),DATA(2),FAIL(3); int num; TK(int n) { this.num=n; } public int get() { return num; } }; 得到数字所以我写TK.ID.get(),TK.GROUP.get()等…我不喜欢那样 有一个更好的方法? (C enums,C macros ..我想念你们两个) 谢谢