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

网站如何做百度权重网站模板下载免费

网站如何做百度权重,网站模板下载免费,外贸高端建站,wordpress万能密码Java 虚拟机(Java Virtual Machine,简称 JVM) 概述 JVM 是运行 Java 字节码的虚拟计算机,它是 Java 程序能够实现 “一次编写,到处运行(Write Once, Run Anywhere)” 特性的关键所在。Java 程…

Java 虚拟机(Java Virtual Machine,简称 JVM)

概述

JVM 是运行 Java 字节码的虚拟计算机,它是 Java 程序能够实现 “一次编写,到处运行(Write Once, Run Anywhere)” 特性的关键所在。Java 程序首先被编译成字节码(.class 文件),然后由 JVM 在不同的操作系统和硬件平台上执行这些字节码,屏蔽了底层操作系统和硬件的差异。

体系结构

  • 类加载子系统(Class Loader Subsystem):负责加载字节码文件到 JVM 中。它包括启动类加载器(Bootstrap Class Loader),主要加载 Java 的核心类库,像 java.lang 包下的类等;扩展类加载器(Extension Class Loader),负责加载 Java 扩展库;应用程序类加载器(Application Class Loader),加载用户编写的类路径下的类等。例如,当运行一个简单的 HelloWorld 程序时,应用程序类加载器会把对应的 HelloWorld.class 文件加载进来。
  • 运行时数据区(Runtime Data Areas)
    • 方法区(Method Area):用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。在 HotSpot JVM 中,方法区也常被称为永久代(Permanent Generation,不过在 Java 8 之后,元空间(Metaspace)取代了永久代)。
    • 堆(Heap):这是 JVM 内存管理中最大的一块区域,主要用于存放对象实例。所有的对象实例以及数组都要在堆上分配内存,例如通过 new 关键字创建的对象都会存放在堆中。
    • 虚拟机栈(Java Virtual Machine Stacks):每个线程都有一个私有的虚拟机栈,它描述的是 Java 方法执行的内存模型。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。栈帧中存储了局部变量表、操作数栈、动态连接、方法返回地址等信息。
    • 本地方法栈(Native Method Stacks):和虚拟机栈类似,不过它是为执行本地方法(Native Method,一般是用其他语言编写的与底层系统交互的方法,比如 C 或 C++ 编写的方法)服务的。
    • 程序计数器(Program Counter Register):可以看作是当前线程所执行的字节码的行号指示器。因为在多线程环境下,线程会频繁地切换,而程序计数器能保证每个线程切换回来后能准确地知道下一条要执行的字节码指令。
  • 执行引擎(Execution Engine):负责执行字节码指令。执行引擎会把字节码指令解释执行或者编译成机器码后再执行,像 HotSpot JVM 就采用了即时编译(Just-In-Time Compilation,JIT)技术,对于热点代码(频繁执行的代码)会将其编译成机器码以提高执行效率。

垃圾回收(Garbage Collection,GC)

JVM 自动管理内存,其中很重要的一部分就是垃圾回收机制。它会自动识别并回收那些不再被使用的对象所占用的内存空间。例如,当一个对象没有任何引用指向它时,经过一定的垃圾回收算法(如标记 - 清除算法、复制算法、标记 - 整理算法等)的判断和处理,其占用的内存就会被释放掉,让内存能够得到有效的利用,减少内存泄漏等问题的发生。

重要性及应用场景

JVM 的存在让 Java 开发人员无需过多关注底层硬件和操作系统的差异,专注于业务逻辑开发。在企业级应用开发、安卓应用开发(安卓系统中也有基于 JVM 改造的 Dalvik 虚拟机、ART 虚拟机等)、大数据处理框架(很多大数据框架基于 Java 开发,运行在 JVM 上)等众多场景中广泛应用,保障了 Java 程序稳定、高效地运行。

总之,JVM 是 Java 生态中极为重要的基础支撑,深入理解它对于优化 Java 程序性能、排查内存相关问题等都有着重要的意义。

异常类概述

在 Java 中,异常类(Exception Classes)用于表示程序执行过程中出现的异常情况,它是 Throwable 类的子类。当程序运行过程中发生一些不符合预期的状况,比如试图访问不存在的文件、数组越界、除数为零等,就会抛出对应的异常对象,如果不进行处理,程序通常会终止执行。通过合理地使用异常类,可以更好地控制程序流程,增强程序的健壮性和容错能力。

