草庐IT

jvm-serializers

全部标签

java - JVM如何重用interned String子串?

我知道如果你做for(condition){Strings="hithere";}在所有迭代中只创建一个String实例,不像Strings=newString("hithere");将在每次迭代中创建一个新实例.但是,阅读JoshuaBloch的EffectiveJava:第2章第5项(第20页)它指出:Furthermore,itisguaranteedthattheobjectwillbereusedbyanyothercoderunninginthesamevirtualmachinethathappenstocontainthesamestringliteral[JLS,3.

JVM调优参数

JVM调优参数可以分为以下几类:1.堆内存调优参数:-Xms:初始堆大小-Xmx:最大堆大小-Xmn:新生代大小-XX:NewRatio:新生代和老年代的比例-XX:SurvivorRatio:Eden区和Survivor区的比例2.GC调优参数:-XX:+UseSerialGC:使用串行垃圾回收器-XX:+UseParallelGC:使用并行垃圾回收器-XX:+UseConcMarkSweepGC:使用CMS垃圾回收器-XX:+UseG1GC:使用G1垃圾回收器-XX:MaxGCPauseMillis:最大GC停顿时间-XX:+UseAdaptiveSizePolicy:自适应GC策略3.线

java - 将证书导入 Java keystore ,JVM 忽略新证书

我正在尝试让一个在Tomcat6上运行的应用程序通过SSL连接到LDAP服务器。我使用以下方法将服务器证书导入keystore:C:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security>keytool-importcert-trustcacerts-filemycert-aliasca_alias-keystore"c:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security\cacerts"当我在SSL调试打开的情况下启动Tomcat时,根据日志Tomcat正在使用正确的证书文件:trustStoreis

java - 将证书导入 Java keystore ,JVM 忽略新证书

我正在尝试让一个在Tomcat6上运行的应用程序通过SSL连接到LDAP服务器。我使用以下方法将服务器证书导入keystore:C:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security>keytool-importcert-trustcacerts-filemycert-aliasca_alias-keystore"c:\ProgramFiles\Java\jdk1.6.0_32\jre\lib\security\cacerts"当我在SSL调试打开的情况下启动Tomcat时,根据日志Tomcat正在使用正确的证书文件:trustStoreis

java - 鼓励 JVM 进行 GC 而不是增加堆?

(请注意,当我说“JVM”时,我的意思是“热点”,我正在运行最新的Java1.6更新。)示例情况:我的JVM运行时-Xmx设置为1gb。目前,堆分配了500mb,其中450mb被使用。该程序需要在堆上再加载200mb。目前,堆中有300mb的“可收集”垃圾(我们假设它们都在最老的一代中。)在正常操作下,JVM会将堆增加到700mb左右,并在到达时进行垃圾收集。在这种情况下,我希望JVM先gc,然后分配新的东西,这样我们最终的堆大小保持在500mb,使用的堆大小保持在350mb。是否有一个JVM参数组合可以做到这一点? 最佳答案 您可

java - 鼓励 JVM 进行 GC 而不是增加堆?

(请注意,当我说“JVM”时,我的意思是“热点”,我正在运行最新的Java1.6更新。)示例情况:我的JVM运行时-Xmx设置为1gb。目前,堆分配了500mb,其中450mb被使用。该程序需要在堆上再加载200mb。目前,堆中有300mb的“可收集”垃圾(我们假设它们都在最老的一代中。)在正常操作下,JVM会将堆增加到700mb左右,并在到达时进行垃圾收集。在这种情况下,我希望JVM先gc,然后分配新的东西,这样我们最终的堆大小保持在500mb,使用的堆大小保持在350mb。是否有一个JVM参数组合可以做到这一点? 最佳答案 您可

java - JVM 什么时候加载类?

假设我有以下类(class):classCaller{publicvoidcreateSomething(){newSomething();}}将执行此行:staticvoidmain(){Classclazz=Caller.class;}导致JVM加载类Something还是类加载延迟到方法createSomething()被调用? 最佳答案 仅当您需要有关该类的信息时才加载该类。publicclassSomethingCaller{publicstaticSomethingsomething=null;//(1)doesnotc

java - JVM 什么时候加载类?

假设我有以下类(class):classCaller{publicvoidcreateSomething(){newSomething();}}将执行此行:staticvoidmain(){Classclazz=Caller.class;}导致JVM加载类Something还是类加载延迟到方法createSomething()被调用? 最佳答案 仅当您需要有关该类的信息时才加载该类。publicclassSomethingCaller{publicstaticSomethingsomething=null;//(1)doesnotc

java - JVM字节码验证者的职责

有人可以列出字节码validator必须执行以保证程序正确性的主要任务吗?JVM规范中是否定义了一组标准的、最小的职责?我还想知道验证是否跨越其他阶段,例如加载和初始化。 最佳答案 这是在JVMSpecification:Chapter4.10.VerificationofclassFiles中指定的.页面的大部分内容描述了类型安全的各个方面。要检查程序是否是类型安全的,验证程序需要确定每个程序点的操作数堆栈中的操作数类型,并确保它们与相应指令所期望的类型相匹配。它验证的其他内容包括但不限于以下内容:Branchesmustbewi

java - JVM字节码验证者的职责

有人可以列出字节码validator必须执行以保证程序正确性的主要任务吗?JVM规范中是否定义了一组标准的、最小的职责?我还想知道验证是否跨越其他阶段,例如加载和初始化。 最佳答案 这是在JVMSpecification:Chapter4.10.VerificationofclassFiles中指定的.页面的大部分内容描述了类型安全的各个方面。要检查程序是否是类型安全的,验证程序需要确定每个程序点的操作数堆栈中的操作数类型,并确保它们与相应指令所期望的类型相匹配。它验证的其他内容包括但不限于以下内容:Branchesmustbewi