使用ACF插件向WooCommerce商城产品添加自定义字段

WooCommerce网站的一个常见请求是需要在单个产品页面上包含额外的字段输入,并在前端输出它们。我将解释如何使用出色的ACF高级自定义字段插件(免费版)来实现这一点。

需要编写一些代码,但不用担心,一切都非常简单。此外,您还能以强大的方式扩展WooCommerce,这让您倍感满足。

我将解释许多不同的用例,并为每个用例提供示例。我将使用 Shoptimizer WooCommerce 主题,但代码片段应该适用于任何 WooCommerce 主题。

目录 隐藏

1 步骤 1:安装高级自定义字段 (ACF) 插件 

2 步骤 2:添加自定义字段组 

3 3. 创建自定义字段 

4 4. 编辑产品 

5 5. 在产品页面上显示我们的自定义字段 

5.1 使用子主题的 functions.php 文件 

5.2 或者,使用代码片段插件 

5.3 创建自定义函数 

6 在产品图片下添加自定义字段 

6.1 但是如果我使用产品库怎么办? 

7 将自定义字段定位在产品页面末尾 

8 在商店/目录上显示自定义字段 

9 使用 ACF 创建自定义徽章 

10 结论 

步骤 1:安装高级自定义字段 (ACF) 插件


使用ACF插件向WooCommerce产品添加自定义字段

首先,下载并激活高级自定义字段插件的免费版本。如果您搜索,可以在WordPress 的插件部分中执行此操作。完成后,进入 WordPress 仪表板中的新自定义字段区域进行设置。


步骤 2:添加自定义字段组

使用ACF插件向WooCommerce产品添加自定义字段

在自定义字段区域内,单击添加新按钮以创建新字段组。

添加新字段组

我们将此字段组命名为“单一产品”(可以是任何名称)。我们还将更改位置规则,以便在帖子类型等于产品时显示此字段。在此阶段保存。


3. 创建自定义字段

这样就设置好了我们的结构。接下来,我们需要实际添加一个字段。因此,单击“添加字段”按钮。

在此示例中,假设我们是一家在线书店,并希望添加一个新的“作者”字段,该字段显示在产品页面的标​​题上方。请记住,这只是您可以执行的操作的演示。您可以将其从作者更改为任何您喜欢的内容。

作者字段

您可以看到,我们现在已创建了一个 Author 字段。字段名称只是author — 这很重要,因为我们很快就会用到它。字段类型也只是一个简单的文本输入。您可以根据需要添加说明。


4. 编辑产品

WooCommerce 中的作者字段

现在已经创建了作者字段,让我们编辑产品。在编辑器中,您应该会看到我们新的作者文本输入。成功了!

您可以向该字段添加一些内容并保存您的产品,但这个新的文本字段尚未输出在您的网站上。

我们接下来会讨论这个问题。


5. 在产品页面上显示我们的自定义字段

因此,在开始编写代码之前,先说一下代码的放置位置。您应该始终将自定义代码放在以下两个位置之一。

使用子主题的 functions.php 文件

我们已经为 Shoptimizer 准备了一个子主题。

子主题的上传方式与任何主题类似 – 在外观 > 主题 > 添加新主题中。您可以在子主题的 functions.php 中添加自定义代码。一种快速的方法是使用 WordPress 本身的主题编辑器。外观 > 主题编辑器

确保选择了您的子主题并且您没有意外编辑父主题。

或者,使用代码片段插件

Code Snippets 插件。它是放置自定义代码片段的好地方,您可以随时激活和停用它,而不会有任何意外破坏商店的风险。

创建自定义函数

要在单个产品页面上输出我们的新作者字段,您可以使用以下代码。

add_action( ‘woocommerce_single_product_summary’, ‘shoptimizer_custom_author_field’, 3 );

function shoptimizer_custom_author_field() { ?>

<?php if(get_field(‘author’)) { ?>

<div class=”cg-author”><?phpthe_field(‘author’);?></div>

<?php }

}

这相当简单。让我们逐行看一下。

add_action( ‘woocommerce_single_product_summary’, ‘shoptimizer_custom_author_field’, 3 );

