JVM的内存结构: 线程共享:堆(存放创建的各种对象),方法区(存放类信息,静态变量,常量池) 线程私有:栈(每个线程都有自己的栈空间,存放每个方法的局部变量),程序计数器(记录当前字节码指令的位置,执行到拿哪一条字节码指令),本地方法栈(跟栈类似,不同的是执行的native方法) JVM什么时候会 ...
分类:
其他好文 时间:
2019-10-05 20:31:35
阅读次数:
122
概述 https://www.toutiao.com/i6731345429574713868/ java发展历史上出现过很多垃圾回收器,各有各的适应场景,不仅仅是开发,作为运维也需要对这方面有一定的掌握,今天简单介绍一下java的内存布局以及各种垃圾回收器的原理。 JVM内存布局 JVM从概念上大 ...
分类:
其他好文 时间:
2019-10-05 10:45:30
阅读次数:
110
String s2 = new String("hello") 创建三个对象 若常量池中没有hello 创建一个 hello 对象 再在堆中创建一个new String 对象 还有 一个栈中的 数据类型为String s2的变量 s2所保存的地址是堆中创建对象地址 String s1="hello" ...
分类:
其他好文 时间:
2019-10-02 00:52:36
阅读次数:
157
在基础数据类型中使用==与equals都是比较是否为同一个对象 变量中保存的是什么? 比如 String s1= "hello" String s2 = "hello",s1 和 s2都是保存字符串“hello”在常量池中的 地址 ,s1与s2的值是同一个地址。 比如 String s1=new S ...
分类:
其他好文 时间:
2019-10-01 20:30:49
阅读次数:
94
阶段1事情的起因是同事写了这样一段代码。123@synchronized(@"test synchronized"){ NSLog(@"do something");}于是我指出这样应该是锁不住的,因为 synchronized 锁的是对象,而每次创建的字符串都是新对象,所以锁不住。同事跟我说,“n... ...
分类:
其他好文 时间:
2019-09-28 10:53:16
阅读次数:
130
java虚拟机内存管理图如下图所示: 1.线程共享区,是所有的线程所共用的,线程共享区有一下几个组成: 1.方法区: 1.运行时常量池,已经被虚拟机加载的类信息(1.类的版本信息,2.字段,3.方法,4.接口等),常量,静态变量,即时编译器编译后的代码等数据。 2.垃圾回收器也会光顾这个区域,例如常 ...
分类:
其他好文 时间:
2019-09-25 15:58:44
阅读次数:
99
一、String类 1、须知 本质:字符串的本质是一个字符的数组。 String s3 = "abc" 和 String s4 = new String("abc")的区别; String s3 = "abc": 以字符数组的形式存在堆中的常量池中,在常量池分配地址。 String s4 = new ...
分类:
编程语言 时间:
2019-09-24 11:58:38
阅读次数:
62
基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-214748 ...
分类:
编程语言 时间:
2019-09-21 12:54:03
阅读次数:
78
好程序员Java学习路线分享JVM类加载机制,JVM相关概念jdk<br>jdk(JavaDevelopmentKit)Java开发包,是Java开发人员用于编译和调试程序的一套程序的集合。jre<br>jre(JavaRuntimeEvironment)Java运行时环境,是运行Java程序的平台,所有的Java程序必须在这个平台中才能执行。jvm<br>jv
分类:
编程语言 时间:
2019-09-19 12:17:23
阅读次数:
109
Java中的常量池 字符串示例 整型常量池、浮点型常量池等 java Byte,Short,Integer,Long,Character,Boolean都实现了常量池技术 数值类型的常量池不可以手动添加常量,程序启动时常量池中的常量就已经确定了, 比如整型常量池中的常量范围: 128~127, By ...
分类:
其他好文 时间:
2019-09-14 18:35:45
阅读次数:
92