- 博客(5)
- 收藏
- 关注
原创 一次关于append方法和“+”对内存资源的影响的总结
昨天晚上测试了以下两组代码,其中一组很快就抛出了OOM(java.lang.OutOfMemoryError)错误,说的是java堆空间不足了,你们猜猜是哪一组代码: //代码一 StringBuilder str = new StringBuilder(); while (true) { str.append("1"); ...
2019-08-03 19:19:41 878
原创 java内存模型的学习笔记
一. 缓存一致性问题cpu在工作过程中需要从内存中获取各种数据,但是由于cpu的运算速度太快了,导致内存的传输速度更不上cpu的运算速度,这样一来,内存就成了cpu实际性能上的一个瓶颈。为了解决这个问题,人们就想出来一个办法:在cpu和内存中加上高速缓存(cache),这种高速缓存在cpu和内存之间充当了一个缓冲区,并且集成在cpu芯片里,现在的cpu一般都有3级缓存,有的比较老的cpu只有2级...
2019-07-22 19:46:48 133
原创 聊聊String的那些事
想必String这个类在每个java程序员入门时都会使其感到困扰一阵子吧,当然我也不例外,那么今天我们就来聊聊String的那些事。1.我们经常用的“+”我们在使用java开发时常会用到String这个类,也常会用“+”来进行字符串的拼接操作:public class StudyString { public static void main(String[] args) { ...
2019-07-17 13:25:34 179
原创 简单说说JVM内存结构
根据JVM内存规范,JVM大致可以分为下图中几个部分:(图片来源网络)上图中灰色的部分就是JVM的运行时数据区了,这个区域可以分为:PC寄存器(程序计数器),java虚拟机栈,java堆和方法区。绿色部分的java堆和方法区为下面分点介绍:PC寄存器(程序计数器):因为JVN可以支持多线程并行,所以每一条线程都会有一个自己的PC寄存器。在任意时刻,一条java线程只会执行一个方法的代码,如...
2019-07-15 21:22:47 309
原创 关于java中创建对象时属性的初始化过程
java是一种面向对象的编程语言,那么了解创建对象时程序会怎么执行就变得尤为重要,下面我们就一起看看在我们使用new关键字创建对象时是怎么对属性初始化的:下面是一个Person类,其中有成员变量age和静态变量namepublic class Person { private int age; //年龄 public static String nam...
2019-07-15 15:02:13 2663 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人