我们创建了一个名为shoptimizer_custom_author_field的新函数(您可以为其命名任何名称),并将其挂接到位置 3 的单个产品页面的woocommerce_single_product_summary部分。

我们从哪里获得这个woocommerce_single_product_summary钩子标题?

Business Bloomer 提供了出色的单品挂钩视觉指南,其中显示了您可以使用的所有挂钩以及它们当前占据的位置。此外,您还可以在我们的指南中阅读有关WooCommerce 挂钩的更多信息。

这些是用于标题、评级、价格和介绍文本的标准 WooCommerce 挂钩位置。请注意每个后面的数字,它们指定元素的顺序。

add_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_title’, 5 );

add_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_rating’, 10 );

add_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_price’, 10 );

add_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_excerpt’, 20 );

因此,首先显示标题,然后显示评级,然后显示价格,然后显示摘录文本。

因为 WooCommerce 的标题位于位置 5,所以我将作者自定义函数设为位置 3,因此它会出现在标题之前。

如果我们想让作者文字出现在标题之后?是的,你猜对了,你可以将位置编号更改为 6、7、8 或 9 中的任意一个。这些都可以。

让我们看看其余的代码:

function shoptimizer_custom_author_field() { ?>

<?php if(get_field(‘author’)) { ?>

<div class=”cg-author”><?phpthe_field(‘author’);?></div>

<?php }

}

该函数的其余部分只是简单检查是否存在名为author 的字段。

如果找到该字段,它会将其包装在 div 中输出,如果您愿意,可以使用自定义 CSS 进行样式设置。

结果如下图所示。太棒了!

产品页面上的作者字段


在产品图片下添加自定义字段

让我们添加另一个自定义字段,这次是在产品图片下方。我们将使用它来记录评论引言,这些引言通常出现在书籍封面的背面。

那么,让我们回到自定义字段区域并创建一个新字段,我们将其称为Quotes。字段名称是小写的quotes

ACF 报价字段

主要区别在于我已将字段类型更改为WYSIWYG 编辑器。这将包括完整的 WordPress 文本编辑器,以便我格式化内容样式。

现在,当我编辑产品时,我会看到这个新字段,位于我之前创建的作者文本输入旁边。

编辑产品时的新报价字段

让我们向此字段添加一些内容并保存。同样,它现在还不会显示,我们需要创建一个自定义函数来执行此操作。

显示此内容的自定义代码与我们用于作者文本的代码非常相似。我们可以使用以下内容:

add_action( ‘woocommerce_product_thumbnails’, ‘shoptimizer_custom_quotes_field’, 30 );

function shoptimizer_custom_quotes_field() { ?>

<?php if(get_field(‘quotes’)) { ?>

<div class=”cg-quotes”><?phpthe_field(‘quotes’);?></div>

<?php }

}

正如您所见,我们将引用的作者改为了引文

除此之外,另一个最明显的区别是第一行:

add_action( ‘woocommerce_product_thumbnails’, ‘shoptimizer_custom_quotes_field’, 30 );

我们想将这个新的自定义字段放在现有产品图片或图库下方。再次强调,单品视觉挂钩指南非常有用。

我们可以在指南中看到这是显示产品图库缩略图的现有操作:

add_action( ‘woocommerce_product_thumbnails’, ‘woocommerce_show_product_thumbnails’, 20 );

它被称为woocommerce_show_product_thumbnails。并且它被挂接到woocommerce_products_thumbnails区域。

因此,我们将使用相同的woocommerce_products_thumbnails 区域来显示我们自己的自定义钩子 – 但优先级为 30 – 以便它显示在下面。

最后,我们将添加几行自定义 CSS,以 cg-quotes 类名(我们将其命名为 div)为目标。为方便起见,可以将其放入外观 > 自定义 > 附加 CSS区域。

div.product .cg-quotes {

padding-top:20px;

text-align:center;

}

div.product .cg-quotes p {

margin-bottom:5px;

}

我们来看看结果。

产品页面上显示的报价字段

成功了!我们可以看到产品库下方显示了新的报价字段。我们的自定义 CSS 已将其居中,并缩小了段落之间的边距。

