当前位置: 首页 > web >正文

cpper 转 java

快速上手 java 特性

在这里插入图片描述

文章目录

      • java 语言特点
      • JVM
          • 工作过程
          • 组成

java 语言特点

Java 程序编译成字节码,然后由 Java 虚拟机(JVM)执行

不同平台适配相同的 JVM ,从而使得 Java 程序具备跨平台性 —— 一次编写,到处运行 Write Once, Run Anywhere, WORA

Java 没有指针、多个继承

Java 是纯面向对象语言,几乎所有的内容都是对象(除了基本数据类型)。没有全局函数。

Java 异常处理机制非常健全,所有的异常(checked exceptions)都必须显式地处理或声明,避免了错误的遗漏。

JVM

Java Virtual Machine
Java 虚拟机

工作过程
  1. Java 源代码(.java 文件)首先被 Java 编译器(javac)编译成字节码文件(.class 文件)。

  2. 字节码文件通过 类加载器(Class Loader) 加载到 JVM 中。
    类加载器负责查找、加载并验证字节码文件,然后将其传递给 JVM 执行。

  3. JVM 会将加载的字节码转换为特定平台的机器代码,然后执行。
    JVM 可以通过解释执行(逐行转换)或即时编译(JIT)来执行字节码。

  4. JVM 在执行 Java 程序时,会在内存中创建不同的运行时数据区来存储程序的各类数据。

组成
  • 类加载器 Class Loader
    类加载器的任务是从文件系统、网络或其他来源加载 .class 文件到内存,并将字节码转化为 JVM 可以操作的数据结构。
  • 运行时数据区
    • 方法区(Method Area)
      存储类信息、常量池、静态变量、即时编译后的代码等数据
    • 程序计数器,
    • 本地方法栈(调用非java方法)
  • 执行引擎 Execution Engine
    负责将字节码转换为机器代码并执行
    • 解释器(Interpreter)
      解释器逐条解释字节码,并执行每一条指令。(慢)
    • 即时编译器(JIT Compiler)
      即时编译器会把热点代码(即频繁调用的代码)编译成机器码,以提升执行效率。JIT 编译通常发生在程序运行时,它可以显著提高程序的性能,尤其是在长时间运行的应用中。
  • 垃圾回收器 GC Garbage Collector
    GC 会检查堆内存中的对象,并确定哪些对象不再被引用,随后会释放这些对象占用的内存。
    • 标记-清除(Mark-Sweep):标记所有活跃的对象,然后清除不活跃的对象。
    • 复制算法(Copying):将存活的对象从一部分内存区域复制到另一部分内存,剩余的内存区域被清空。
    • 分代收集(Generational Collection):Java 中的垃圾回收采用分代收集策略,根据对象的生命周期将堆内存划分为不同的区域(年轻代、老年代等),每个区域使用不同的垃圾回收算法。
http://www.xdnf.cn/news/3588.html

相关文章:

  • 现代健康养生全攻略
  • 4.2 math模块
  • 镜像和容器的深度介绍和关系
  • kaggle人工智能竞赛:通过声纹识别生物种类
  • DiT:文档图像Transformer 的自监督预训练
  • 数据结构之平衡二叉树
  • Linux 常用命令合集
  • 文献阅读篇#7:5月一区好文阅读,BFA-YOLO,用于建筑信息建模!(下)
  • 同构字符串(简单)
  • LeetCode 热题 100:普通数组
  • 在 Windows 中安装 Pynini 的记录
  • java 进阶 1.0
  • 阿里云服务器防御是怎么做出来的?服务器攻击方式有几种?
  • PMP-第九章 项目资源管理(二)
  • 深度学习与 PyTorch 基础
  • 【AI论文】WebThinker:赋予大型推理模型深度研究能力
  • 数字智慧方案5860丨智慧机场整体解决方案(41页PPT)(文末有下载方式)
  • 《C#数据结构与算法》—201线性表
  • n8n 工作流画布上下左右移动的操作方法
  • AimRT从入门到精通 - 02执行器Executor
  • 【2025年五一数学建模竞赛】A题 完整论文 模型建立与求解
  • kubernetes中离线业务编排详解JobCronJob之Job 应用
  • 泰迪杯特等奖案例学习资料:基于时空图卷积网络的物流车辆路径动态优化系统
  • 创意效率双提升,AIGC让增长更轻盈
  • LeetCode算法题 (移除链表元素)Day15!!!C/C++
  • 基于STM32的带恒温系统智能外卖柜设计
  • Linux——进程终止/等待/替换
  • LWIP带freeRTOS系统移植笔记
  • Linux 常用命令 - tar【归档与压缩】
  • 初识日志技术