Tag: java

通过JNI传递C和Java之间的指针

目前,我正在尝试创build一个使用CUDAfunction的Java应用程序。 CUDA和Java之间的连接工作正常,但我有另一个问题,并想问,如果我的想法是正确的。 当我从Java调用本地函数时,我将一些数据传递给它,函数计算一些东西并返回结果。 是否有可能,让第一个函数返回一个引用(指针)这个结果,我可以传递给JNI并调用另一个函数,进一步计算结果? 我的想法是通过将数据保留在GPU内存中,并将参考传递给GPU,从而减less将数据复制到GPU以及从GPU复制数据的开销,以便其他function可以使用它。 尝试一段时间后,我想我自己,这应该是不可能的,因为应用程序结束后(在这种情况下,当C函数终止)指针被删除。 它是否正确? 或者我只是在C坏了看到解决scheme? 编辑:好,扩大一点问题(或者更清楚地说):当函数结束时,由JNI原生函数分配的内存是否被释放? 或者我仍然可以访问它,直到JNI应用程序结束或当我手动释放它? 感谢您的input :)

为什么Java中的System.arraycopy是原生的?

我很惊讶地发现在Java源代码中System.arraycopy是一个本地方法。 当然是因为速度更快。 但是,能够使用它的代码的原生技巧是什么? 为什么不循环遍历原始数组并将每个指针复制到新数组中 – 当然这不是那么慢又麻烦?

全屏幕videoview不拉伸video

我想知道是否可以让video通过全屏video运行的方式吗? 我搜查了很多,尝试了很多方法,例如: 在清单中应用主题: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 但是这不会强制video全屏。 应用于活动本身: requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 也不会强制video全屏。 强制video全屏的唯一方法是: <VideoView android:id="@+id/myvideoview" android:layout_width="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:layout_height="fill_parent"> </VideoView> 这样,它会导致全屏video,但它延长了video本身 (细长的video), 我没有把这个不适当的解决scheme应用到我的videovideo中,那么有什么办法可以做到这一点吗? video分类: public class Video extends Activity { private VideoView myvid; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); myvid = (VideoView) findViewById(R.id.myvideoview); myvid.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.video_1)); myvid.setMediaController(new MediaController(this)); myvid.requestFocus(); myvid.start(); } } […]

在Java中使用recursion来反转string

这是一些Java代码来recursion地反转string。 有人可以提供解释它是如何工作的? public static String reverse(String str) { if ((null == str) || (str.length() <= 1)) { return str; } return reverse(str.substring(1)) + str.charAt(0); } 我不明白这可能会如何工作。

如何使用GWT EventBus

我还不熟悉GWT,想知道如何使用EventBus,或者是否有更好的解决scheme通过项目发送事件。 小部件1有一个button。 Widget 2有一个标签,当我按下button时应该改变。 这些小部件在DockLayout中: RootLayoutPanel rootLayoutPanel = RootLayoutPanel.get(); DockLayoutPanel dock = new DockLayoutPanel(Unit.EM); dock.addWest(new Widget1(), 10); dock.add(new Widget2()); rootLayoutPanel.add(dock); 我已经在Widget 1中声明了一个handleClickAlert @UiHandler("button") void handleClickAlert(ClickEvent e) { //fireEvent(e); } 希望有人能帮助我。 谢谢!

如何检查URL是否存在或返回404与Java?

String urlString = "http://www.nbc.com/Heroes/novels/downloads/Heroes_novel_001.pdf"; URL url = new URL(urlString); if(/* Url does not return 404 */) { System.out.println("exists"); } else { System.out.println("does not exists"); } urlString = "http://www.nbc.com/Heroes/novels/downloads/Heroes_novel_190.pdf"; url = new URL(urlString); if(/* Url does not return 404 */) { System.out.println("exists"); } else { System.out.println("does not exists"); } 这应该打印 exists does not exists testing public […]

弃用ManagedQuery()问题

我有这个方法: public String getRealPathFromURI(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } 不幸的是,编译器向我展示了一个问题: Cursor cursor = managedQuery(contentUri, proj, null, null, null); 由于managedQuery()已被弃用。 我怎么能重写这个方法,而不使用managedQuery() ?

Java:Instanceof和generics

在我通过generics数据结构查看值的索引之前,我想看看它是否是一个已经被参数化的types的实例。 但是,当我这样做时,Eclipse会抱怨: @Override public int indexOf(Object arg0) { if (!(arg0 instanceof E)) { return -1; } 这是错误信息: 不能对types参数E执行instanceof检查,而是使用它的erasure Object,因为genericstypes信息将在运行时被删除 有什么更好的方法来做到这一点?

将java.time.LocalDate转换为java.util.Datetypes

我想将java.time.LocalDate转换为java.util.Datetypes。 因为我想将date设置为JDateChooser 。 还是有任何支持java.timedate的dateselect器?

Java中的方法签名是否包含返回types?

Java类/接口中的方法签名是否包含其返回types? 例: Java是否知道这两种方法之间的区别: public class Foo { public int myMethod(int param) {} public char myMethod(int param) {} } 或者,也许只有方法名称和参数列表是重要的?