文档章节

java之内存分布

宋哥陈
 宋哥陈
发布于 2014/12/10 20:27
字数 288
阅读 6
收藏 0

在java中,内存分为三个部分栈区,代码区(数据区) 堆区。

1.在一个程序中,比如一个类被编译后,就是放在代码区里的,放在代码去里的还有静态变量,静态方法。

2.当程序创建一个基本数据类型的变量的时候,直接把变量存放在栈区,

3.当程序new一个对象的时候。程序在栈区创建了一个变量的引用。在堆区开辟了一块内存。用这个引用指向这块内存。

4.区别

String a = "abc"和String b = new String("abc")的区别

第一种,是直接在栈区存放变量。第二种是,在栈区创建一个变量,然后在堆区的字符串池创建一个变量。在堆区开盘一个内存。用栈区的引用直线字符串池的引用,字符串池的引用指向内存。当在来一个String c = new String(“abc”)时,会先去字符串池里查找,如果有的话会直接指向这个引用。而不开辟新的内存

© 著作权归作者所有

共有 人打赏支持
宋哥陈
粉丝 2
博文 48
码字总数 23062
作品 0
福州
私信 提问
容器中 Java 应用程序的内存和 CPU 如何分配?看这一篇就够了!

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五,与您不见不散! 随着2018年的结束,我们将回顾排名前五的最受读者欢迎的文章。今天分享的第一篇文章,将帮助那些在容器中运行...

docker公司
01/04
0
0
加强Docker容器与Java 10集成

很多运行在Java虚拟机(JVM)中的应用,包括数据服务如Apache Spark和Kafka以及传统企业应用,都运行在容器中。最近,运行在容器里的JVM出现了由于内存和CPU资源限制和使用率导致性能损失问题...

java高级架构牛人
2018/06/04
0
0
JVM问题定位的瑞士军刀——JCMD

是jdk自带的一个神器,能够很方便的对java程序进行profiling。jcmd其实可以替代很多常用的工具,比如jstak,jmap。接下来让我们了解下什么是jcmd,jcmd能够帮助我们定位什么问题?工作中我们...

jianyuan
2018/08/23
0
0
Java常见问题分析(内存溢出、内存泄露、线程阻塞等)

Java垃圾回收机制(GC) 1.1 GC机制作用 1.2 堆内存3代分布(年轻代、老年代、持久代) 1.3 GC分类 1.4 GC过程 Java应用内存问题分析 2.1 Java内存划分 2.2 Java常见内存问题 2.3 ML(内存泄...

Java高级架构
2018/09/03
0
0
Hadoop2安装——单机模式

Hadoop有三种模式 单机模式、伪分布模式和完全分布模式 这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。 Hadoop 网址http:...

tngou
2012/12/01
0
12

没有更多内容

加载失败,请刷新页面

加载更多

jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
21分钟前
2
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
33分钟前
1
0
搜索引擎(Elasticsearch搜索详解)

学完本课题,你应达成如下目标: 掌握ES搜索API的规则、用法。 掌握各种查询用法 搜索API 搜索API 端点地址 GET /twitter/_search?q=user:kimchy GET /twitter/tweet,user/_search?q=user:...

这很耳东先生
56分钟前
7
0
浅谈如何减少GC的次数

GC会stop the world。会暂停程序的执行,带来延迟的代价。所以在开发中,我们不希望GC的次数过多。 本文将讨论如何在开发中改善各种细节,从而减少GC的次数。 (1)对象不用时最好显式置为 Nu...

浮躁的码农
58分钟前
1
0
jpa 自定义返回对象

任何ORM框架都少不了开放自定义sql的问题。jpa自然也不例外,很多场景需要写复杂sql的。 首先定义一个方法签名,然后打上@Query注解。像下面这样,需要注意nativeQuery,这个表示query中的字...

朝如青丝暮成雪
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部