面试积累(java的内存分析)
关于java中的内存分析:
1 首先,java中的内存总体分为了四个部分,分别为stack segment,heap segment,code segment,data segment。即 栈区,堆区,代码区,数据区。
我们程序中用关键字new出来的东西都是存放在heap segment;
程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理);
程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域;
static静态变量,需要放在内存中的data segment中;
2 这里介绍一下String的一些理解,String创建对象有两种方式:
分别为String s1=new String("java")和String s2="java";
前一种方式创建对象时会先在堆中创建一个java的,再让引用变量s1指向堆中的那个java,然后还要判断字符串常量池中是否存在java,如果存在就不会再在字符串常量池中创建了,如果不存在就会再在字符串常量池中创建一个java的对象;
后一种方式是先判断字符串常量池中是否存在java,如果存在的话就会直接让引用变量s2指向字符串常量池中已经创建好的那个java,如果不存在就会再在字符串常量池中创建一个
java,然后再让s2指向创建好的这个java。
转载于:https://www.cnblogs.com/Leonar-do/p/5204659.html
面试积累(java的内存分析)相关推荐
- Java程序内存分析
2019独角兽企业重金招聘Python工程师标准>>> Java程序内存分析:使用mat工具分析内存占用 http://my.oschina.net/biezhi/blog/2862 ...
- Java 堆内存分析
Java 堆内存工具jmap 打印当前 Java 堆内存信息 jmap -histo[:live] <pid> # 打印当前进程中类实例信息 导出Java 堆内存到文件 jmap -dum ...
- Java编程内存分析简要
Java编程内存分析简要 需求1:计算五名学生,一门课程的平均分. 分析数据存储: 数组存储数据(1) 数组存储数据(2) 数组存储数据(3) 关于需求1使用面向对象程序设计思想的思考. 需求2:计算 ...
- java 堆内存分析_JVM内存堆布局图解分析
JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢 ...
- java怎么看内存值_【java】内存分析
在J2SE中,通过进行内存分析,可以让我们更好的理解我们的程序在内存中是怎么被分配内存的.也能让我们更好的理解我们的代码是怎么运行的. 对于我自己来说分析内存也是一件很有趣的事情.所以下面通过一个例子 ...
- Java JVM内存分析
2019独角兽企业重金招聘Python工程师标准>>> JVM常见参数及溢出分析工具和方法 JDK1.6.45常用基本参数 -server 服务模式启动 -verbose:gc 开 ...
- Java程序内存分析:使用mat工具分析内存占用
1. 用jmap生成堆信息 2. 将堆信息导入到mat中分析 3. 生成分析报告 Histogram Dominator Tree Top consumers Leak Suspects MAT 不是 ...
- java项目内存分析jmap命令+MAT工具
一.分析背景 在服务器上运行java项目服务时,由于服务所实现的功能导致每个项目在消耗服务器系统内存上有所差异.如果在项目中某个功能模块中作了不良好的操作导致占用的资源未能及时释放就会导致内存泄露,服 ...
- java面向对象内存分析
Java虚拟机的内存可以分为三个区域:栈stack.堆heap.方法区method area 栈的特点如下: 1. 栈描述的是方法执行的内存模型.每个方法被调用都会创建一个栈帧(存储局部变量.操作数. ...
最新文章
- 使用按钮控制HTML5背景音乐开关
- SVN的Windows和Linux客户端操作详解
- MapString, Object map 集合转 json数组, json数组转list ,按条输出到es
- 130506datafile和tablespace offline区别
- vector, list, map在遍历时删除符合条件的元素
- 【51Nod-1100】 斜率最大(贪心)☆双排序
- netapp脚本保存日志_Shell脚本实战:日志关键字监控+自动告警
- linux文件末尾 m,Linux7-删除nginx配置文件末尾的^M字符
- mysql 压测结果_用mysqlslap压测mysql
- html5中drag//drop拖曳效果的用法
- python界面设计实例qt_Python GUI教程(六):使用Qt设计师进行窗口布局
- python摄氏温度换算_python华氏温度转为摄氏温度
- 第十章:Archiving
- 边角地“变废为宝” 重庆首批社区体育文化公园交付使用
- python pandas读取excel时动态确定标题行所在行数
- 从DS1302电路设计总结的晶振电路设计规范
- 从某一点出发沿任意一方向旋转矩阵计算思考与实现
- Perl脚本执行方法小结
- 数据流压缩原理实现(huffman编码,LZ77压缩算法)
- 价值上万元金色旋风2010建站培训课程整理,免费下载
热门文章
- 三种人工智能软件工具的应用场景和特点
- 盛邦安全创始人权晓文入选IDC中国CSO名人堂十大人物
- iPhone“点击支付”新功能上热搜:比支付宝还方便?
- python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO
- 量化择时:基于经验模态分解的希尔伯特-黄变换(二)算法
- vb6反编译详解_[原创]VB6反编译详解(一)
- python torch exp_PyTorch官方中文文档:torch
- spring中事务提交后再发MQ消息
- div增加鼠标点透,css设置点击穿透
- 什么是PWM信号,如何实现PWM信号输出?