小编oro*_*rom的帖子

针对不同Java版本的源代码之间的性能差异?

我有一个1.5兼容的Java源代码,它将仅在1.8 VM上运行,并想知道在编译期间是否有利于目标1.8,而不是旧版本.

1.5 vs 1.8之间会有任何性能差异吗?是否有任何相关文档或更改日志可供我查看?

java

13
推荐指数
2
解决办法
1437
查看次数

等待连接的正确方法是什么?

我正在尝试使用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)

我想要实现的目标的描述:

客户端 …

c# zeromq netmq

7
推荐指数
2
解决办法
5594
查看次数

Ceil函数使用有限的算术运算符集

是否有可能ceil(2.12) = 3只用几个算术运算来计算上限(例如):* - + / 即没有铸造和其他软件技巧,只使用除法/ mul/sub /加法和比较运算符?

澄清:

  • 复杂性很重要,但我很乐意听到任何解决方案.
  • 模数不可用.
  • 价值是积极的.
  • 操作不是四舍五入.
  • 通过软件技巧我的意思是mod,位级操作等.

基本上我有一个系统允许将表达式赋值给变量,其中表达式只能包含上面的4个算术运算,比较和循环.例如

var x = if(A*(1.434 + 0.4325))> 54.4534)然后45.6否则43.435

而且我想这样做

var x = CEIL(...)

algorithm math

6
推荐指数
1
解决办法
1737
查看次数

在浏览器中存储私钥的最佳方式?

我想在将一些用户数据发送到服务器之前对其进行加密。也就是说,数据将在浏览器客户端使用 JavaScript 进行加密。

我的问题是,有哪些选项可用于在客户端存储私钥(当用户稍后查看数据时,它将用于解密数据)?

HTML5 本地存储或仅从 JavaScript 读取包含密钥的本地文本文件似乎有点不对劲……是否可以使用个人证书来实现此目的?或者还有其他选择吗?

编辑:

稍微澄清一下,

所有需要加密的敏感数据都是在客户端计算机上生成的,并且永远不应该以纯文本形式保留。有问题的数据主要是用户将上传到服务器的文件,但是我们将来可能也希望加密某些表单字段。

一旦加密的数据发送到服务器,它就会以加密的形式存储,并且除了同一客户端计算机之外,永远不会在任何其他地方解密。例如,如果用户决定下载回文件,他将收到加密文件,该文件将在浏览器中使用 JavaScript 进行解密。

此外,对我们来说至关重要的是,公钥-私钥对是在同一台客户端计算机上生成的。此操作仅由用户手动或在某些自动化解决方案的帮助下完成一次。

最重要的是,私钥或纯文本数据都不应离开客户端的计算机。

javascript cryptography rsa web-applications token

6
推荐指数
1
解决办法
7769
查看次数

自定义自动填充和句点(.)

在使用自定义前缀提取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函数触发.但是,在这种情况下,前缀参数为空.

ace-editor

6
推荐指数
1
解决办法
1991
查看次数

Go语言中临界区的交替执行

我有两个 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 等。

concurrency go goroutine

3
推荐指数
1
解决办法
494
查看次数

facelets:使用ui:param将bean名称传递给action属性

由于某些自定义组件在其属性中需要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()

jsf facelets ajax4jsf

2
推荐指数
1
解决办法
1万
查看次数