Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

11
Java字节数组到字符串到字节数组
我试图理解一个byte []到字符串,一个byte []的字符串表示形式到byte []转换...我将我的byte []转换成一个要发送的字符串,然后我希望我的Web服务(用python编写)将数据直接回显给客户端。 当我从Java应用程序发送数据时... Arrays.toString(data.toByteArray()) 字节发送.. [B@405217f8 发送(这是Arrays.toString()的结果,它应该是我的字节数据的字符串表示形式,该数据将通过电线发送): [-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97] 在python端,python服务器将字符串返回给调用方(我可以看到的与我发送给服务器的字符串相同 [-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, …
180 java  string  byte 

9
Ant和Maven之间的差异
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 有人可以告诉我Ant和Maven之间的区别吗?我也从未用过。我知道它们是用来自动构建Java项目的,但是我不知道从哪里开始。


4
EJB-何时使用远程和/或本地接口?
我是Java EE的新手,我试图理解本地接口和远程接口的概念。有人告诉我Java EE的一大优点是易于扩展(我相信这意味着您可以在不同的服务器上部署不同的组件)。那是远程和本地接口进入的地方吗?如果您希望应用程序在不同的服务器上具有不同的组件,则应该使用远程接口吗?如果您的应用程序仅驻留在一台服务器上,并使用本地接口? 如果我的上述假设是正确的,那么您将如何选择是对新应用程序使用本地接口还是远程接口,而又不确定流量的大小呢?首先使用本地接口,然后在适用的情况下逐步升级到远程接口? 感谢您的澄清和建议。
180 java  jakarta-ee  ejb 

11
如何使用Java监视计算机的CPU,内存和磁盘使用情况?
我想用Java监视以下系统信息: 当前的CPU使用率**(百分比) 可用内存*(空闲/总) 可用磁盘空间(可用/总) *请注意,我的意思是整个系统可用的整体内存,而不仅仅是JVM。 我正在寻找一种不依赖于我自己的调用外部程序或使用JNI的代码的跨平台解决方案(Linux,Mac和Windows)。尽管这些是可行的选择,但如果有人已经有了更好的解决方案,我宁愿自己不要维护特定于操作系统的代码。 如果有一个免费的库以可靠的跨平台方式执行此操作,那将很棒(即使它进行外部调用或本身使用本机代码)也是如此。 任何建议,不胜感激。 为了澄清,我想获得整个系统的当前CPU使用率,而不仅仅是Java进程。 SIGAR API在一个软件包中提供了我正在寻找的所有功能,因此,这是迄今为止我所提问题的最佳答案。但是,由于它是根据GPL许可的,因此我不能将其用于原始用途(封闭源商业产品)。Hyperic可能会将SIGAR许可用于商业用途,但我尚未对此进行调查。对于我的GPL项目,将来一定会考虑使用SIGAR。 对于我当前的需求,我倾向于以下方面: 对于CPU使用率,OperatingSystemMXBean.getSystemLoadAverage() / OperatingSystemMXBean.getAvailableProcessors()(每CPU平均负载) 为了记忆,OperatingSystemMXBean.getTotalPhysicalMemorySize()以及OperatingSystemMXBean.getFreePhysicalMemorySize() 对于磁盘空间,File.getTotalSpace()以及File.getUsableSpace() 局限性: 在getSystemLoadAverage()和磁盘空间查询方法仅可用的Java 6此外,根据一些JMX功能可能无法适用于所有平台(即它的报道,getSystemLoadAverage()返回-1在Windows上)。 尽管最初是根据GPL许可的,但已将其更改为Apache 2.0,通常可用于封闭源商业产品。

6
为什么创建线程据说很昂贵?
Java教程说创建线程很昂贵。但是为什么价格昂贵呢?当创建Java线程使创建过程变得昂贵时,究竟发生了什么?我认为该说法是正确的,但是我只是对JVM中的线程创建机制感兴趣。 线程生命周期开销。线程创建和拆除不是免费的。实际开销因平台而异,但是线程创建会花费时间,从而在请求处理中引入延迟,并且需要JVM和OS进行某些处理活动。如果请求频繁且轻量(如大多数服务器应用程序中一样),则为每个请求创建一个新线程可能会消耗大量计算资源。 来自Java并发实践 作者:Brian Goetz,Tim Peierls,Joshua Bloch,Joseph Bowbeer,David Holmes,Doug Lea 打印ISBN-10:0-321-34960-1

9
如何在翻新库中设置超时?
我在我的应用程序中使用Retrofit库,我想将超时设置为60秒。改装有某种方法可以做到这一点吗? 我以这种方式设置Retrofit: RestAdapter restAdapter = new RestAdapter.Builder() .setServer(BuildConfig.BASE_URL) .setConverter(new GsonConverter(gson)) .build(); 如何设置超时时间?


10
什么时候在RxJava中使用map vs flatMap?
什么时候在RxJava中使用mapvs ?flatMap 举例来说,假设我们要将包含JSON的文件映射到包含JSON的字符串中, 使用map,我们必须以Exception某种方式处理。但是如何? Observable.from(jsonFile).map(new Func1<File, String>() { @Override public String call(File file) { try { return new Gson().toJson(new FileReader(file), Object.class); } catch (FileNotFoundException e) { // So Exception. What to do ? } return null; // Not good :( } }); 使用flatMap,它更加冗长,但是Observables如果我们选择其他地方甚至重试,我们可以将问题转发到链的下方并处理错误。 Observable.from(jsonFile).flatMap(new Func1<File, Observable<String>>() { @Override public Observable<String> …
180 java  mapping  rx-java  flatmap 

4
标准Kotlin库中提供了哪些Java 8 Stream.collect等效项?
在Java 8中,Stream.collect它允许对集合进行聚合。在Kotlin中,除了以stdlib中的扩展功能的集合形式存在之外,这并不完全相同。但尚不清楚不同用例的等效性。 例如,在JavaDocCollectors的顶部是为Java 8编写的示例,将它们移植到Kolin时,在不同的JDK版本上不能使用Java 8类,因此可能应该以不同的方式编写它们。 在网上显示Kotlin集合示例的资源方面,它们通常是微不足道的,不能真正与相同的用例进行比较。有什么真正与案例相匹配的好示例,例如针对Java 8记录的案例Stream.collect?列表是: 将名称累积到列表中 将名称累积到TreeSet中 将元素转换为字符串并将其连接起来,并以逗号分隔 计算员工的薪金总额 按部门分组员工 按部门计算薪金总额 划分学生通过和失败 在上面链接的JavaDoc中有详细信息。 注意: 这个问题是作者故意写和回答的(“ 自我回答的问题”),因此SO中经常出现Kotlin主题的惯用答案。还要澄清一些针对Kotlin字母的非常古老的答案,这些答案对于当今的Kotlin而言并不准确。

2
套接字的连接和读取超时之间有什么区别?
3个问题: 套接字的连接和读取超时之间有什么区别? 什么连接超时设置为“无限”是什么意思?在什么情况下可以保持不定式循环?什么会触发无限循环死亡? 什么读超时设置为“无限”是什么意思?在什么情况下可以保持不定式循环?什么会触发无限循环死亡?


9
在catch块中引发异常-是否会再次捕获?
这似乎是一个编程101的问题,我以为我知道答案,但是现在发现自己需要仔细检查。在下面的这段代码中,在第一个catch块中引发的异常是否会被下面的常规Exception catch块捕获? try { // Do something } catch(IOException e) { throw new ApplicationException("Problem connecting to server"); } catch(Exception e) { // Will the ApplicationException be caught here? } 我一直认为答案是否定的,但是现在我有一些奇怪的行为可能是由这种情况引起的。对于大多数语言来说,答案可能是相同的,但是我正在使用Java。
180 java  exception 

1
使用Java EE API替换不推荐使用的JPMS模块
Java 9 已弃用了六个包含Java EE API的模块,它们将很快被删除: 带有javax.activation包的java.activation java.corba有javax.activity,javax.rmi,javax.rmi.CORBA,和org.omg.*包 带javax.transaction包的java.transaction java.xml.bind与所有javax.xml.bind.*软件包 java.xml.ws有javax.jws,javax.jws.soap,javax.xml.soap,和所有javax.xml.ws.*包 带javax.annotation包的java.xml.ws.annotation 哪些维护的第三方工件提供了这些API?它们提供这些API的性能如何或它们必须提供哪些其他功能都没关系-重要的是,它们是这些模块/软件包的直接替代品吗? 为了更轻松地收集知识,我用到目前为止的知识进行了回答,并将答案设置为社区Wiki。我希望人们能扩展它而不是自己写答案。 在您投票关闭之前: 是的,各个模块上已经存在一些问题,对此问题的答案当然会重复该信息。但是AFAIK并没有一点可以了解所有这些知识,我认为这具有很大的价值。 要求图书馆推荐的问题通常被认为是题外话,因为“它们往往会吸引有目的的答案和垃圾邮件”,但我认为这并不适用。有效库的集合已明确标出:它们必须实现特定的标准。除此之外,没有其他问题,因此我认为意见和垃圾邮件风险不大。

27
Tomcat:如何找出正在运行的tomcat版本
我正在尝试使Appfuse + tomcat + jRebel工作。 默认情况下,Appfuse使用Cargo下载tomcat(版本7.0.33)并将应用程序部署到其中。我希望使用已安装的tomcat(版本7.0.27)而不是已下载的tomcat。我根据appfuse FAQ进行了更改。 用部署后mvn cargo:run,我如何才能知道实际运行的tomcat确实是7.0.27? 我曾经键入错误的URL(例如localhost:8080 / dfsfsdf)以在错误页面中看到它,但是现在它什么也没显示。 我$CATALINA_HOME指向自己的tomcat 7.0.27。对不起,忘了提及,它是用于Windows 更新: 由于这个问题已经以某种方式变得流行,所以我想解释一下为什么这个接受的答案。很简单,这是第一个解决了我的问题的。 从问题的标题来看, @ Tech Junkie和@CPU 100确实是最好的答案,但不适用于遇到的情况。(我想知道是mvn cargo:run运行已安装的tomcat还是运行“项目嵌入” tomcat) :)
180 java  tomcat  appfuse 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.