首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/726779

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

【Java核心技术卷】深入理解Java的内部类

通过图示进行分析:该图展示了Java内部类的编译解释过程. 你会看到整个过程很繁琐. 因为历史原因, Java语言规范 和字节码语言规范有不重叠的部分, 最初的时候,它们是重叠的. 但是后来随着Java的发展,有新的东西需要加入,比如说泛型,但是字节码语言规范不能够轻易变更,因为这个涉及到兼容问题. 能够动的只有编译器, 通过编译器把Java源程序编译成满足字节码语言规范的字节码文件进行执行.今天的内部类 和泛型一样,也是后来加入的. 关于内部类的实现,其实编译器在后面做了很多很多的东西, 虽然内部类有被Lambda表达式取代的趋势(Lambda表达式有自己的解释器),但是还是需要五深入理解的. 直接介绍凝练点:1.Java源程序要遵循Java语言规范,Java编译器按照Java语言规范来编译Java源程序。2.字节码程序要遵循字节码语言规范,JVM的Java解释器/JIT编译器按照字节码语言规范来解释/编译运行字节码程序。3.Java语言与字节码语言是两种不同的语言。它们的语言规范有相同处,也存在不同处例如: 相同处:均有访问控制符。一个类内部的私有成员只能被该类的其它成员所访问,其...

【JVM】探究数组的本质

之前写过一篇深入理解数组的博文【Java核心技术卷】深入理解Java数组, 这篇文章主要从理论的角度, 探讨了Java的数组。 这篇文章主要从实战的角度去探究数组的本质。 在正文开始之前,我们有必要先关注一下类的加载机制: 在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的 这里的类型指的是我们定义的class interface,枚举等等,这里不涉及到对象的概念,是一种runtime的阶段。这种加载机制提供了更大的灵活性,增加了更多的可能性。 简单地说类型的加载 最常见的就是把字节码文件从磁盘中加载到内存,连接就是将类与类之间的关系确定好,并且对字节码的一些处理,校验等 也就是在这一阶段完成了初始化 就是对类型中的静态字段赋值等等 具体流程如下: 类的加载、连接与初始化 加载:查找并加载类(class文件)的二进制数据 连接·-验证:确保被加载的类的正确性(class文件的格式等) ·-准备:为类的静态变量分配内存,并将其初始化为默认值(准备阶段 还没有类的概念)·-解析:把类中的符号引用转换为直接引用 初始化:为类的静态变量赋予正确的初始值 用图示表述为 Jav...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。