但是如果我使用产品库怎么办?

如果您只有一张产品图片,上述技术可以正常工作,但如果您使用标准 WooCommerce 图库,则无法正常工作。奇怪的是,WooCommerce 的图库不使用 woocommerce_products_thumbnails挂钩区域。除非您覆盖product-image.php 模板,否则实际上没有任何方法可以在图库下包含内容。

但是!如果您足够精明,可以使用 Shoptimizer 和它的优质产品库,作为CommerceKit的一部分,我们已经包含了您可以使用的钩子。

它被命名为commercekit_after_gallery,是的,您也可以使用commercekit_before_gallery


将自定义字段定位在产品页面末尾

接下来我想做的事情稍微复杂一点。我想在单个产品页面的底部添加作者简介。也就是在标签之后

传记内容包括:

  • 作者姓名(已经有了)
  • 关于作者的简短文字
  • 个人资料照片

幸运的是,我们结合了高级自定义字段、自定义函数和少量 CSS,使得这一点很容易实现。

因此,请回到“自定义字段”部分并添加两个新字段

第一个,我们将其称为Biography,是一个文本区域。第二个,我们将其称为Profile Photo。它看起来像这样:

传记 ACF 领域

我们为此使用图像字段,您需要确保在“返回格式”标题旁边选择了图像 ID 。

现在,当我们编辑产品时,我们会看到这两个新字段,并可以在其中包含我们的传记内容。

编辑器中的传记字段

我们之前已经有了一个作者姓名字段,所以这就是我们显示传记部分所需要的一切。

我们需要的自定义函数稍微复杂一些,因为我们将合并所有这些字段以及一些包装 div 来构建布局。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

add_action( ‘woocommerce_product_after_tabs’, ‘shoptimizer_custom_biography’, 10 );

function shoptimizer_custom_biography() { ?>

<div class=”cg-bio-container”>

<div class=”cg-bio-wrapper”>

<h2>About the author</h2>

<div class=”cg-bio-inner”>

<?php

$bio_image=get_field(‘profile_photo’);

$size=’full’;

if($bio_image){

echo'<div class=”cg-bio-image”>’;

echowp_get_attachment_image($bio_image,$size);

echo'</div>’;

}?>

<div class=”cg-bio-text”>

<?phpif(get_field(‘author’)){?>

<h3><?phpthe_field(‘author’);?></h3>

<?php}?>

<?phpif(get_field(‘biography’)){?>

<p><?phpthe_field(‘biography’);?></p>

<?php}?>

</div><!–/cg-bio-text–>

</div><!–/cg-bio-inner–>

</div><!–/cg-bio-wrapper–>

</div><!–/cg-bio-container –>

<?php

}

第一行当然是我们的钩子。再次参考 Visual hooks 指南是最好的做法,因为我们可以看到我们应该使用woocommerce_product_after_tabs操作将内容放在标签之后。

除了一些包装的 div 之外,唯一的其他新代码是用于显示我们的传记资料图片。

我们需要更多自定义 CSS 来以整洁的方式进行布局,我们可以使用 flexbox CSS 的强大功能来实现这一点,而不是使用浮动。它将进入外观 > 自定义 > 附加 CSS,或我们子主题的 style.css。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

.cg-bio-container {

max-width:1200px;

padding:15px;

margin:0auto;

}

.cg-bio-wrapper h2 {

font-size:22px;

margin-bottom:15px;

color:#888;

font-weight:normal;

}

.cg-bio-inner {

display:flex;

border:1pxsolid#eee;

padding:25px;

}

.cg-bio-image {

max-width:90px;

margin-right:20px;

}

.cg-bio-image img {

border-radius:50%;

}

.cg-bio-text h3 {

margin-bottom:5px;

}

.cg-bio-text p:last-child {

margin-bottom:0;

}

根据您的主题,您可能需要稍微调整一下,但希望它适用于大多数主题。经过我们的努力,结果如下:

ACF 传记

我们的产品页面标签后面有一个很棒的作者传记区域。对于在线书店来说,这是一个很棒的功能。


在商店/目录上显示自定义字段

