`
java-mans
  • 浏览: 11344248 次
文章分类
社区版块
存档分类
最新评论

java基础 关于内存地址的总结

 
阅读更多
---------------------- android培训java培训、期待与您交流! ----------------------

Java内存分配的结构大致分为以下几种:
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.
2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
3. 堆:存放所有new出来的对象。
4. 静态域:存放静态成员(static定义的)
5. 常量池:存放字符串常量和基本类型常量(public static final)。
6. 非RAM存储:硬盘等永久存储空间
我们主要需要了解的是栈,堆和常量池。
对于栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。堆中的对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定,具有很大的灵活性。
对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才能确定的就存储在堆中。对于equals相等的字符串,在常量池中永远只有一份,在堆中有多份。
对于基础类型的变量和常量:变量和引用存储在栈中,常量存储在常量池中。
对于成员变量和局部变量:成员变量就是方法外部,类的内部定义的变量;局部变量就是方法或语句块内部定义的变量。局部变量必须初始化。形式参数是局部变量,局部变量的数据存在于栈内存中。栈内存中的局部变量随着方法的消失而消失。成员变量存储在堆中的对象里面,由垃圾回收器负责回收。

---------------------- android培训java培训、期待与您交流! ----------------------

分享到:
评论

相关推荐

    corejava基础重要知识点总结

    会被gc回收掉 -》 零引用内存回收 属性:对象有什么 方法:对象会什么 5: 动态更新 对于Sun公司官方提供的一些核心方法 值保留一个指向的关系 当若干年后核心类库升级了 我们的程序还是可以正常执行 这是挤兑...

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-030-Java语言概述-重难点总结.avi 北京动力节点-Java编程零基础教程-031-Java基本语法-注释-单行注释与多行注释.avi 北京动力节点-Java编程零基础教程-032-Java基本语法-注释-...

    java重要知识点总结

    java的垃圾回收将在程序运行过程中自动进行,无需程序员负责回收无用内存。 3.java环境变量配置: 在我的电脑>属性>高级>环境变量里的 path 中加入C:\Program Files\Java\jdk1.6.0\bin的路径(注:放在所有路径的最...

    java基础知识总结.docx

    对java一些常用基础的总结,java基本知识,数组,java内存分配,方法总结,面向对象,常用API,常用集合

    Java基础知识总结

    这个文档是对java基础知识中的重点做出的总结,推荐大家去看!

    java基础心得总结.rar

    描述java基础容易忽略的问题,如下面几个知识点: int a = 1;1会存放在栈里 String s1 = "thanks";thanks会存放在data segment里 String s2 = new String("thanks");thanks会存放在data segment里 String a ="th...

    JAVA基础课程讲义

    第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名...

    java基础知识点总结思维导图

    包含java基础:数据类型,运算符,循环控制语句、方法、内存、面向对象、String、集合、Maven项目、Properties、testng等

    深入理解java内存模型

    Java内存模型的抽象 重排序 处理器重排序与内存屏障指令 happens-before 重排序 数据依赖性 as-if-serial 语义 程序顺序规则 重排序对多线程的影响 顺序一致性 数据竞争与顺序一致性保证 顺序一致性内存模型 同步...

    深入理解Java内存模型.程晓明(带书签文字版).pdf

    Java 内存模型的抽象 4 重排序 6 处理器重排序与内存屏障指令 7 happens-before 10 重排序 13 数据依赖性 13 as-if-serial 语义 13 程序顺序规则 15 重排序对多线程的影响 15 顺序一致性 19 数据竞争与顺序...

    深入理解java内存模型.pdf

    深入理解JAVA内存模型.pdf (高清版) 1.基础 2.重排序 3.顺序一致性 4.voltile 5.锁 6.FInal 7.总结。。。等等

    Java后端面试问题整理.docx

    • Java基础 • 熟练的使用Java语言进行面向对象程序设计,熟悉Java语言特性 • 熟悉常用排序,堆栈,树等数据结构和算法 • 熟悉常用集合数据结构(数组、Hashmap、ConcurrentHashMap、HashTable、ArrayList、Vetor...

    Java线程安全问题_动力节点Java学院整理

    不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。...JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员,要清楚在jvm内存模型的基础上,如果解决多线程的可见性和有序性。

    深入java虚拟机

    1. JVM调优 1.1 JVM调优总结(一)-一些概念 1.2 JVM调优总结(二)-一些概念 1.3 JVM调优总结(三)-基本...4.1 JVM内存管理:深入Java内存区域与OOM 4.2 JVM内存管理:深入垃圾收集器与内存分配策略 4.3 深入理解JVM

    Java面试知识总结

    Java面试知识总结 ,java基础知识,java的常见集合,高并发编程(JUC包),JVM的内存管理,java8 的知识点,网络协议相关知识,数据库相关,MVC框架相关知识,大数据相关知识,Linux的常用命令。

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    java基础总结大全.txt Java开发与技术挑战——关于技术的技术思考.docx Java框架研发思考.docx Java程序员们最常犯的10个错误.docx java程序员的就业指导(重点).docx Java程序员面试宝典 .pdf java笔试题大集合及...

    Java 排序算法知识点总结.zip

    标准库丰富:Java拥有庞大的类库,如Java SE(Java Standard Edition)包含基础API,用于开发通用应用程序;Java EE(Java Enterprise Edition)提供企业级服务,如Web服务、EJB等;而Java ME(Java Micro Edition...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    java基础总结大全.txt Java开发与技术挑战——关于技术的技术思考.docx Java框架研发思考.docx Java程序员们最常犯的10个错误.docx java程序员的就业指导(重点).docx Java程序员面试宝典 .pdf java笔试题大集合及...

    一份超级详细的Java面试题【大厂面试真题+Java学习指南+工作总结】

    内存泄漏问题的分析和解决方案 程序员必备基础:加签验签 记一次接口性能优化实践总结:优化接口性能的八个建议 程序员必备基础:如何安全传输存储用户密码? 一次代码优化实践,用了模板方法+策略+工厂方法模式 ...

    java面试笔试题库java学习笔记开发教程互联网公司面试资料大全合集.zip

    java基础总结大全.txt Java开发与技术挑战——关于技术的技术思考.docx Java框架研发思考.docx Java程序员们最常犯的10个错误.docx java程序员的就业指导(重点).docx Java程序员面试宝典 .pdf java笔试题大集合及...

Global site tag (gtag.js) - Google Analytics