Java概述之从源码到运行

Java体系结构包括以下四个部分:1.Java语言2.Javaclass文件格式(被编译后的java类文件格式)3.JavaAPI4.Java虚拟机JVM它们之间的关系,总结一句话:使用j

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

Java体系结构包括以下四个部分:

1. Java语言

2. Java class文件格式(被编译后的java类文件格式)

3. Java API

4. Java虚拟机JVM

它们之间的关系,总结一句话:使用java语言调用API编写源代码,被编译成java class文件后,在JVM

中运行。运行时,JVM通过调用class文件中实现了Java API的方法来满足程序对Java API的调用。附图:

Java概述之从源码到运行

 

Java虚拟机的主要任务就是使用类装载器(包括启动类装载器和用户自定义类装载器)装在class文件,

并交由执行引擎执行其字节码。

类装载器装载两类class文件,对Java API class文件,只有在执行时使用到才会被装载。执行引擎的实

现:

1. 一次性解释字节码:节省内存,但执行效率慢。

2. 即时编译器(Just-In-Time Compiler):更耗内存,但执行效率较快。字节码第一次执行的时候被编译成本地机器代码,被缓存,后面可重用。

3. 自适应优化器:JVM监视并记录使用频繁的代码段,编译成本地代码,其余继续保留为字节码,有JVM解释。

4. 硬件芯片:用本地方法执行字节码。执行引擎内嵌在芯片中。

 

Java class文件:平台无关、网络移动性。

平台无关性:Java class文件中的字节顺序始终是高位在前。

网络移动性:设计紧凑,可快速网络传送;可在需要时才下载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120771.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 扫清盲点,如何正确的从HttpClient 3.x系统升级到HttpClient 4.x

    扫清盲点,如何正确的从HttpClient 3.x系统升级到HttpClient 4.x如果周期比较长的项目,或者这个项目开发人员换过了好几拨人,很有可能出现一些奇怪的问题,比如一个项目中出现了多种Spring注入bean的方式,不同版本的jar冲突等等爬虫项目有的时候更是过犹不及,拿模拟登陆来说,开发人员的迭代,每个人的风格和技术各不相同,模拟登陆的方式也是五花八门,早在之前看到过一个项目的源码,其中使用HttpClient也是各种风格,虽然官方已经强烈建议使用HttpClie…

    2022年7月22日
  • MYSQL数据库同步工具

    MYSQL数据库同步工具MYSQL数据库同步工具MYSQL数据库同步工具功能说明配图MYSQL数据库同步工具GIT地址:https://gitee.com/michlee/mysql-sync功能目前仅针对Mysql数据库1.表结构同步(支持1对多数据库配置:新表/单表/多表/全表(注:多配置全表同步速度会慢一点))2.视图同步(支持1对多数据库配置)3.函数同步(支持1对多数据库配置)4.数据全量同步(1对1数据库配置,支持多表)5.本地启动http://localhost:8765/

    2022年6月15日
  • linux下system函数错误返回-1 错误原因NO child processes

    linux下system函数错误返回-1 错误原因NO child processes调用system函数执行一个shell命令,返回-1,错误提示nochildprocesses但system可以执行成功原因是调用system之前有放置忽略SIGCHLD的语句signal(SIGCHLD,SIG_IGN);如果SIGCHLD信号行为被设置为SIG_IGN时,waitpid()函数有可能因为找不到子进程而报ECHILD错误。似乎我们找到了问题的解决方案:在调用s…

    2022年6月1日
  • Pycharm 开发环境设置-汇总「建议收藏」

    Pycharm 开发环境设置-汇总「建议收藏」声明:大部分设置来此网络资源,部分来自个人总结。部分资源来自连接如下:1. https://www.cnblogs.com/zhongyuping/p/6417071.html Pycharm验证来此:2018版本,Unbunt16.04环境一 创建文件时自动添加头文件1.1python创建设置找到该路径并添加以下信息File->settings->Ed…

    2022年8月27日
  • 3D相册薄管理软件DOWNLOAD

    3D相册薄管理软件DOWNLOAD

    2021年8月11日
  • Pikachu-XXE「建议收藏」

    Pikachu-XXE「建议收藏」0x00XXE-“xmlexternalentityinjection”既”xml外部实体注入漏洞”。概括一下就是”攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题”也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从…

    2022年5月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号