因此,我们已成功将字段添加到单个产品页面。我们如何在商店页面的产品“卡片”中包含这些字段之一。假设我们想在产品标题下方包含新的作者字段。

如果我们已经拥有了现有的功能: 

add_action( ‘woocommerce_single_product_summary’, ‘shoptimizer_custom_author_field’, 7 );

function shoptimizer_custom_author_field() { ?>

<?php if(get_field(‘author’)) { ?>

<div class=”cg-author”><?phpthe_field(‘author’);?></div>

<?php }

}

然后我们只需要添加一行代码即可。我们还需要添加一个add_action来将其添加到商店页面。

现在变成:

add_action( ‘woocommerce_single_product_summary’, ‘shoptimizer_custom_author_field’, 7 );

add_action( ‘woocommerce_shop_loop_item_title’, ‘shoptimizer_custom_author_field’, 15 );

function shoptimizer_custom_author_field() { ?>

<?php if(get_field(‘author’)) { ?>

<div class=”cg-author”><?phpthe_field(‘author’);?></div>

<?php }

}

您将在第二行看到一个新动作。

我们应用相同的代码来显示该字段,但在新的位置,即woocommerce_shop_loop_item_title

WooCommerce 有更多钩子来控制商店页面上元素的位置。同样,Business Bloomer为商店页面提供了另一个出色的视觉钩子指南,您可以参考。

看一下,您将能够看到产品“卡片”上的常规标题位置是这样的:

add_action( ‘woocommerce_shop_loop_item_title’, ‘woocommerce_template_loop_product_title’, 10 );

因此,我们的新动作使用相同的woocommerce_shop_loop_item_title钩子,但将定位在它之后,位置 15。

为了添加一些额外的样式,我还添加了几行自定义 CSS。这些可以进入:外观 > 自定义 > 附加 CSS

li.product .cg-author {

font-size:13px;

position:relative;

clear:both;

}

现在,当您查看您的商店或类别页面时,您应该会看到您的 ACF 字段显示在产品卡中,如下所示。

商店页面上显示的作者字段


使用 ACF 创建自定义徽章

根据我们目前所见,将自定义产品徽章应用到产品上现在并不太困难。

它可能简单到为某些项目添加“新”标签,或者添加诸如“特色”“高度评价”等文字。

为此,我需要以下项目:

  • 当我编辑产品时会出现一个新的自定义徽章ACF 字段。
  • 用于在目录页面上显示此徽章的自定义挂钩。
  • 另一个钩子用于在单个产品页面上显示它。
  • 一些 CSS 使一切看起来美观。

因此,我将首先添加名为“自定义徽章”的 ACF 字段。该字段类型是一个简单的文本字段。

ACF 定制徽章

现在,当我编辑产品时,我会看到这个新字段。因此,请在您的某个产品中添加一些示例文本,这样您就有了一个可行的示例。我在示例中添加了标签“畅销书!” 。

接下来,我需要添加自定义函数以在两个不同的位置显示此字段。目录和单个产品页面。

add_action( ‘woocommerce_product_thumbnails’, ‘shoptimizer_custom_badge’, 20 );

add_action( ‘woocommerce_before_shop_loop_item_title’, ‘shoptimizer_custom_badge’, 6 );

function shoptimizer_custom_badge() { ?>

<?php if(get_field(‘custom_badge’)) { ?>

<div class=”cg-badge”><span><?php the_field(‘custom_badge’); ?></span></div>

<?php }

}

您可以看到我的shoptimizer_custom_badge函数正在两个位置被添加。

最后,我们需要一些自定义 CSS 来让它看起来更美观。可以进入:外观 > 自定义 > 附加 CSS

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

.cg-badge span {

background:#c97351;

color:#fff;

font-size:12px;

font-weight:600;

padding:4px8px;

border-radius:3px;

}

li.product .woocommerce-loop-product__link {

position:relative;

}

/* Catalog */

li.product .cg-badge {

position:absolute;

bottom:10px;

z-index:2;

width:100%;

}

li.product .product-label {

z-index:2;

}

/* Single Product */

.single-product .cg-badge {

position:absolute;

top:10px;

left:10px;

}

