码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 谈谈对于Java平台的理解


    • Java本身是一种面向对象的语言
    • 有两个显著的特性
      • 书写一次,到处运行,能够非常容易地获得跨平台能力
      • 垃圾收集(GC,Garbage Collection),通过垃圾收集器回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。
    • JRE和JDK
      • JRE,Java运行环境,包含了JVM和Java类库,以及一些模块等。
      • JDK,是JRE的一个超集,提供了更多工具,比如编译器、诊断工具等。
    • Java的解释执行。Java的源代码首先通过Javac编译成为字节码(bytecode),在运行时,通过JVM内嵌的解释器将字节码转换为机器码。
    • Java的编译执行。常见的JVM,都提供了JIT(Just-In-Time)编译器,即动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行。
      Java平台的蓝图

    在运行时,JVM会通过类加载器(Class-Loader)加载字节码,解释或者编译执行。JDK8实际是解释和编译混合的一种模式,即所谓的混合模式(-Xmixed)。
    通常运行在server模式的JVM,会进行上万次调用以收集足够的信息进行高效的编译,client模式这个门限是1500次。
    Oracle Hotspot JVM内置了两个不同的JIT compiler,C1对应前面的client模式,适用于对于启动速度敏感的应用,如普通Java桌面应用;C2对应server模式,它的优化是为长时间运行的服务器端应用设计的。默认是采用所谓的分层编译。
    Java虚拟机启动时,可以指定不同的参数对运行模式进行选择。
    比如,指定-Xint,就是告诉JVM只进行解释执行,不对代码进行编译,这种模式抛弃了JIT可能带来的性能优势。因为解释器是逐条读入,逐条解释运行的。
    -Xcomp,是告诉JVM关闭解释器,不要进行解释执行,或者叫做最大优化级别。会导致JVM启动变慢非常多,同时如果不进行profiling,往往不能对JIT编译器进行有效优化。
    AOT(Ahead-of-Time Compilation),新的编译方式,直接将字节码编译成机器码,这样就避免了JIT预热等各方面的开销,比如Oracle JDK9就引入了实验性的AOT特性,并且增加了新的jaotc工具。

    • JVM作为一个强大的平台,本质上合规的字节码都可以运行,比如Clojure、Scala、Groovy、JRuby、Jython等大量JVM语言。
  • 相关阅读:
    在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker
    Proteus仿真--基于51单片机的LED模拟交通灯仿真(仿真文件+程序)
    centos 里面的service自启动app.jar,出现两个java进程,app是同一个端口
    web3时事粥报
    CodeTON Round 3 (Div. 1 + Div. 2, Rated, Prizes!) A~D 题解
    求一份网页设计结课大作业,要求用到html,css,javascript,的知识
    PHP志愿者协会报名系统的设计与实现 毕业设计-附源码201524
    对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?
    信息化和数字化的核心差异
    【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
  • 原文地址:https://blog.csdn.net/qq_43806430/article/details/125541560
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号