我有一个1.5兼容的Java源代码,它将仅在1.8 VM上运行,并想知道在编译期间是否有利于目标1.8,而不是旧版本.
1.5 vs 1.8之间会有任何性能差异吗?是否有任何相关文档或更改日志可供我查看?
我正在尝试使用NetMQ实现在两个应用程序之间传递的简单消息(稍微更详细地描述了我想要实现的内容).
经过一些试验和错误后,我发现在Connect/Bind调用之后我不能立即发送或接收消息,因为它们是非阻塞的,即使尚未建立连接也会实际返回.
现在我用Thread.Sleep()解决了这个问题,但这对它有不好的品味,对于生产系统来说绝对不行.
所以问题是,如何在NetMQ/ZeroMQ中做到这一点?
客户端示例:
using (NetMQContext ctx = NetMQContext.Create())
{
using (var client = ctx.CreatePushSocket())
{
client.Connect("tcp://127.0.0.1:5555");
Thread.Sleep(100); // wait for connection
for (int i = 0; i < 5; i++)
{
client.Send("test " + i , true);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
服务器示例:
using (NetMQContext ctx = NetMQContext.Create())
{
using (var server = ctx.CreatePullSocket())
{
server.Bind("tcp://127.0.0.1:5555");
Thread.Sleep(100); // wait for connection
while (true)
{
var str = server.ReceiveString();
Console.Out.WriteLine(str);
Thread.Sleep(60*1000); // do msg processing
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标的描述:
客户端 …
是否有可能ceil(2.12) = 3只用几个算术运算来计算上限(例如):* - + /
即没有铸造和其他软件技巧,只使用除法/ mul/sub /加法和比较运算符?
澄清:
基本上我有一个系统允许将表达式赋值给变量,其中表达式只能包含上面的4个算术运算,比较和循环.例如
var x = if(A*(1.434 + 0.4325))> 54.4534)然后45.6否则43.435
而且我想这样做
var x = CEIL(...)
我想在将一些用户数据发送到服务器之前对其进行加密。也就是说,数据将在浏览器客户端使用 JavaScript 进行加密。
我的问题是,有哪些选项可用于在客户端存储私钥(当用户稍后查看数据时,它将用于解密数据)?
HTML5 本地存储或仅从 JavaScript 读取包含密钥的本地文本文件似乎有点不对劲……是否可以使用个人证书来实现此目的?或者还有其他选择吗?
编辑:
稍微澄清一下,
所有需要加密的敏感数据都是在客户端计算机上生成的,并且永远不应该以纯文本形式保留。有问题的数据主要是用户将上传到服务器的文件,但是我们将来可能也希望加密某些表单字段。
一旦加密的数据发送到服务器,它就会以加密的形式存储,并且除了同一客户端计算机之外,永远不会在任何其他地方解密。例如,如果用户决定下载回文件,他将收到加密文件,该文件将在浏览器中使用 JavaScript 进行解密。
此外,对我们来说至关重要的是,公钥-私钥对是在同一台客户端计算机上生成的。此操作仅由用户手动或在某些自动化解决方案的帮助下完成一次。
最重要的是,私钥或纯文本数据都不应离开客户端的计算机。
在使用自定义前缀提取regex identifierRegexps时,我似乎无法使getCompletions函数在我的自定义完成符中触发
基本上我正在尝试创建一个自动完成器,它将触发句点(.)前面的字母.例如在"foo"中.当键入句号时,我想提出我的自定义建议.
var lang = ace.require("ace/ext/language_tools");
var editor = ace.edit("editor");
editor.getSession().setMode("ace/mode/javascript");
editor.setOptions({
enableBasicAutocompletion: true,
enableSnippets: true,
enableLiveAutocompletion: true
});
var compl = {
identifierRegexps: [/[a-zA-Z_0-9\.\$\-\u00A2-\uFFFF]/],
getCompletions: function (editor, session, pos, prefix, callback) {
alert(prefix);
callback(null, []);
return;
}
}
lang.addCompleter(compl);
Run Code Online (Sandbox Code Playgroud)
使用上面的代码段,在键入点时会出现建议弹出窗口,但getCompletions不会触发.但是,它会触发任何其他角色.
更新:
在添加自定义完成符之前删除默认完成符
lang.setCompleters();
Run Code Online (Sandbox Code Playgroud)
使getCompletion函数触发.但是,在这种情况下,前缀参数为空.
我有两个 go 例程:
func f1 {
... some code
// critical section 1 (CS1)
... critical section code
// end criticla section 1
... more code
}
func f2 {
... some code
// critical section 2 (CS2)
... critical section code
// end criticla section 2
... more code
}
func main() {
go f1()
go f2()
}
Run Code Online (Sandbox Code Playgroud)
确保这些例程中的关键部分始终交替执行的正确方法是什么?
换句话说,CS1 只能在 CS2 之后执行,反之亦然:CS1、CS2、CS1、CS2、CS1 等。
由于某些自定义组件在其属性中需要bean名称(不是bean实例),我需要在页面之间传递实际的bean名称.由于bean本身也被非自定义组件使用,我想避免使用额外的ui:param(如此处所描述的在<rich:modalPanel>中传递操作),因为它基本上指定了相同的bean.
是否可以使用提供的bean名称指定组件的操作ui:param?
基本上我试图实现以下目标:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/template.xhtml">
<ui:param name="beanName" value="sessionBean"/>
...
</ui:composition>
Run Code Online (Sandbox Code Playgroud)
和template.xhtml是
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
template="/someothertemplate.xhtml">
</ui:define name="somename">
<h:form>
<a4j:commandButton value="test" action="#{beanName.delete}"/>
</h:form>
</ui:define>
</ui:composition>
Run Code Online (Sandbox Code Playgroud)
虽然删除方法已正确定义(验证action="#{sessionBean.delete}"),但上面的代码给了我
javax.faces.FacesException:#{beanName.delete}:javax.el.MethodNotFoundException:/template.xhtml @ 201,89 action ="#{beanName.delete}":找不到方法:sessionBean.delete()
ace-editor ×1
ajax4jsf ×1
algorithm ×1
c# ×1
concurrency ×1
cryptography ×1
facelets ×1
go ×1
goroutine ×1
java ×1
javascript ×1
jsf ×1
math ×1
netmq ×1
rsa ×1
token ×1
zeromq ×1