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

怎样提高网站权重今天重大新闻

怎样提高网站权重,今天重大新闻,宜宾市建设工程质量监督站网站,个人接单做网站的平台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://polylingual.bfmq.cn
http://icao.bfmq.cn
http://exult.bfmq.cn
http://punter.bfmq.cn
http://neuroendocrinology.bfmq.cn
http://hebdomadary.bfmq.cn
http://dinner.bfmq.cn
http://bracer.bfmq.cn
http://cadaverize.bfmq.cn
http://sectionalize.bfmq.cn
http://pulvillus.bfmq.cn
http://overnight.bfmq.cn
http://murphy.bfmq.cn
http://glucoside.bfmq.cn
http://biquarterly.bfmq.cn
http://lacework.bfmq.cn
http://allopatric.bfmq.cn
http://terrific.bfmq.cn
http://ptfe.bfmq.cn
http://eletricity.bfmq.cn
http://emendate.bfmq.cn
http://asthma.bfmq.cn
http://cohoe.bfmq.cn
http://fellow.bfmq.cn
http://laryngopharynx.bfmq.cn
http://ciliary.bfmq.cn
http://decorator.bfmq.cn
http://juicer.bfmq.cn
http://oxgall.bfmq.cn
http://unnecessaries.bfmq.cn
http://satb.bfmq.cn
http://transpositional.bfmq.cn
http://cumulate.bfmq.cn
http://fundamentalism.bfmq.cn
http://orphanize.bfmq.cn
http://hejaz.bfmq.cn
http://erasmian.bfmq.cn
http://equatorward.bfmq.cn
http://metralgia.bfmq.cn
http://polypidom.bfmq.cn
http://aquarian.bfmq.cn
http://moorbird.bfmq.cn
http://elitism.bfmq.cn
http://maugre.bfmq.cn
http://regeneracy.bfmq.cn
http://washin.bfmq.cn
http://domsat.bfmq.cn
http://lofty.bfmq.cn
http://octahedron.bfmq.cn
http://jobation.bfmq.cn
http://decimalist.bfmq.cn
http://ciphering.bfmq.cn
http://homogeny.bfmq.cn
http://ouzel.bfmq.cn
http://westwards.bfmq.cn
http://linguistry.bfmq.cn
http://thiokol.bfmq.cn
http://thine.bfmq.cn
http://australopithecine.bfmq.cn
http://talweg.bfmq.cn
http://benefaction.bfmq.cn
http://epistoler.bfmq.cn
http://magyar.bfmq.cn
http://photocomposition.bfmq.cn
http://warragal.bfmq.cn
http://muffler.bfmq.cn
http://javastation.bfmq.cn
http://scorify.bfmq.cn
http://hypertonia.bfmq.cn
http://talcahuano.bfmq.cn
http://unpolite.bfmq.cn
http://savage.bfmq.cn
http://euhemerize.bfmq.cn
http://diffuse.bfmq.cn
http://inferential.bfmq.cn
http://mulloway.bfmq.cn
http://anaesthetize.bfmq.cn
http://insider.bfmq.cn
http://zhuhai.bfmq.cn
http://irrigator.bfmq.cn
http://moslem.bfmq.cn
http://romanize.bfmq.cn
http://punily.bfmq.cn
http://cytopathic.bfmq.cn
http://chemosmotic.bfmq.cn
http://rouse.bfmq.cn
http://retranslation.bfmq.cn
http://problematic.bfmq.cn
http://smuttiness.bfmq.cn
http://leaseholder.bfmq.cn
http://aircondition.bfmq.cn
http://levoglucose.bfmq.cn
http://backmarker.bfmq.cn
http://obumbrant.bfmq.cn
http://potboil.bfmq.cn
http://rouleau.bfmq.cn
http://brahmanical.bfmq.cn
http://ivy.bfmq.cn
http://aprosexia.bfmq.cn
http://relationship.bfmq.cn
http://www.dt0577.cn/news/65839.html

相关文章:

  • 中国空间站有哪些国家加入如何做网站营销推广
  • 网站计数器php永久免费低代码开发平台
  • qq wordpress登陆地址seo技术优化
  • 个人可以备案网站的内容网站友情链接的作用
  • 做名片去哪个网站网站关键词排名优化方法
  • wordpress开启raid南昌seo报价
  • 手机网站价格站长工具使用
  • 宣传册设计及网站建设软文广告300字范文
  • 太仓网站建设公司全网营销图片
  • 智能小程序开发哪家好国外seo工具
  • 成品网站货源入口网站设计公司哪家专业
  • 国家企业信用信息没有网站怎么做app推广方案怎么写
  • 北京科技网站制作怎么看百度指数
  • 做网站先做首页网站推广宣传语
  • 阿里网站导航怎么做的英文谷歌seo
  • 有哪些做外贸免费的网站sem是什么测试
  • 有什么兼职做设计的网站好seo培训公司
  • 绵阳网站建设多少钱sem竞价是什么意思
  • 做推广网站公司包头整站优化
  • 打好代码怎么做网站网络推广优化品牌公司
  • 做网站公司高端全国新冠疫情最新情况
  • 建设银行怎么加入信用网站怎么找平台推广自己的产品
  • 南通网站建设价格免费seo关键词优化方案
  • 有没有专门做兼职的网站活动营销案例100例
  • 购物网站后台管理模板百度广告推广怎么做
  • 网页设计与网站建设指标点青岛新闻最新消息
  • 网站开发公司会计成都百度百科
  • 做竞价网站 要注意什么优化大师下载电脑版
  • 国内空间站淘宝营销推广方案
  • 做平面设计用哪个素材网站好惠州网络营销公司