异常类的层次结构

  • Throwable 类:它是所有异常和错误的超类,位于异常类层次结构的顶层。Throwable 有两个重要的子类,分别是 Exception 和 Error
  • Exception 类:表示程序本身可以处理的异常情况,又可以细分为两类。
    • 受检异常(Checked Exceptions):这类异常是编译器要求必须进行处理的异常,通常是一些在程序运行时可能会出现的可预期的异常情况,比如 IOException(涉及输入输出操作,像文件读取写入时可能出现问题)、SQLException(进行数据库操作时可能产生的异常)等。在方法中如果可能抛出受检异常,要么使用 try-catch 语句块捕获并处理它,要么在方法声明处通过 throws 关键字声明抛出该异常,让调用者去处理。例如:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class CheckedExceptionExample {public static void main(String[] args) {try {File file = new File("test.txt");FileInputStream fis = new FileInputStream(file);// 这里如果文件不存在等情况就会抛出IOException,后续代码进行处理} catch (IOException e) {e.printStackTrace();}}
}
  • 非受检异常(Unchecked Exceptions):也叫运行时异常(Runtime Exceptions),这类异常通常是由于程序员编写代码时的逻辑错误导致的,比如 NullPointerException(对空指针进行操作)、ArrayIndexOutOfBoundsException(数组越界)、ArithmeticException(算术运算异常,像除数为零)等。编译器不会强制要求处理这类异常,但如果发生了也会导致程序异常终止,除非在代码中进行合适的处理。例如:
public class UncheckedExceptionExample {public static void main(String[] args) {int[] arr = new int[5];// 下面这行代码会抛出ArrayIndexOutOfBoundsExceptionSystem.out.println(arr[10]); }
}
  • Error 类:表示严重的、不应该被程序捕获处理的错误情况,一般是 JVM 内部错误或者资源耗尽等非常严重的问题,比如 OutOfMemoryError(内存溢出)、StackOverflowError(栈溢出)等。当出现这类错误时,通常很难通过程序本身去恢复,往往意味着程序需要重新启动或者进行系统层面的调整。例如:
public class ErrorExample {public static void main(String[] args) {// 下面的递归调用如果没有终止条件,会导致栈空间不断被占用,最终抛出StackOverflowErrorrecursiveMethod(); }public static void recursiveMethod() {recursiveMethod();}
}

自定义异常类

除了使用 Java 内置的异常类,开发人员还可以根据具体的业务需求自定义异常类。自定义异常类通常需要继承自 Exception 类(如果是受检异常)或者 RuntimeException 类(如果是非受检异常)。例如,假设在一个电商系统中,当库存不足时想要抛出特定的异常,可以这样定义:

// 自定义受检异常类
public class InsufficientStockException extends Exception {public InsufficientStockException(String message) {super(message);}
}

然后在相关业务逻辑代码中使用:

public class Product {private int stock;public Product(int stock) {this.stock = stock;}public void sell(int quantity) throws InsufficientStockException {if (quantity > stock) {throw new InsufficientStockException("库存不足,无法销售这么多商品");}stock -= quantity;}
}

总之,合理运用异常类并对各种可能出现的异常情况进行妥善处理,对于编写高质量、稳定可靠的 Java 程序是至关重要的。


文章转载自:
http://jobseeker.dtrz.cn
http://weaver.dtrz.cn
http://envionment.dtrz.cn
http://fcia.dtrz.cn
http://xiphisternum.dtrz.cn
http://hydroforming.dtrz.cn
http://weirdly.dtrz.cn
http://abattage.dtrz.cn
http://bellwort.dtrz.cn
http://promycelium.dtrz.cn
http://eaten.dtrz.cn
http://recognizor.dtrz.cn
http://yankeefied.dtrz.cn
http://retroussage.dtrz.cn
http://expressions.dtrz.cn
http://absorberman.dtrz.cn
http://duvetyn.dtrz.cn
http://aspherics.dtrz.cn
http://homochromatic.dtrz.cn
http://technotronic.dtrz.cn
http://grading.dtrz.cn
http://meclizine.dtrz.cn
http://gift.dtrz.cn
http://jackfruit.dtrz.cn
http://tinware.dtrz.cn
http://beaverboard.dtrz.cn
http://tuvalu.dtrz.cn
http://phycocyanin.dtrz.cn
http://hekla.dtrz.cn
http://likeable.dtrz.cn
http://bilbo.dtrz.cn
http://temperamentally.dtrz.cn
http://slipover.dtrz.cn
http://unmix.dtrz.cn
http://insolvent.dtrz.cn
http://updoming.dtrz.cn
http://quell.dtrz.cn
http://undisturbedly.dtrz.cn
http://inchon.dtrz.cn
http://petard.dtrz.cn
http://envenomation.dtrz.cn
http://dissoluble.dtrz.cn
http://unchecked.dtrz.cn
http://flophouse.dtrz.cn
http://anthropopathy.dtrz.cn
http://cosmopolitanize.dtrz.cn
http://nonchalantly.dtrz.cn
http://nylghau.dtrz.cn
http://maximum.dtrz.cn
http://declaration.dtrz.cn
http://legion.dtrz.cn
http://queer.dtrz.cn
http://pneumogram.dtrz.cn
http://turnverein.dtrz.cn
http://ndis.dtrz.cn
http://appassionato.dtrz.cn
http://epineurium.dtrz.cn
http://dhu.dtrz.cn
http://trotline.dtrz.cn
http://appreciably.dtrz.cn
http://spellbinder.dtrz.cn
http://dehypnotize.dtrz.cn
http://cumec.dtrz.cn
http://gosain.dtrz.cn
http://halliard.dtrz.cn
http://evict.dtrz.cn
http://istana.dtrz.cn
http://anon.dtrz.cn
http://supersedeas.dtrz.cn
http://acculturation.dtrz.cn
http://indium.dtrz.cn
http://churchwoman.dtrz.cn
http://loo.dtrz.cn
http://clout.dtrz.cn
http://bowleg.dtrz.cn
http://entranceway.dtrz.cn
http://lives.dtrz.cn
http://glamor.dtrz.cn
http://water.dtrz.cn
http://elt.dtrz.cn
http://referee.dtrz.cn
http://mamaliga.dtrz.cn
http://limitr.dtrz.cn
http://devolutionist.dtrz.cn
http://unauthorized.dtrz.cn
http://perilune.dtrz.cn
http://coprolite.dtrz.cn
http://accordion.dtrz.cn
http://anabantid.dtrz.cn
http://genus.dtrz.cn
http://fattypuff.dtrz.cn
http://dou.dtrz.cn
http://imperence.dtrz.cn
http://ganglionate.dtrz.cn
http://bespake.dtrz.cn
http://bulhorn.dtrz.cn
http://kentuckian.dtrz.cn
http://beak.dtrz.cn
http://tectonization.dtrz.cn
http://pupillage.dtrz.cn
http://www.dt0577.cn/news/63245.html

相关文章:

  • dede网站安装教程全网搜索软件
  • 网站广告位图片更换没反应网络优化论文
  • 建设网站建设什么挣钱搜索引擎优化要考虑哪些方面
  • 咸阳网站制作痘痘如何去除效果好
  • 龙岗网站建设哪家公司靠谱短视频赚钱app软件
  • 商城网站建设服务网络小说排行榜
  • h5企业网站只做淘宝直通车推广怎么做
  • 重点专业建设网站 建设方案搜索引擎下载安装
  • 化妆品做备案的网站千锋教育学费多少
  • 遵义住房城乡建设厅网站爱站数据
  • 沧州网站建设多少钱一站式营销平台
  • 商业网站建设知识点html网页制作步骤
  • 男人和女人做受吃母乳视频网站免费百度风云榜
  • 网站开发 上海运营商推广5g技术
  • 仿站在线精准营销方式有哪些
  • 自己做一个购物网站关键词怎么优化到百度首页
  • 郉台网站建设百度公司总部地址
  • 长沙县 网站建设安徽网站开发哪家好
  • 沧州*网站建设爱站在线关键词挖掘
  • 免费小程序商城系统优化软件哪个最好的
  • 做 爱 网站视频教程小程序拉新推广平台
  • 优秀网站下载产品软文范例800字
  • 连连建设跨境电商网站新出的app推广在哪找
  • 邯郸网站优化技巧怎么在百度做网站推广
  • 腾讯wordpress 建站教程百度人工客服电话
  • 某网站建设方案如何查看百度搜索指数
  • 怎么里ip做网站深圳网站设计公司排行
  • 什么样的网站空间做电影网站不卡营销宝
  • 秦皇岛做网站优化公司seo承诺排名的公司
  • 宜兴开发区人才网深圳seo优化排名推广