现在,我们来看看结果。产品页面如下所示:

单个产品页面上的自定义徽章

CSS 确保它位于特色图片的顶部。现在,让我们看看目录页面,你会发现它也出现在那里。

产品列表页面上的自定义徽章

我的 CSS 已将其置于图片底部的中央。我认为这是放置它的最佳位置,因为顶部部分可以包含折扣标签、愿望清单图标和可能的缺货文本。


结论

我们已经看到,ACF高级自定义字段是扩展 WooCommerce 和添加其他字段的绝佳方法。此插件与一些简单的WooCommerce Hooks相结合,几乎可以将新的自定义字段放置在任何位置。

我使用了一个在线书店的示例,您当然可以使用这些技术添加任何类型的自定义内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.task1 suimove helloword 上链

1.创建项目 sui move new hello_world 2.代码部分 module hello_move::hello {use std::ascii::{String, string};use sui::object::{Self,UID};use sui::transfer::transfer;use sui::tx_context::{TxContext, sender};public struct Hello has key{id:UID,say: String}fun …

CSS回顾-基础知识详解

一、引言 在前端开发领域&#xff0c;CSS 曾是构建网页视觉效果的关键&#xff0c;与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现&#xff0c;我们亲手书写 CSS 样式的情况越来越少&#xff0c;CSS 基础知识也逐渐被我们遗忘。 现在&#xff0c;这种遗…

从0开始机器学习--Day27--主成分分析方法

主成分分析方法(Principal components analysis) 在降维算法中&#xff0c;比较普遍的是使用主成分分析方法&#xff08;PCA&#xff09; PCA算法简单示例 如图&#xff0c;假设我们有一个二维的特征&#xff0c;想要将其降为一维&#xff0c;简单的方法是寻找一条直线&#…

电子工牌独立双通道定向拾音方案(有视频演示)

现在一些行业的客服人员在面对客户都要求使用电子工牌分别记录客服和顾客的声音,我们利用双麦克风阵列双波束拾音的方案设计了一个电子工牌方案.可以有效分别记录客服和顾客的声音. 方案思路: 我们采用了一个双麦阵列波束拾音的模块A-59,此模块可以利用2个麦克风组成阵列进行双…

Qt Quazip压缩解压实例

qt 中Quazip封装了zip压缩解压操作类&#xff0c;windows编译出dll,lib 最简单的使用示例如下&#xff1a;

小程序19-微信小程序的样式和组件介绍

在小程序中不能使用 HTML 标签&#xff0c;也就没有 DOM 和 BOM&#xff0c;CSS 也仅支持部分选择器 小程序提供了 WXML 进行页面结构的编写&#xff0c;WXSS 进行页面的样式编写 WXML 提供了 view、text、image、navigator等标签构建页面结构&#xff0c;小程序中标签称为组件…

HCIP-HarmonyOS Application Developer 习题(二十二)

1、用户将手机导航迁移至智能手表之后&#xff0c;智能手表如果需要获取手机传过来的数据&#xff0c;从下列哪个方法中获取? A、onCompleteContinuation() B、onStartContinuation() C、onRestoreData() D、onSaveData() 答案&#xff1a;C 分析&#xff1a;FA发起迁移后&am…

动态规划-背包问题——[模版]完全背包问题

1.题目解析 题目来源 [模版]完全背包_牛客题霸_牛客 测试用例 2.算法原理 1.状态表示 与01背包相同&#xff0c;这里的完全背包也是需要一个二维dp表来表示最大价值&#xff0c;具体如下 求最大价值dp[i][j]:在[1,i]区间选择物品&#xff0c;此时总体积不大于j时的最大价值 求…

高效分支管理规范

一、目的 通过标准化的流程和最佳实践&#xff0c;确保代码组织清晰、版本控制高效、变更管理有序&#xff0c;从而提高软件开发的质量、效率和可维护性&#xff0c;支持团队协作和持续集成/持续部署流程&#xff0c;最终实现项目的长期成功和发展 二、分支命名规范 简洁明了…

前后端分离练习(云客项目)

这几天学习了一点前端的开发&#xff0c;后面通过这个小项目来整理开发的过程&#xff0c;参考的是动力节点的动力云客这个项目&#xff0c;大家有兴趣可以去看一下视频&#xff0c;我更多的是学习了它的前端开发&#xff0c;后端我是用自己的方式来的&#xff0c;那么开始今天…

linux001.在Oracle VM VirtualBox中ubuntu虚拟系统扩容

1.打开终端切换到virtualBox安装目录 2.输入命令扩容 如上终端中的代码解释&#xff1a; D:\Program Files\Oracle\VirtualBox>.\VBoxManage modifyhd D:\ubuntu18.04\Ubuntu18.04\Ubuntu18.04.vdi --resize 40960如上代码说明&#xff1a;D:\Program Files\Oracle\Virtual…

小版本大不同 | Navicat 17 新增 TiDB 功能

近日&#xff0c;Navicat 17 迎来了小版本更新。此次版本新增了对 PingCap 公司的 TiDB 开源分布式关系型数据库的支持&#xff0c;进一步拓展了 Navicat 的兼容边界。即日起&#xff0c;Navicat 17 所有用户可免费升级至最新版本&#xff0c;通过 Navicat 工具实现 TiDB 数据库…

Flutter:key的作用原理(LocalKey ,GlobalKey)

第一段代码实现的内容&#xff1a;创建了3个块&#xff0c;随机3个颜色&#xff0c;每次点击按钮时&#xff0c;把第一个块删除 import dart:math; import package:flutter/material.dart; import package:flutter_one/demo.dart;void main() {runApp(const App()); }class App…

10款PDF翻译工具的探索之旅:我的使用经历与工具特色!!

在如今的时代&#xff0c;PDF文件已经成为我们工作、学习和生活中不可或缺的一部分。但是&#xff0c;当遇到一些非母语或陌生语言的PDF文档时&#xff0c;这要怎么办呀&#xff01;这时候翻译工具就显得尤为重要了。这也是我所遇到过的难题&#xff0c;现在我将与大家分享几款…

L11.【LeetCode笔记】有效的括号

目录 1.题目 2.分析 理解题意 解决方法 草稿代码 ​编辑 逐一排错 1.当字符串为"["时,分析代码 2.当字符串为"()]"时,分析代码 正确代码(isValid函数部分) 提交结果 3.代码优化 1.题目 https://leetcode.cn/problems/valid-parentheses/descri…

创建vue插件,发布npm

开发步骤&#xff1a;1.创建一个vue项目&#xff0c;2.开发一个组件。 3.注册成插件。 4.vite和package.json配置。5.发布到npm &#xff11;.创建一个vue项目 npm create vuelatest 生成了vue项目之后&#xff0c;得到了以下结构。 在src下创建个plugins目录。用于存放开发的…

Android OpenGL ES详解——实例化

目录 一、实例化 1、背景 2、概念 实例化、实例数量 gl_InstanceID 应用举例 二、实例化数组 1、概念 2、应用举例 三、应用举例——小行星带 1、不使用实例化 2、使用实例化 四、总结 一、实例化 1、背景 假如你有一个有许多模型的场景&#xff0c;而这些模型的…

MyBatis-Plus的IPage分页total不正确问题

场景&#xff1a; 执行了一条连接查询的sql语句&#xff0c;进行分页后&#xff0c;total不正确问题。如下图&#xff1a; 分析&#xff1a; 分页部分代码如下&#xff1a; String sql searchSqlBuilderInstance.generateSql(); Page page new Page(commonSearchDTO.getPage…

【LeetCode】【算法】53. 最大子数组和

LeetCode 53. 最大子数组和 题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。子数组是数组中的一个连续部分。 思路 思路&#xff1a;动态规划秒了 具体递推式如…

每日八股——JVM组成

直接上图 JVM&#xff08;Java虚拟机&#xff09;是运行Java字节码的虚拟机。它主要由以下几个部分组成&#xff1a; 1. 类加载器&#xff08;ClassLoader&#xff09; 负责加载class文件到内存中&#xff0c;并生成对应的Class对象。类加载器分为启动类加载器、扩展类加载器…