草庐IT

IPC_VAR_MEN

全部标签

java - 我应该使用哪种 Java RMI/RPC/IPC 技术?

我正在开发一个Java应用程序,它由一个服务器和一个客户端(将来可能有多个客户端)组成,它们可以在不同的主机上运行。对于这两者之间的通信,我目前使用自定义协议(protocol),该协议(protocol)由通过网络套接字发送并在两端转换回JavaBean对象的JSON消息组成。然而,应用程序变得越复杂,我发现这种方法不符合我的标准,而且太复杂了。我正在寻找一个完善的、可能是标准化的替代方案。我看过远程方法调用(RMI),但读到该协议(protocol)很慢(网络开销大)。我正在寻找的技术应该是轻量级的(协议(protocol)和库明智的)、健壮的、可能支持压缩(如果支持的话,还有很大

java - IntelliJ IDEA 没有 Java 10 'var' 的代码完成?

最近安装了新版(2018.1)的IntelliJIDEA,增加了对Java10的支持。但是当我尝试使用var(用于局部变量类型推断)时,我发现代码完成列表中没有var。(见下面的截图)如果我继续输入,它将应用VarHandle作为该列表中的第一个建议。然后我必须撤消该完成以恢复var。我检查了项目设置,我使用JDK10,语言级别也设置为10。像varnumber=1;这样的代码编译得很好。我在IDE设置中找不到任何相关信息。我做错了什么?我只想不间断地使用var声明。 最佳答案 正如@Vic所指出的,这个appearstobeabu

java - SCJP问题: Java method overloading with var-args.是什么道理?

为什么下面的程序会抛出异常?publicclassMainClass{publicstaticvoidmain(String[]argv){callMethod(2);}publicstaticvoidcallMethod(Integer...i){System.out.println("Wrapper");}publicstaticvoidcallMethod(int...i){System.out.println("Primitive");}方法callMethod(Integer[])对于MainClass类型不明确好的,我可以看到这两种方法中的任何一种都可以工作(如果另一种被注

java - Scala 闭包与 Java 内部类的比较 -> final VS var

我首先问了这个关于在Java中将final与匿名内部类一起使用的问题:Whydoweusefinalkeywordwithanonymousinnerclasses?我实际上正在阅读MartinOdersky的Scala书。Scala似乎简化了很多Java代码,但对于Scala闭包,我可以注意到一个显着差异。虽然在Java中我们用匿名内部类“模拟”闭包,捕获一个最终变量(它将被复制到堆上而不是堆栈上),但在Scala中我们似乎可以创建一个闭包来捕获一个val,也是一个var,因此在闭包调用中更新它!这就像我们可以在没有final关键字的情况下使用Java匿名内部类!我还没有读完这本书,

c# - .NET 和 Java 客户端应用程序之间的 IPC

我必须在没有任何代理或服务器的情况下获得两个不同的客户端应用程序对话。在Java和.NET两个进程之间进行IPC的最佳方法是什么?它必须能够在多用户终端服务器上工作,所以请不要套接字。我希望它轻巧简单,即插即用,所以请不要使用RMI/WS。我现在正在考虑使用JNI访问Mutex和命名管道,我的方向是否正确?欢迎任何想法!谢谢丹尼斯 最佳答案 我是jni4net的作者,JVM和CLR之间的开源进程内桥梁。它建立在JNI和PInvoke之上。无需C/C++代码。希望对您有所帮助。 关于c#-

Java 方法参数 : var args vs array

在整个GoogleGuava库中,我注意到使用“一个(或两个)加varargs”技术的趋势。例子:voidadd(Tvalue,T...moreValueArr)voidadd(Tvalue,Tvalue2,T...moreValueArr)我花了一段时间才弄清楚原因:为了防止使用零个参数(在第一种情况下)或一个参数(在第二种情况下)进行调用。进一步扩展此技术,如果在下面的场景A和B之间进行选择,哪个更可取?我希望具有深厚Java知识的人可以提供见解。场景A:(两种方法)voidadd(T...valueArr)voidadd(Iterableiterable)场景B:(三种方法)vo

java - 无法在/var/root/.m2/repository 创建本地存储库

我的本​​地Maven存储库位于/Users/power/.m2/repository。但是我得到了这个错误[java][ERROR]Couldnotcreatelocalrepositoryat/var/root/.m2/repository->[Help1]似乎Maven认为它应该使用root用户repo。我该如何解决?我不需要使用root权限运行我的Maven任务。 最佳答案 默认的maven仓库是${user.home}/.m2/repository/但您可以使用settings.xml(${user.home}/.m2/s

java - String [] 和 String... (Var-args) 在内部工作时是否相同?

classWrongOverloading{voidsomething(String[]a){..}Integersomething(String...aaa){return1;}}以上代码无法编译!编译器说这些是重复的方法。那么使用String数组或Stringvar-args的意思完全一样吗?它们是如何在内部实现的? 最佳答案 它们实际上是相同的,除了编译器不会接受可变参数,除非它是最后一个参数,并且它不允许您将多个参数传递给数组。publicvoidmethodA(int...ints,inta);//doesn'tcompi

Java Posix IPC 有 API 吗?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我想知道我是否可以访问Java中的Posix消息队列,因为我有一个无法修改的应用程序并使用消息队列与其他进程通信。是否有任何api或包可以做到这一点?我知道我可以使用JNI,但我需要尽快执行此操作,所以没有时间开发它。问候。

java - 为什么在方法重载中加宽比 Boxing 和 var-args 都好?

我正在准备SCJP考试,在研究扩展部分时,它给出了扩展在重载方面胜过Boxing和Var-args,但没有明确的解释。尝试搜索但没有得到更好的答案。我得到的一个答案是因为编译器在选择较新的样式之前先选择较旧的样式。但我不相信。编辑:我知道加宽比装箱和可变参数更受欢迎。但为什么是我的问题。其中我知道一个。任何其他原因。 最佳答案 是的,出于兼容性要求,编译器“选择较旧的样式而不是较新的样式”。想象一下,一些在Java5出现之前编写的代码,在Java5下编译时突然发生了行为变化!那会很糟糕。扩展转换自Java诞生以来就已存在,但自动装箱