草庐IT

Java - 如何仅使用 JVM Config 为某些协议(protocol)禁用 TLS 密码?

我已经看到很多在java中使用jdk.tls.disabledAlgorithms禁用TLS密码的示例,例如:jdk.tls.disabledAlgorithms=MD2,RSAkeySize但我如何才能使用jdk.tls.disabledAlgorithms或类似的配置仅对某些协议(protocol)禁用密码?例如,如何仅对TLSv1.1禁用TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256?好像不支持opensssl这样的方式,是这样的:TLSv1.1:!TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256它不会导致任何错误,但密码仍然

java - JVM-XX :+StringCache argument?

我最近阅读了有关JRE6[JavaVMOptions中可用的所有JVM参数的信息。]并看到了这个:-XX:+StringCache:Enablescachingofcommonlyallocatedstrings.现在我的印象是Java保留了一个实习(正确的词?)字符串池,并且在使用文字进行字符串连接之类的操作时,它不是创建新对象,而是将它们从该池中拉出。有没有人使用过这个论点,或者可以解释为什么需要它?编辑:我尝试运行基准测试,看看这个参数是否有任何影响,并且无法让SunJVM识别它。这是与:javaversion"1.6.0_11"Java(TM)SERuntimeEnvironm

java - JVM-XX :+StringCache argument?

我最近阅读了有关JRE6[JavaVMOptions中可用的所有JVM参数的信息。]并看到了这个:-XX:+StringCache:Enablescachingofcommonlyallocatedstrings.现在我的印象是Java保留了一个实习(正确的词?)字符串池,并且在使用文字进行字符串连接之类的操作时,它不是创建新对象,而是将它们从该池中拉出。有没有人使用过这个论点,或者可以解释为什么需要它?编辑:我尝试运行基准测试,看看这个参数是否有任何影响,并且无法让SunJVM识别它。这是与:javaversion"1.6.0_11"Java(TM)SERuntimeEnvironm

java - 性能说明: code runs slower after warm up

下面的代码运行完全相同的计算3次(它做的不多:基本上是从1到100m的所有数字相加)。前两个block的运行速度比第三个快大约10倍。我已经运行了这个测试程序10多次,结果显示的差异很小。如果有的话,我希望第三个block运行得更快(JIT编译),但典型的输出是:3597453736368455296471550有人可以解释发生了什么吗?(为了清楚起见,我不想在这里解决任何问题,只是想更好地了解发生了什么)注意:程序期间不运行GC(用-XX:+PrintGC监控)使用OracleJDK版本1.6.0_30、1.7.0_02和1.7.0_05测试还使用以下参数进行了测试:-XX:+Pri

java - 性能说明: code runs slower after warm up

下面的代码运行完全相同的计算3次(它做的不多:基本上是从1到100m的所有数字相加)。前两个block的运行速度比第三个快大约10倍。我已经运行了这个测试程序10多次,结果显示的差异很小。如果有的话,我希望第三个block运行得更快(JIT编译),但典型的输出是:3597453736368455296471550有人可以解释发生了什么吗?(为了清楚起见,我不想在这里解决任何问题,只是想更好地了解发生了什么)注意:程序期间不运行GC(用-XX:+PrintGC监控)使用OracleJDK版本1.6.0_30、1.7.0_02和1.7.0_05测试还使用以下参数进行了测试:-XX:+Pri

java - JVM 进程与 JVM 堆内存使用情况

我已通读ProcessMemoryVsHeap--JVM我也有同样的问题。jvm进程的内存使用量一直在增加,并且从不缩小。我通过在linux服务器上做一个顶部检查。应用程序正在将作业调度到集群(使用Quartz+SunJavaDRMAAAPI)java堆空间在应用程序生命周期内保持在限制范围内,但jvm进程显示内存使用量稳步攀升,并且从未下降。这是内存泄漏吗?如果是这样,为什么堆空间在限制范围内。谁能解释一下。更新:当我通过jconsole跟踪时,我有-Xmx1600m-Xms1600m我可以看到堆空间很好地在这个限制内450m但顶部命令显示进程使用超过900m。

java - JVM 进程与 JVM 堆内存使用情况

我已通读ProcessMemoryVsHeap--JVM我也有同样的问题。jvm进程的内存使用量一直在增加,并且从不缩小。我通过在linux服务器上做一个顶部检查。应用程序正在将作业调度到集群(使用Quartz+SunJavaDRMAAAPI)java堆空间在应用程序生命周期内保持在限制范围内,但jvm进程显示内存使用量稳步攀升,并且从未下降。这是内存泄漏吗?如果是这样,为什么堆空间在限制范围内。谁能解释一下。更新:当我通过jconsole跟踪时,我有-Xmx1600m-Xms1600m我可以看到堆空间很好地在这个限制内450m但顶部命令显示进程使用超过900m。

java - 为什么switch on String会编译成两个switch

我读过JVMspecification关于编译开关,并对如何编译String上的switch语句产生了兴趣。这是我检查的测试方法(JDK1.7.0_40):staticinttest(Stringi){switch(i){case"a":return-100;case"45b":return1;case"c":return2;default:return-1;}}我希望这个方法被编译成简单的lookupswitchonhashCode的字符串,但是突然staticinttest(java.lang.String);Code:0:aload_01:astore_12:iconst_m13

java - 为什么switch on String会编译成两个switch

我读过JVMspecification关于编译开关,并对如何编译String上的switch语句产生了兴趣。这是我检查的测试方法(JDK1.7.0_40):staticinttest(Stringi){switch(i){case"a":return-100;case"45b":return1;case"c":return2;default:return-1;}}我希望这个方法被编译成简单的lookupswitchonhashCode的字符串,但是突然staticinttest(java.lang.String);Code:0:aload_01:astore_12:iconst_m13

java - 在引导类路径中复制 jar 文件不起作用

A有一个Java代码为:publicclassHello{publicvoidprint(){System.out.println("Hi");}}我编译它并创建了一个Hello.class。我将它添加到一个Jar文件hello.jar中:$jar-cvfhello.jarHello.class我又写了一个程序:classTest1{publicstaticvoidmain(String[]args){newHello().print();System.out.println(Hello.class.getClassLoader());}}并从当前目录中删除了Hello.class。然