`
wangleide414
  • 浏览: 606928 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JAVA 内部工作原理 1(存储)

 
阅读更多

1 JAVA中一切都视为对象,但操作的标识符实际上是对象的一个“引用”。如:String s; s是一个引用,并不是对象,它没有和    任何事物相关联。

 

2 存储到什么地方?

 

有5个不同的地方可以存储数据:

 

(1)寄存器,最快的存储区(在处理器内部)但是数量有限,所以寄存器根据需求进行分配。

 

(2)堆栈,位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存,若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,JAVA系统必须知道存储在堆栈内所有项得确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以 对象引用存储于堆栈中,但是JAVA对象并不存储于其中。

 

(3)堆,一种通用的内存池(也位于RAM),用于存放所有的JAVA对象,堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间。因此,在堆里分配存储有很大的灵活性。当需要一个对象时,只需用new写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。当然,为这种灵活性必须付出相应代价:用堆进行存储分配和清理可能比用堆栈进行存储分配需要跟多的时间

 

(4)常量存储。常量值通常直接存放在程序的内部,这样做是安全的,因为他们永远不会被改变,有时,在嵌入式系统中,常量本身会和其他部分分开,所以在这种情况下,可以选择将其存放在ROM中。

 

(5)非RAM存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是:流对象和持久化对象。在流对象中,对象转化成字节流,通常被发送给另一台机器,在“持久化对象中”,对象存放在磁盘上,程序终止时,它们仍可以保持自己的状态。

 

特例:基本类型存放于堆栈中;

 

分享到:
评论

相关推荐

    浏览器内部工作原理

    浏览器是现代互联网交互的核心工具,其内部工作原理对于Web开发者来说至关重要。本篇文章将深入探讨浏览器的各个组件及其功能,以便更好地理解从输入URL到页面显示的整个过程。 首先,浏览器的主要功能是获取并呈现...

    java泛型的内部原理及更深应用

    在“java泛型的内部原理及更深应用”这个主题中,我们将深入探讨以下几个关键知识点: 1. **类型擦除**:Java泛型的主要特点是类型擦除。这意味着在编译完成后,所有的泛型信息都会被擦除,替换为Object或者其他...

    java虚拟机工作原理

    ### Java虚拟机(JVM)工作原理深度解析 Java虚拟机(JVM)是Java语言的核心组件之一,它负责解释和执行Java字节码,提供了一种跨平台的运行环境。掌握JVM的工作原理对于深入理解Java语言特性、优化程序性能、处理内存...

    Annotation工作原理

    Annotation工作原理是Java中的一种机制,提供了一条与程序元素关联任何信息或者任何元数据的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、类、构造方法、方法、成员变量、参数、本地变量的声明...

    java offer来了原理篇.pdf

    数据库是现代软件系统的基石,了解其内部原理和分布式事务处理是成长为高级Java开发者不可或缺的一部分。 第八部分专注于分布式缓存的原理及应用,介绍分布式缓存的介绍、Ehcache和Redis的原理及应用,以及分布式...

    编译原理-LR0语法分析-java

    总之,编译原理中的LR0语法分析是编译器设计的重要组成部分,通过Java实现能够帮助开发者理解语言解析的内部机制。在实际应用中,LR0分析常被作为更复杂的LR(k)或LALR(1)分析的基础,以处理更复杂的语法结构。学习和...

    揭秘Java虚拟机-JVM设计原理与实现

    《揭秘Java虚拟机-JVM设计原理与实现》这本书深入探讨了Java虚拟机(JVM)的工作原理及其在Java编程中的核心地位。Java虚拟机是Java平台的核心组成部分,它负责执行字节码,为开发者提供了跨平台的运行环境。以下是...

    Java规则引擎工作原理及其应用.docx

    规则引擎通常包含一个内部的数据结构来存储和管理这些规则。 3. 事实(数据)获取:应用程序将业务对象(称为“事实”)提供给规则引擎。这些事实可以是数据库记录、用户输入或其他任何与业务相关的数据。 4. 规则...

    Java工作流源码

    Java工作流源码是用于实现工作流自动化的一种编程资源,它可以帮助开发者构建高效、可扩展的企业级业务流程管理系统。在Java领域,工作流通常涉及到BPM(Business Process Management)技术,用于管理和优化组织内的...

    JavaVM运作原理

    本文将深入探讨JVM的基本概念及其内部工作原理,帮助读者更好地理解Java程序如何在JVM上运行。 #### 二、JVM基本结构 JVM主要包括以下几个部分: 1. **类加载器(ClassLoader)**:负责读取Java类文件(.class),将...

    深入Java核心_Java内存分配原理精讲(1)

    标题和描述均聚焦于“深入Java核心_Java内存分配原理精讲”,这表明文章旨在深入探讨Java编程语言中关于内存分配的关键概念和技术细节。本文将根据这一主题,详细阐述Java内存管理的各个方面,包括栈、堆、常量池等...

    深入理解 Java 之 ThreadLocal 工作原理1

    ThreadLocal是Java中用于线程局部变量的一个工具类,它的工作原理主要体现在如何在不同的线程之间隔离变量的副本,确保每个线程拥有自己的独立数据。这个设计模式在多线程编程中尤其有用,因为它避免了传统的同步...

    java集合类原理面试题

    Java集合类是Java编程中非常重要的组成部分,它们提供了一种组织和管理数据的方式。Java集合框架主要由两个...综上所述,Java集合类及其原理是面试中常见的知识点,理解并掌握它们有助于提升编程能力,解决实际问题。

    编译原理 first follow java版

    这些概念在编译器设计领域至关重要,理解并能实际操作它们对于深入学习编译器的工作原理极其有益。 首先,我们来详细探讨一下“first集合”和“follow集合”的概念。 1. **First集合**:对于一个非终结符A,其...

    浅谈JAVA虚拟机JVM及工作原理

    "浅谈JAVA虚拟机JVM及工作原理" Java虚拟机(JVM)是Java语言的 runtime 环境,它提供了一个平台独立的环境,使得Java程序可以跨平台运行。JVM 的主要组件包括虚拟机栈、堆、方法区、程序计数器、本地方法栈等。 1...

    Oracle 培训Java内部资料

    本套“Oracle 培训Java内部资料”专为初学者设计,旨在帮助新接触Java编程的人快速掌握这门强大的编程语言。Java语言以其“一次编写,到处运行”的特性,广泛应用于各种软件开发、Web应用、移动应用以及大数据处理等...

    Java内存分配原理

    Java内存分配原理是Java编程中不可或缺的基础概念,它关乎程序的性能和稳定性。Java内存主要分为五个区域:寄存器、栈、堆、静态域和常量池。这些区域各有其特定的功能和生命周期。 首先,寄存器是硬件层面的概念,...

    一个java实现的分布式文件存储系统,可以实现文件分布存储在不同的服务器中,进行上传、下载、删除

    开发者可以通过阅读源码了解其内部工作原理,甚至根据实际需求进行修改和扩展。 总的来说,"ctjdfs"是一个用Java实现的轻量级分布式文件系统,它解决了大容量存储、负载均衡和高可用性等问题。通过理解其核心功能和...

Global site tag (gtag.js) - Google Analytics