草庐IT

java - 为什么调用 get(int) 后 java.util.calendar 对象的值会发生变化

我正在尝试调试一些遗留代码中的问题。我已将问题缩小为以下方法:publicStringformatDateTimeFromCalendar(Calendarcal){StringBuffersb=newStringBuffer();Stringhr=""+cal.get(Calendar.HOUR_OF_DAY);sb.append(String.format("%02d",hr));sb.append(":");sb.append(String.format("%02d",cal.get(Calendar.MINUTE)));sb.append("on");sb.append(Str

java - 签名长度不正确 : got 127 but was expecting 128

java1.8升级后我遇到了一个奇怪的问题。我在我们的一个实用程序中使用jsch-0.1.54.jar从各个地方下载文件。这个特殊的实用程序已经使用了将近4-5年,没有任何问题(当时是jsch-0.1.48)。当时环境是java1.6。最近我们升级到java1.8,因此我们升级了这个特定的实用程序。现在我们遇到一个奇怪的问题,它偶尔会出现,而且大多数时候文件下载都是完美的。错误日志INFO:SSH_MSG_KEXDH_INITsentINFO:expectingSSH_MSG_KEXDH_REPLYINFO:DisconnectingfromSRV2000port222016-10-2

java - joda new DateTime(int,int,int,int,int,int)的问题

您好,我使用weblogic11g创建war应用程序,我对jodatime的方法有疑问newDateTime(int,int,int,int,int,int);这抛出了nosuchmethodException但是当我使用newDateTime(int,int,int,int,int,int,int);(oneintmore)它工作正常更新:DateTimestart=newDateTime(1990,1,1,0,0,0);thisdoesntworksDateTimestart=newDateTime(1990,1,1,0,0,0,0);thisworks知道问题出在哪里吗?谢谢

java - PBEWITHSHA256AND128BITAES-CBC-BC 在 RedHat 6.4 上创建 java.security.NoSuchAlgorithmException

我们有一个应用程序使用BouncyCaSTLe通过PBEWITHSHA256AND128BITAES-CBC-BC算法加密数据。它在运行OpenJDK1.7的Ubuntu上运行良好。但是,当我们将其移动到同时运行OpenJDK1.7的RedHat6.4时,我们会遇到以下异常:java.security.NoSuchAlgorithmException关于可能导致此问题的任何想法。我们如何将PBEWITHSHA256AND128BITAES-CBC-BC算法添加到RedHat6.4?p.s.应用程序在JBoss中运行。privateStringcryptoAlgorithm="PBEWI

java - 使用 keytool 生成 128 位 key

有没有一种方法可以生成适合使用Sun的keytool程序进行加密的128位key对?似乎http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyPairGenerator中可用的算法不支持或不允许短于512位的key。key对将与ff一起使用。代码片段:Security.addProvider(newBouncyCastleProvider());KeyStorekeyStore=KeyStore.getInstance("PKCS12");FileInputStreamkeyS

java - 为什么我对这个长二进制数使用 Long.parseLong(String s, int radix) 会冒犯 Java?

我有以下代码:为什么Java认为这不是有效的long。@TestpublicvoidtestOffendingBinaryString(){StringoffendingString="1000000000000000000010101000000000000000000000000000000000000000";assertEquals(64,offendingString.length());Long.parseLong(offendingString,2);} 最佳答案 因为它超出了long的有效值范围。字符串:"-1111

java - 为什么 CountDownLatch.getCount() 返回一个 long 而不是一个 int?

我查看了代码,一切都是int--传递给CountDownLatch构造函数的参数是int,Sync中的变量是int,Sync.getCount()的返回类型是int。但是CountDownLatch.getCount()返回一个长?想知道为什么。 最佳答案 除非设计该API的人回答,否则我不知道您是否会找到该问题的充分答案,但它确实说它用于“调试和测试”。publiclonggetCount(){...}//justfordebuggingandtesting 关于java-为什么Cou

java - 为什么 java.awt.Point 提供设置和获取 double 值的方法,但将 x 和 y 存储为 int 值?

正如您在java.awt.Point的Oracle文档中看到的那样,x和y存储为int。但是,getX和getY返回double。虽然有一个setLocation方法接受2个double类型,但没有构造函数这样做。此外,无论如何,double都会在内部被截断为int。这有充分的理由吗?您可以通过使用采用double类型的方法来避免对setLocation进行强制转换,但是当您调用getX和getY。通过从getX和getY返回double,也存在对Point类精度的错误表述。 最佳答案 因为它继承自Graphics2D抽象类中使用的

Java 二进制文字 - 字节值为 -128

从SE7开始,Java允许将值指定为二进制文字。文档告诉我“字节”是一种可以容纳8位信息的类型,值-128到127。现在我不知道为什么但我不能定义8位而只能定义7位如果我尝试将二进制文字分配给Java中的字节如下:byteb=0b000_0000;//solvestothevalue0byteb1=0b000_0001;//solvestothevalue1byteb3=0b000_0010;//solvestothevalue2byteb4=0b000_0011;//solvestothevalue3依此类推,直到我们找到使用这7位的最后几种可能性:byteb5=0b011_1111

Java Puzzler - 将 double 转换为 int

intanInt=1;doubleaDouble=2.5;anInt=anInt+aDouble;//Error-needtocastdoubletointanInt+=aDouble;//Thisisok.Why?anInt=aDouble;//Thisisalsoanerror.anInt=1+aDouble;//Thisisalsoanerror.所以我的问题是:为什么执行anInt+=aDouble不是编译错误? 最佳答案 四种情况中的三种正确报告错误。复合赋值是该规则的唯一异常(exception)。Java语言规范第15