Java的AES加速

我想加密/解密许多小的(2-10kB)数据。 现在的性能还可以:在Core2Duo上,我得到大约90 MBytes / s AES256(当使用2个线程时)。 但是我可能需要在将来改进它 – 或者至少减少对CPU的影响。 是否可以使用Java专用AES加密硬件(使用JCE,或者可能是不同的API)? 如果我有更好的CPU,Java会利用特殊的CPUfunction(SSE5?!)吗? 或者有更快的JCE提供商? (我试过SunJCE和BouncyCastle – 没什么大不同。) 其他可能性?

实现Java Comparator

我正在尝试编写一个利用最小优先级队列的算法,所以我环顾谷歌并找到了PriorityQueue。 看来,为了使用它,我需要告诉它我希望它如何优先排序,并且这样做的方法是使用比较器(我想比较我的“Node1”的特定数据字段)对象)。 更多的谷歌搜索提出了创建一个新的比较器的想法,该比较器实现了比较器但覆盖了比较方法。 我正在尝试的是这个(以及它的其他变体): import java.util.Comparator; public class distComparator implements Comparator { @Override public int compare(Node1 x, Node1 y){ if(x.disty.dist){ return 1; } return 0; } } 编译器有几个理由抗议,其中一个原因是我没有超越比较器类(它说它是抽象的) 错误:distComparator不是抽象的,并且不会覆盖Comparator中的抽象方法compare(Object,Object) 我已将其切换为“比较(对象x,对象y)”,它负责处理该问题。 此时虽然编译器抱怨它无法在x或y中找到“dist”变量 – 这是有道理的,因为它们是我的Node1类的一部分,而不是Object类。 那怎么能起作用呢? 它显然应该有Object类型,但是如何将它引导到正确的变量?

实例变量初始化中的问题

下面是一些示例代码, class Base { private int val; Base() { val = lookup(); } public int lookup() { //Perform some lookup // int num = someLookup(); return 5; } public int value() { return val; } } class Derived extends Base { private int num = 10; public int lookup() { return num; } } class […]

JVM最大堆大小可以动态吗?

JVM -Xmx参数允许将JVM的最大堆大小设置为某个值。 但是,有没有办法让这个价值变得有活力? 换句话说,我想告诉JVM“看看,如果你需要它,只需继续从系统中取RAM,直到系统出来。” 问题的两个部分:首先,有问题的应用程序可以使用非常广泛的ram,具体取决于用户正在做什么,因此概念性最小值和最大值相差很远。 其次,JVM似乎在启动时保留虚拟内存的最大堆空间。 这个特定的应用程序运行在各种各样的硬件上,因此选择“一刀切”的最大堆空间很难,因为它必须足够低才能在低端硬件上运行,但我们真的喜欢能够利用真正强劲的机器,如果它们可用的话。

Java Javadoc包括Private

我想为我的应用程序生成javadocs,我还想包括私有成员。 我在Javadoc文档中找到了以下内容 -私人的 显示所有类和成员。 你能举一个例子来帮助我吗? 它应该是这样的: javadoc -private … 我需要知道如何为生成的html doc文件提供根目录和目标目录。 谢谢。 编辑:我找到了一种从NetBeans 6.8生成javadoc的方法。 这如下: NetBeans Java项目通常在项目的属性部分中具有此参数。 您可以在“项目”窗口中右键单击项目名称,然后选择“属性”。 在出现的“项目属性”窗口中,“文档”节点包含一个标记为“包括私有和包私有成员”的复选框字段。 我在这里找到了这个 似乎按需要生成文档。 谢谢大家。

为Eclipse RCP应用程序添加Shutdown Hook的正确方法是什么?

我有一个RCP应用程序,它使用与内存数据库的连接。 有一种情况是,当关闭窗口时,应用程序将被终止而不会让它有机会关闭与数据库的连接。 我研究了一下,似乎添加Shutdown钩子是检测此事件并在Java应用程序中进行清理的最佳方法。 但是,如果您有一个RCP应用程序,可能需要打开多个编辑器,那么处理此问题的正确方法是什么?

Spring,抽象类和注释

我有一个非常简单的抽象类 public abstract class AbstractServiceActions { @Autowired protected DatabaseModel dbModel; protected User user; protected boolean complete; protected String serviceResult; public AbstractServiceActions(User user) { this.user = user; this.serviceResult = “”; } public abstract String doAction(); } 现在您可以看到,我正在尝试自动assemblyDatabaseModel。 但在我的扩展类中,我只接受dbModel的null。 @Component public class CreateDatabaseAction extends AbstractServiceActions { …. } 问题:我在这里尝试一些不可能的事吗?

融合位置提供商:有没有办法检查位置更新是否失败?

介绍 在我的应用程序中,我希望获得用户当前所在位置的一次性准确位置。 当我使用FusedLocationProviderApi.getLastLocation有时这将是null或过时位置,因为我发现这只是获取缓存位置并且不请求新的位置更新。 解决方案是仅请求位置更新一次,如下所示。 LocationRequest locationRequest = LocationRequest.create() .setNumUpdates(1) .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) .setInterval(0); LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,locationRequest,this) 现在我总是得到一个更准确的位置。 我的问题 如何确定位置更新是否失败? 因为我只要求1。 获取位置更新时,将调用此回调 @Override public void onLocationChanged(Location location) { } 但是,如果位置更新失败,则不会调用此方法。 我试过的 我看到有一个ResultCallback。 但是,即使一次性位置更新失败,也始终会调用onSuccess。 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,locationRequest,this).setResultCallback(new ResultCallbacks() { @Override public void onSuccess(@NonNull Status status) { DebugUtils.log(“requestLocationUpdates ResultCallback onSuccess + ” + status.toString(),true,true); } @Override public void onFailure(@NonNull Status status) { DebugUtils.log(“requestLocationUpdates ResultCallback […]

可以使用对象实例访问Java中的静态方法

在Java中,创建静态方法以在没有任何对象实例的情况下访问它。 这对我来说很有意义。 但最近我遇到一个奇怪的事情,Java中的静态方法也可以通过其对象实例访问。 这对我来说非常奇怪。 你们有谁知道为什么这个function是由Java提供的? 什么是允许静态方法访问以及没有实例的重要性?

如何从Java中inheritance多个基类?

可能重复: 在Java中作弊单inheritance!! 为什么Java或C#中不允许多重inheritance? java中的多重inheritance。 我知道我们可以使用接口从多个类inheritance,但是也可以inheritance状态吗? 如何使用2个类中的定义inheritance方法并将它们放在Java的第三个类中?