摘要: /** * 如何保证变量s指向的是字符串常量池中的数据呢? * 有两种方式: * 方式一: String s = "shkstart";//字面量定义的方式 * 方式二: 调用intern() * String s = new String("shkstart").intern(); * Strin 阅读全文
posted @ 2020-09-13 23:01 宇枫 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 1.String的基本特性 String的String Pool是一个固定大小的Hashtable,默认值大小是长度是1009.如果放进String Pool的String 非常多,就会造成Hash冲突严重,从而导致链表会很长,而链表很长的直接影响是调用String.intern时性能会大幅下降; 阅读全文
posted @ 2020-09-13 18:32 宇枫 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 参数设置 hotspot jvm 内置了两个jit编译器,分别是client compiler(C1编译器)和server compiler(C2编译器),可通过下列指令显式指定使用哪种即时编译器 -client 指定java虚拟机运行在client模式下,并使用C1编译器; 特点:C1编译器会堆字 阅读全文
posted @ 2020-09-13 16:42 宇枫 阅读(2189) 评论(0) 推荐(2) 编辑
摘要: java程序的执行方式可分为解释执行和jit即时编译执行,默认情况下这两种执行方式是并存的,也可以显式的为java虚拟机指定在运行时到底是完全采用解释器执行还是完全采用即时编译器执行。 参数设置: -Xint 完全使用解释器模式执行程序; -Xcomp 完全采用即时编译器模式执行程序。如果即时编译出 阅读全文
posted @ 2020-09-13 15:27 宇枫 阅读(806) 评论(0) 推荐(0) 编辑
摘要: java.lang.OutOfMemoryError: Java heap space 原因:java堆内存空间不足时的异常 java.lang.OutOfMemoryError: PermGen space 原因:jdk7及前的版本,永久代空间分配不足时的异常 java.lang.OutOfMem 阅读全文
posted @ 2020-09-13 12:51 宇枫 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 概述: 1.直接内存不是虚拟运行时数据区的一部分,也不是《java虚拟机规范》中定义的内存直接区域。 2.直接内存是java堆外的,直接向系统申请的内存区间。 3.来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存。 4.通常,访问直接内存的速度会优于java堆。即读写 阅读全文
posted @ 2020-09-13 12:44 宇枫 阅读(1289) 评论(0) 推荐(0) 编辑