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

广州站扩建做网站是什么

广州站扩建,做网站是什么,做刷机网站赚钱吗,二次元wordpress博客Java虚拟机 JVM与Java体系结构为什么要学习JVMJava与JVM简介Java 语言的核心特性JVM#xff1a;Java 生态的基石JVM的架构模型基于栈的指令集架构#xff08;Stack-Based#xff09;基于寄存器的指令集架构#xff08;Register-Based#xff09;JVM生命周期 总结 JVM与Jav… Java虚拟机 JVM与Java体系结构为什么要学习JVMJava与JVM简介Java 语言的核心特性JVMJava 生态的基石JVM的架构模型基于栈的指令集架构Stack-Based基于寄存器的指令集架构Register-BasedJVM生命周期 总结 JVM与Java体系结构 Java不仅仅是一个简单的编程语言它是由一系列的软件与规范组成的技术体系。而JVM是Java程序的运行核心通过字节码解释执行实现一次编写到处运行特性而Java体系结构由编程语言规范、类库体系及JVM运行时环境共同构成支撑跨平台面向对象开发。可以说JVM是整个Java平台的基石是将Java技术隔绝操作系统与硬件的关键部分。 为什么要学习JVM 功利点说现在找工作的门槛越来越高JVM知识点经常出现在面试题目中要想通过面试我们也需要了解JVM。但是除去面试程序开发中我们也会遇见 定位 OOM内存溢出通过分析堆转储Heap Dump和 GC 日志快速定位内存泄漏的根源。线程死锁利用 JVM 工具如 jstack分析线程状态解决多线程并发问题。性能瓶颈通过 Profiling 工具如 VisualVM、Arthas监控 CPU、内存使用情况找到性能热点。 这些都需要我们具备JVM的基础知识才能在生产中遇到类似问题迎刃而解。掌握了基础知识我们可以更好地做到下面几点 内存管理理解 JVM 的内存结构堆、栈、方法区等能帮助你优化内存分配避免内存泄漏和频繁的垃圾回收GC。垃圾回收机制不同场景需要不同的 GC 算法如 G1、ZGC、Shenandoah学习 JVM 可以合理选择并配置 GC减少程序停顿时间。代码优化通过 JIT 编译器、逃逸分析等机制理解 JVM 如何优化代码执行从而编写更高效的代码 Java与JVM简介 Java 自 1995 年由 Sun Microsystems 发布以来凭借其 跨平台能力、面向对象特性 和 丰富的生态系统迅速成为全球最流行的编程语言之一。而 Java 虚拟机JVM作为 Java 技术的核心引擎通过“一次编写到处运行”Write Once, Run Anywhere的理念彻底改变了软件开发的模式。 下面这张图是Java技术体系从这张图我们可以了解Java与Jvm的关系。应该从这张图我们可以形象地认识到JVM是Java语言的核心基石所以我们要想学习好Java语言一定要了解JVM。 Java 语言的核心特性 跨平台能力 Java 的跨平台性依赖于 JVM 的中间层设计。开发者编写的 .java 文件会被编译为与平台无关的 字节码.class 文件由 JVM 在目标平台上解释或编译执行。 示例同一份 Java 程序可在 Windows、Linux、macOS 上运行无需修改源码。 意义降低多环境适配成本推动企业级应用的快速部署。 面向对象设计OOP Java 是纯粹的面向对象语言其核心思想通过 封装、继承、多态 实现 封装通过 private、protected 关键字隐藏实现细节暴露安全接口。 继承extends 实现代码复用implements 支持多接口扩展。 多态同一方法在不同子类中呈现不同行为如 Animal 类的 sound() 方法被 Dog 和 Cat 重写。 健壮性与安全性 异常处理强制检查异常Checked Exceptions要求开发者显式处理潜在错误如 IOException。 内存管理JVM 自动垃圾回收机制GC减少内存泄漏风险。 安全沙箱通过字节码验证和安全管理器SecurityManager限制恶意代码访问系统资源。 现代语言特性演进 Java 持续吸收现代编程范式的优点 Java 8引入 Lambda 表达式、Stream API支持函数式编程。 Java 11var 关键字简化局部变量声明HTTP Client 支持异步请求。 Java 17密封类sealed class限制继承关系模式匹配增强代码可读性。 JVMJava 生态的基石 JVM 的核心作用 JVM 是 Java 程序运行的虚拟化环境主要职责包括 字节码解释与执行将 .class 文件转换为机器指令。 内存管理分配堆、栈、方法区等内存空间并自动回收垃圾对象。 线程调度管理多线程的创建、同步与资源竞争。 JVM 的运行时数据区 JVM 内存划分为多个核心区域 堆Heap存储对象实例是垃圾回收的主战场。 方法区Metaspace存放类元数据Java 8 后替代永久代。 虚拟机栈存储方法调用的栈帧局部变量、操作数栈。 程序计数器记录当前线程执行的字节码位置。 本地方法栈支持 Native 方法如 C/C 库调用。 类加载机制 JVM 通过 双亲委派模型 加载类 加载从文件、网络等来源读取 .class 文件。 验证确保字节码符合 JVM 规范防止恶意代码注入。 准备为静态变量分配内存并初始化默认值。 解析将符号引用转换为直接引用。 初始化执行静态代码块static{}和赋值操作。 示例自定义类加载器可实现热部署如 Tomcat 为每个 Web 应用单独加载类。 垃圾回收GC机制 JVM 通过 GC 自动回收无用的对象关键算法包括 标记-清除简单但易产生内存碎片。 复制算法将存活对象复制到新空间适用于年轻代。 标记-整理整理内存碎片适用于老年代。 分代收集根据对象生命周期划分年轻代Young Generation和老年代Old Generation。 现代 GC 器G1低延迟、ZGCTB 级堆内存、Shenandoah并发回收。 调优场景高并发服务可通过 -XX:UseG1GC 启用 G1 垃圾回收器减少停顿时间。 JIT 编译器 JVM 通过 即时编译Just-In-Time Compilation 提升性能 解释执行初期逐行解释字节码启动速度快。 热点代码优化频繁执行的代码热点代码被编译为本地机器码。 逃逸分析优化对象分配如栈上分配、锁消除。 JVM的架构模型 Java编译器输入的指令流是一种基于栈的指令集架构另外一种常见的指令集架构则是基于寄存器的指令集架构。计算机指令集架构ISA是硬件与软件交互的核心接口决定了程序如何被编译和执行。基于栈的指令集架构如 JVM 字节码和 基于寄存器的指令集架构如 x86、ARM是两种经典的设计范式它们在指令执行方式、性能特点和应用场景上存在显著差异。 基于栈的指令集架构Stack-Based 核心原理 数据操作依赖栈结构所有计算通过操作数栈Operand Stack完成。指令从栈顶取操作数例如加法指令 iadd 会弹出栈顶两个整数相加后结果压回栈顶。无需显式指定操作数地址指令本身不包含寄存器或内存地址隐含依赖栈顶数据。 典型示例JVM 字节码 java// Java 代码计算 3 5int a 3;int b 5;int c a b;对应的字节码字节码 iconst_3 // 将常量3压入栈顶istore_1 // 弹出栈顶值3存入局部变量表第1槽位aiconst_5 // 将常量5压入栈顶istore_2 // 弹出栈顶值5存入局部变量表第2槽位biload_1 // 加载局部变量a的值3到栈顶iload_2 // 加载局部变量b的值5到栈顶iadd // 弹出栈顶两个值3和5相加后结果8压入栈顶istore_3 // 弹出栈顶值8存入局部变量表第3槽位c优点 指令紧凑无需指定操作数地址指令长度短如 JVM 字节码通常为 1-2 字节。 跨平台友好不依赖物理寄存器数量或布局适合虚拟机实现如 JVM。 代码生成简单编译器无需处理寄存器分配逻辑更简单。 缺点 执行速度较慢频繁的入栈、出栈操作导致内存访问开销大。 指令数量多简单操作可能需要多条指令如加载变量到栈顶再计算。 基于寄存器的指令集架构Register-Based 核心原理 数据操作依赖寄存器指令直接读写寄存器中的操作数。 显式指定操作数地址指令需声明操作数所在的寄存器或内存地址。 结果直接写入寄存器例如加法指令 ADD R1, R2, R3 表示 R1 R2 R3。 2. 典型示例ARM 汇编 // 计算 3 5结果存入寄存器 R0 MOV R1, #3 // 将立即数3存入寄存器R1 MOV R2, #5 // 将立即数5存入寄存器R2 ADD R0, R1, R2 // R0 R1 R2优点 执行效率高减少内存访问次数数据直接在寄存器中操作。 指令数量少单条指令可完成复杂操作如 ADD 直接操作三个寄存器。 硬件优化潜力大与现代 CPU 的多级流水线、乱序执行等特性契合。 缺点 指令长度较长需编码寄存器地址指令占用空间更大。 依赖硬件寄存器数量寄存器数量有限的架构如 x86可能需频繁内存交互。 编译器复杂度高需优化寄存器分配策略如避免寄存器溢出。 JVM生命周期 JVM的生命周期分为三个状态启动、执行和推出 启动 JVM可以通过java命令启动接着通过引导类加载器加载类文件最后找到程序中的main方法接着开始执行Java应用程序执行 JVM的执行表示一个已经启动的JVM开始执行Java程序执行一个Java程序真正执行的是一个JVM的进程。退出 JVM的退出有下面几种情况 Java程序正常结束所有的非守护线程结束Java程序异常操作系统故障用户手动关闭JVM调用Runtime或者System的exit方法 总结 我们本章简单介绍一下Java语言与JVM的结构之后我们会在专栏文章中逐步把我们上面介绍的知识点都覆盖到争取能够做到让大家能够对JVM的知识有一个宏观的认识。
http://www.pierceye.com/news/133909/

