我们知道,反射是一种灵活但缓慢的方法,用于在运行时维护和修改代码的行为.
但是如果我们必须使用这样的功能,那么与用于动态修改的Reflection API相比,Java中是否有更快的编程技术?这些替代品反对反思的利弊是什么?
我需要生成加密强大的随机数和字节数组.为此,我正在使用Java的SecureRandom类.但我不确定在加密强度方面选择哪种PRNG算法.
以下哪个实例会产生更难以预测的数字?或者他们是平等的?
SecureRandom nativePrng = SecureRandom.getInstance("NativePRNG")
SecureRandom sha1Prng = SecureRandom.getInstance("SHA1PRNG")
Run Code Online (Sandbox Code Playgroud)
此外,我们能够使用"SUN"提供程序(例如SecureRandom.getInstance("SHA1PRNG", "SUN"))生成这些实例.这会有所作为吗?
提前致谢.
Chrome有一个很好的扩展,名为Sense,用于弹性搜索.但我找不到类似的Firefox插件.
你能推荐我吗?
我正在使用GWT作为Web开发框架.我需要从GWT客户端代码访问一些REST服务.此外,我需要解析JSON(或XML),这是这些服务的响应格式.哪个是解决这个问题的最佳方法?
提前致谢.
我有一个Json响应,如下所示:
{
"data": [
{
"param1": "value1",
"param2": "value2",
.
.
.
"paramN": "valueN"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我不知道参数的名称和数量.因此,我需要并希望将所有这些参数绑定到由<"paramX","valueX">元组组成的java.util.Map字段.为此,我尝试了以下代码,但"parametersMap"字段返回null.
@XmlRootElement(name="data")
@XmlAccessorType(XmlAccessType.FIELD)
public class Parameters {
@XmlElement
private Map<String,String> parametersMap;
// Getter and setter for parametersMap
}
Run Code Online (Sandbox Code Playgroud)
如何通过JAXB注释实现这样的绑定?
提前致谢.
我对使用它有点困惑SecureRandom.我需要在循环中生成n个 安全随机数.为每一代使用相同的SecureRandom实例是否安全?以下解决方案在加密强度方面有什么区别吗?
1)没有播种的单个实例
SecureRandom sr = new SecureRandom();
for(int i = 0; i < n; ++i) sr.nextInt();
Run Code Online (Sandbox Code Playgroud)
2)每一代的新实例
for(int i = 0; i < n; ++i) new SecureRandom().nextInt();
Run Code Online (Sandbox Code Playgroud)
3)带有播种的单个实例
SecureRandom sr = new SecureRandom()
for(int i = 0; i < n; ++i) {
byte[] seed = sr.generateSeed(32);
sr.setSeed(seed);
sr.nextInt();
}
Run Code Online (Sandbox Code Playgroud) 我使用elasticsearch 0.90.10,我想查询中使用,比如聚合函数来执行它的搜索sum(),avg(),min().
假设我的数据是这样的
[
{
"name" : "Alice",
"grades" : [40, 50, 60, 70]
},
{
"name" : "Bob",
"grades" : [10, 20, 30, 40]
},
{
"name" : "Charlie",
"grades" : [70, 80, 90, 100]
}
]
Run Code Online (Sandbox Code Playgroud)
假设我需要取平均成绩大于75(即avg(grades) >= 75)的学生.如何使用DSL,过滤器或脚本在ES中编写这样的查询?
提前致谢.
我在IntelliJ IDEA 14上遇到以下问题:
我使用Activator(v1.2.10)创建了一个Play(Scala)项目.然后,我使用activator idea命令将其转换为IDEA项目.当我用IDEA 14(Community Edition)打开项目时,SBT模块未启用.因此,类路径中不包含build.sbt文件中的新依赖项.此外,该项目未列入IDEA的SBT观点.
IDEA显示以下警告:
" 这个IDEA项目是通过gen-idea工具从SBT项目转换而来的,该工具目前依赖于传统的Scala项目模型.请考虑通过Import项目操作使用内置的SBT支持. "
请注意,Scala和SBT插件已安装在IDEA上.
在IDEA 13中我没有遇到同样的问题.
我正在使用URL安全的Base64编码来编码我随机生成的字节数组.但我解码时遇到问题.当我解码两个不同的字符串(除了最后一个字符都相同)之外,它产生相同的字节数组.例如,对于两者"dGVzdCBzdHJpbmr"和"dGVzdCBzdHJpbmq"字符串,结果都是相同的:
Array(116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 106)
Run Code Online (Sandbox Code Playgroud)
对于编码/解码,我使用java.util.Base64这种方式:
// encoding...
Base64.getUrlEncoder().withoutPadding().encodeToString(myString.getBytes())
// decoding...
Base64.getUrlDecoder().decode(base64String)
Run Code Online (Sandbox Code Playgroud)
这次碰撞的原因是什么?除了最后一个之外,是否还可以使用字符?我如何解决这个问题并使解码为每个不同的字符串返回不同的字节数组?