java 面试知识点
文章平均质量分 58
Java 入门
okmacong
喜欢分享与请教,喜欢交朋友,热爱骑行,篮球,健身等常见的运动。人生的座右铭:时间如流水,我们一定要用最美的微笑去面对东升的旭日,留住属于自己的记忆
展开
-
6、JVM内存栈中的栈帧组成部分
栈帧组成一个方法对应一个栈帧,一个线程栈对应多个栈帧。栈帧由局部变量,操作数栈,动态链接,方法出口组成。局部变量存放a,b,c这些变量及值。操作数栈,程序在运行时。操作数进行操作过程中,临时存放的内存空间。动态链接,执行到方法调用的部分时,将静态的符号引用变成直接引用(地址),根据地址找到方法区的代码。...原创 2021-12-11 22:35:09 · 392 阅读 · 0 评论 -
5、JVM内存运行原理笔记
JVM 内存1、JVM屏蔽了不同操作系统差异,是Java平台无关性实现的基础2、JVM加载class文件,内存分配具体实现。1. 过程描述2. 运行时数据区(内存模型)是由5部分组成(作用看Oracle的官方文档)。2.1、堆2.2、栈(线程)2.3、本地方法栈2.4、方法区(元空间)2.5、程序计数器1、JVM屏蔽了不同操作系统差异,是Java平台无关性实现的基础第一通过java.c,将源文件编译成class文件。JVM将class文件加载到内存中。2、JVM加载class文件,内存分配具原创 2021-12-11 22:19:41 · 237 阅读 · 0 评论 -
4、堆内存解析
堆分为年轻代和老年代,分别占三分之一和三分之二。年轻代分为两个区尹甸园区与survivor区Ava当尹甸园区有很多对象放不下时,Java会的字节码会开启一个垃圾收集线程(minor gc),来收集内存区域的垃圾对象。垃圾收集用可达性分析算法。判断出垃圾和非垃圾,将非垃圾放到Survivor区经历一次minor gc,就会加一代,等到15代,还没有被回收,移动到老年代区域。另外在前面survivor区移动的对象,比如从survivor-1移动survivor-2区,2区放不下,一部分对象直接被移动到老年原创 2021-12-12 11:45:05 · 865 阅读 · 0 评论 -
1、字符串相加和StringBuffer.append()区别
Reference:https://blog.csdn.net/weixin_43730508/article/details/1068628321、字符串相加String1+String2 和Stringbuffer1.append(“yyyy”)虽然打印效果一样,但在内存中表示却不一样String1+String2 存在于不同的两个地址内存Stringbuffer1.append(Stringbuffer2)放再一起2、StringBuffer.append()Stringbuffer原创 2021-12-11 10:36:50 · 405 阅读 · 0 评论 -
3、java堆和栈的区别
java堆和栈1.JVM(虚拟机)内存的划分1.1 栈内存1.2 堆内存1.3 寄存器1.4 方法区1.5 本地方法区1.6 堆和栈的区别和联系1.6.1两者联系1.6.1两者区别2.==与equals()区别2.1 背景介绍:2.2两者区别1.JVM(虚拟机)内存的划分Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要原创 2021-03-29 11:22:38 · 46 阅读 · 0 评论 -
2、java中==与equals()区别
==与equals()区别1.==2.equals()2.1 String类1.====是一个表运算符,==操作的是栈内存中的值是否相等,如:比较两个变量的值是否相等,两个引用变量在栈中的存放的地址是否相同,即是否指向同一个对象。2.equals()equals()是一个方法,只能比较引用类型,重写前比较的是地址值,重写后一般比较对象的属性。equals比较的是堆内存中的值是否相等。(待定)String,Integer,Date等类中,equals(有其自身的实现,不在比较堆内存中 的存放原创 2021-03-29 20:14:01 · 94 阅读 · 0 评论