将本机指针存储在Java对象中的“正确”方法是什么?

将本机指针存储在Java对象中的“正确”方法是什么? 我可以将指针视为Java int ,如果我碰巧知道本机指针的大小是<= 32位,或者如果我碰巧知道原生指针的大小是<= 64位,那么我会把它当作Java。 但有没有更好或更清洁的方法来做到这一点? 编辑 :从JNI函数返回本机指针正是我不想做的。 我宁愿返回一个代表本机资源的Java对象。 但是,我返回的Java对象必须有一个包含指针的字段,这使我回到原始问题。 或者,是否有更好的方法让JNI函数返回对本机资源的引用?

Java程序获取没有时间戳的当前日期

我需要一个Java程序来获取没有时间戳的当前日期 : Date d = new Date(); 给我日期和时间戳。 但我只需要日期,没有时间戳。 我使用此日期与另一个没有时间戳的日期对象进行比较。 在印刷上 System.out.println(“Current Date : ” + d) 它应该打印May 11 2010 – 00:00:00 。

在Java JVM中重新排序的说明

我正在阅读这篇博文: http : //jeremymanson.blogspot.hk/2008/12/benign-data-races-in-java.html 作者在谈论在multithreading环境中打破String中的hashCode() 。 有了: public int hashCode() { int h = hash; if (h == 0) { int off = offset; char val[] = value; int len = count; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; } […]

multithreadingJava应用程序中的SQLite

我编写了一个java应用程序,偶尔将事件从多个线程记录到SQLite数据库。 我注意到我可以通过同时生成少量事件来相对容易地触发SQLite的“数据库锁定”错误。 这促使我编写了一个模拟最坏情况行为的测试程序,我很惊讶SQLite在这个用例中表现得有多糟糕。 下面发布的代码只是将五条记录添加到数据库中,首先按顺序获取“控制”值。 然后同时添加相同的五个记录。 import java.sql.*; public class Main { public static void main(String[] args) throws Exception { Class.forName(“org.sqlite.JDBC”); Connection conn = DriverManager.getConnection(“jdbc:sqlite:test.db”); Statement stat = conn.createStatement(); stat.executeUpdate(“drop table if exists people”); stat.executeUpdate(“create table people (name, occupation)”); conn.close(); SqlTask tasks[] = { new SqlTask(“Gandhi”, “politics”), new SqlTask(“Turing”, “computers”), new SqlTask(“Picaso”, “artist”), new SqlTask(“shakespeare”, “writer”), […]

读取并显示传入的消息文本android

我是android开发的新手。我正在开发小型android应用程序。 在我的应用程序中,我想要检索新发送的短信并将此消息显示给用户。 我的代码看起来像 // HellowordActivity.java package com.example.helloword; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.app.Activity; import android.os.Bundle; import android.telephony.SmsMessage; import android.util.Log; import android.widget.Toast; public class HellowordActivity extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Bundle myBundle = intent.getExtras(); SmsMessage [] messages = null; String strMessage = “”; if (myBundle != null) { Object […]

Collection类型不是通用的; 它不能用参数

我对Eclipse Galileo有一个奇怪的问题。 我将Java 1.6设置为我的JRE。 在这行代码上 List templates = new ArrayList (); 我在Eclipse的问题列表中看到以下错误: Collection类型不是通用的; 它不能用参数参数化 使用Ant构建此项目没有任何问题。 我该如何解决? 看起来这是一个Eclipse问题,但由于这个错误,我无法从IDE编译/发布我的项目。

接收SSLHandshakeException:handshake_failure,尽管我的客户端忽略所有证书

我有一个使用SSL / TLS连接到Web服务器的Java程序,并通过该连接发送各种HTTP请求。 服务器是localhost并且使用自签名证书,但我的代码使用自定义TrustManagers,并忽略无效证书。 它一直运作到现在。 服务器上的唯一区别是它曾用于运行jboss 6并且现在正在运行jboss 7.我不确定这是否是配置问题,或者我的代码是否有问题,但是我得到相同的错误我尝试使用其他基于Java的程序(如WebScarab或ZAP)进行连接。 在任何情况下,我可以对我的代码做些什么来解决这个问题? 这是完整的错误: Received fatal alert: handshake_failure javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source) 以下是失败前的调试消息: main, WRITE: TLSv1 Handshake, length […]

在构造函数中调用虚方法:Java和C ++之间的区别

在Java中: class Base { public Base() { System.out.println(“Base::Base()”); virt(); } void virt() { System.out.println(“Base::virt()”); } } class Derived extends Base { public Derived() { System.out.println(“Derived::Derived()”); virt(); } void virt() { System.out.println(“Derived::virt()”); } } public class Main { public static void main(String[] args) { new Derived(); } } 这将输出 Base::Base() Derived::virt() Derived::Derived() Derived::virt() 但是,在C ++中,结果是不同的: Base::Base() […]

将图像转换为文本 – Java

这是一个有趣的话题。 基本上,我有一个包含一些文本的图像。 如何从图像中提取文本? 我已经尝试了很多东西,但我做的每件事都很乏味,而且通常都行不通。 我只是想知道是否有一个相当简单的方法来做到这一点。 我发现了这个问题: http : //sourceforge.net/projects/javaocr/ 。 我已经尝试了好几个小时了,但我无法将它拍成Image并将其转换为图像中的文本String 。 谢谢大家!

Java中的高效XSLT管道(或将结果重定向到源)

我有一系列相互馈送的XSL 2.0样式表,即样式表A的输出馈送B馈送C. 这样做最有效的方法是什么? 重新提出的问题是:如何有效地将一个转换的输出路由到另一个转换。 这是我的第一次尝试: @Override public void transform(Source data, Result out) throws TransformerException{ for(Transformer autobot : autobots){ if(autobots.indexOf(autobot) != (autobots.size()-1)){ log.debug(“Transforming prelim stylesheet…”); data = transform(autobot,data); }else{ log.debug(“Transforming final stylesheet…”); autobot.transform(data, out); } } } private Source transform(Transformer autobot, Source data) throws TransformerException{ DOMResult result = new DOMResult(); autobot.transform(data, result); Node node = result.getNode(); […]