相关文章:

  • 申请网站建设经费wordpress做商城网站
  • google下载app西安分类信息seo公司
  • 淘宝是什么语言做的网站手机网站开发+手机模拟器
  • 视频网站开发框架小说类网站功能建设
  • 网站规划与设计案例网站建设方案设计
  • 漯河网站建设费用成都网站建设重庆最加科技
  • 莱芜 网站wordpress 关闭警告
  • 深圳做棋牌网站建设哪家技术好建设一个网站的规划
  • 网站开发流程比较合理网站已经申请了域名 接下来怎么
  • 校园电商平台网站建设网站网址模板
  • 沈阳有资质做网站的公司温州做网站定制
  • wordpress codex网站seo和sem是什么意思
  • 建网站平台哪家好装修设计软件app排行
  • 网站开发文档撰写企业管理培训课程图片
  • 网站开发公司资质wordpress文章管理模板
  • 建筑网站知识大全江苏有哪些网站建设的公司
  • 江汉网站建设用js做网站登录
  • wordpress做购物网站河南省建设工程造价协会网站
  • wex5可以做网站吗爱射影院网站建设中
  • 网站建设多选题百度文库做好中心网站建设工作总结
  • 网站开发都用phpwordpress文章内图片幻灯片
  • 岳阳网站建设企业绿色大气漂亮dedecms茶叶企业网站
  • 网站建设使用虚拟主机的优点与缺点做百科网站
  • 网站被墙是谁做的电影网站模板
  • 合肥建设网官方网站网页设计网站制作公司
  • 外贸网站建设评价网站的营销方案
  • 邯郸专业做wap网站中国设计网址导航
  • 邯郸移动网站建设价格官方网站车联网是谁做
  • 哪个网站可以做高像素动图个人网站排版设计
  • 多少网站域名采用中文做一个电子商务网站在哪里做