[Java | Web] JavaWeb——JSON与AJAX简介

目录

一、JSON 简介

1、什么是 JSON

2、JSON 的定义和访问

3、JSON 在 JS 中两种常用的转换方法

4、JSON 在 Java 中的使用

5、匿名内部类

二、AJAX 简介

1、什么是 AJAX

2、原生 JS 的 AJAX 请求示例

3、JQuery 中的 AJAX 请求


一、JSON 简介

1、什么是 JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。

JSON 采用完全独立于语言的文本格式,而且很多语言都提供了对 JSON 的支持,使得 JSON 成为理想的数据交换语言。

  • 轻量级指的是跟 xml 进行比较;
  • 数据交换指的是客户端与服务器之间业务数据的传输格式。

2、JSON 的定义和访问

客户端和服务器都需要使用 JSON。

在客户端中以 JS 为例子使用 JSON。

(1)json 的定义

json 是由键值对组成,并且由 { } 包围。

<script type="text/javascript">// json的定义var jsonObj = {"key1" : 12,"key2" : "abc","key3" : true,"key4" : [11, "abc", false],"key5" : {"key5_1" : 13,"key5+2" : "value"},"key6" : [{"key6_1?1" : 14,"key6_1.2" : 15,}, {"key6_2*1" : 16,"key6_2^2" : 17}]};
</script>

value 可以是:普通类型、数组、json、数组套json、等等。

(2)json 的访问

json 本身是一个对象,json 中的 key 可以理解为是对象中的一个属性。json 对象属性的访问也是使用 . 点运算符。

<script type="text/javascript">// json的定义var jsonObj = {"key1" : 12,"key2" : "abc","key3" : true,"key4" : [11, "abc", false],"key5" : {"key5_1" : 13,"key5+2" : "value"},"key6" : [{"key6_1?1" : 14,"key6_1.2" : 15,}, {"key6_2*1" : 16,"key6_2^2" : 17}]};// json的访问alert(jsonObj.key1 + " + " + jsonObj.key2 + " + " + jsonObj.key3);alert(jsonObj.key4);for (var i = 0; i < jsonObj.key4.length; ++ i) {alert(jsonObj.key4[i]);}alert(jsonObj.key5);alert(jsonObj.key5.key5_1);alert(jsonObj.key5["key5+2"]);alert(jsonObj.key6);alert(jsonObj.key6[0]["key6_1?1"]);</script>

3、JSON 在 JS 中两种常用的转换方法

(1)json 有两种形式

  • 对象形式,我们叫它 json 对象;
  • 字符串形式,我们叫它 json 字符串;

(2)转换方法

  • JSON.stringify(),把 json 对象转换成为 json 字符串;
  • JSON.parse(),把 json 字符串转换成为 json 对象;

(3)使用场景

  • 一般要操作 json 中的数据的时候,需要使用 json 对象的格式;
  • 一般在客户端和服务器之间进行数据交换的时候,需要使用 json 字符串;

4、JSON 在 Java 中的使用

需要先导入 json 的 jar 包才能在 java 中使用 json。可以使用 google 提供的 gson.jar。

(1)JavaBean 和 json 的转换

(1-1)Person 类:

package com.pojo;public class Person {private Integer id;private String name;@Overridepublic String toString() {return "Person{" +"id=" + id +", name='" + name + '\'' +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Person(Integer id, String name) {this.id = id;this.name = name;}public Person() {}
}

(1-2)JsonTest 类:

package com.json;import com.google.gson.Gson;
import com.pojo.Person;
import org.junit.Test;public class JsonTest {@Testpublic void javaBean() {Person person = new Person(1, "你好");Gson gson = new Gson();// JavaBean 转为 JsonString jsonString = gson.toJson(person);System.out.println(jsonString);// Json 转为 JavaBeanPerson tmp = gson.fromJson(jsonString, Person.class);System.out.println(tmp);}
}

(1-3)输出:

(2)List 和 json 的转换

(2-1)PersonListType 类:

package com.pojo;import com.google.gson.reflect.TypeToken;import java.util.List;public class PersonListType extends TypeToken<List<Person>> {}

(2-2)JsonTest 类:

package com.json;import com.google.gson.Gson;
import com.pojo.Person;
import com.pojo.PersonListType;
import org.junit.Test;import java.util.ArrayList;
import java.util.List;public class JsonTest {@Testpublic void List() {List<Person> personList = new ArrayList<>();personList.add(new Person(1, "你好"));personList.add(new Person(2, "hello"));Gson gson = new Gson();// List<Person> 转为 JsonString jsonString = gson.toJson(personList);System.out.println(jsonString);// Json 转为 List<Person>List<Person> tmp1 = gson.fromJson(jsonString, personList.getClass());System.out.println(tmp1.get(0));List<Person> tmp2 = gson.fromJson(jsonString, new PersonListType().getType());System.out.println(tmp2.get(0));}
}

(2-3)输出:

(2-4)理解:

  • 显然 tmp1 并不是正确的 Person 对象,因为 Person 对象的 id 为 Integer 类型。并且打印 tmp1 还出现了 { },显然 List 保存的不是 Person,而是 Map 类型。
  • 如果从 Json 转换回的对象是一个 JavaBean,用 Person.class 属性就可以了;但是转换回的对象是一个 List 集合,那么就要使用 Type 类型。
  • 其中 Gson 的 jar 包提供了一个 TypeToken 类,就是用来将 Json 转换为集合的。只需要新建一个 java 类,继承 TypeToken 即可。

(3)Map 和 json 的转换

(3-1)PersonMapType 类:

package com.pojo;import com.google.gson.reflect.TypeToken;import java.util.Map;public class PersonMapType extends TypeToken<Map<Integer, Person>> {
}

(3-2)JsonTest 类:

package com.json;import com.google.gson.Gson;
import com.pojo.Person;
import com.pojo.PersonMapType;
import org.junit.Test;import java.util.HashMap;
import java.util.Map;public class JsonTest {@Testpublic void Map() {Map<Integer, Person> map = new HashMap<>();map.put(1, new Person(1, "你好"));map.put(2, new Person(2, "hello"));Gson gson = new Gson();// Map 转换为 JsonString jsonString = gson.toJson(map);System.out.println(jsonString);// Json 转换为 MapMap<Integer, Person> tmp = gson.fromJson(jsonString, new PersonMapType().getType());System.out.println(tmp.get(1));}
}

(3-3)输出:

5、匿名内部类

观察 json 在 Java 中的使用,我们发现如果给每一个集合类型都添加一个 Type 类,那么将会占用很多的资源,所以我们可以将其写成匿名内部类的形式。

package com.json;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.pojo.Person;
import org.junit.Test;import java.util.HashMap;
import java.util.Map;public class JsonTest {@Testpublic void Map() {Map<Integer, Person> map = new HashMap<>();map.put(1, new Person(1, "你好"));map.put(2, new Person(2, "hello"));Gson gson = new Gson();// Map 转换为 JsonString jsonString = gson.toJson(map);System.out.println(jsonString);// Json 转换为 MapMap<Integer, Person> tmp = gson.fromJson(jsonString, new TypeToken<Map<Integer, Person>>(){// 没有语句则留空}.getType());System.out.println(tmp.get(1));}
}

二、AJAX 简介

1、什么是 AJAX

AJAX 即 “Asynchronous JavaScript And XML”(异步 JS 和 XML),是指一种创建交互式网页应用的网页开发技术。

ajax 是一种浏览器通过 js 异步发起请求,更新局部页面的技术。

特点:

  • 请求后浏览器地址栏不会改变;
  • 页面原有内容(未被修改的内容)保留;
  • 可以异步执行; 

2、原生 JS 的 AJAX 请求示例

(1)步骤

  • 首先创建 XMLHttpRequest(XHR)对象;

  • 调用 open() 方法设置请求参数:get/post、url、异步true/同步false;
  • 绑定 onreadystatechange 事件,获取响应对象(数据);
  • 将 json 字符串转换成 json 对象,把 value 显示给用户;
  • 调用 send() 方法发送请求;

(2)代码

(2-1)ajax.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="cache-control" content="no-cache" /><meta http-equiv="Expires" content="0" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><base href="http://localhost:8080/json_war_exploded/"/><script type="text/javascript">// 在这里使用 JS 发起 Ajax 请求,访问 AjaxServletfunction ajaxRequest() {
// 				1、我们首先要创建XMLHttpRequest(XHR)var xmlHttpRequest = new XMLHttpRequest();
// 				2、调用open方法设置请求参数xmlHttpRequest.open("GET", "./start_AjaxServlet?action=javaScriptAjax", true);
// 				3、绑定onreadystatechange事件,处理请求完成后的操作。xmlHttpRequest.onreadystatechange = function() {if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {// 把响应的数据显示在页面上var jsonObj = JSON.parse(xmlHttpRequest.responseText);document.getElementById("div01").innerText = "编号:" + jsonObj.id + ",姓名:" + jsonObj.name;}}
// 				4、调用send方法发送请求xmlHttpRequest.send();}</script></head><body>	<button onclick="ajaxRequest()">ajax request</button><div id="div01"></div></body>
</html>

(2-2)AjaxServlet 类:(BaseServlet 可以去介绍 Cookie 的文章中获取)

package com.web;import com.google.gson.Gson;
import com.pojo.Person;import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class AjaxServlet extends BaseServlet {protected void javaScriptAjax(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("接收 Ajax 请求");Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}
}

3、JQuery 中的 AJAX 请求

一般开发中,不会自己去写原生的 AJAX 请求,而是使用 JS 的框架。

(1)$.ajax 方法

  • url,表示请求的地址;
  • type,表示请求的类型,GET/POST;
  • data,表示发送给服务器的数据,两种格式:name=value&name=value 或 { key:value };
  • success,请求成功,响应的回调函数;
  • dataType,响应的数据类型,常用:text、xml、json;

(2)$.get 方法和 $.post 方法(比 $.ajax 少了 type 参数)

  • url,请求的地址;
  • data,发送的数据;
  • callback,成功的回调函数;
  • type,返回的数据类型;

(3)$.getJSON(固定为 GET 请求,返回 JSON 数据)

  • url,请求的地址;
  • data,发送的数据;
  • callback,成功的回调函数;

(4)$.serialize 方法

  • 可以获取表单中所有表单项的内容,并以 name=value&name=value 的形式进行拼接。

(5)代码:

(5-1)Jquery_Ajax_request.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="cache-control" content="no-cache" /><meta http-equiv="Expires" content="0" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>Insert title here</title><base href="http://localhost:8080/json_war_exploded/"/><script type="text/javascript" src="./script/jquery-1.7.2.js"></script><script type="text/javascript">$(function() {// ajax请求$("#ajaxBtn").click(function(){$.ajax({url: "./start_AjaxServlet",data: "action=jQueryAjax", // 或者 data: {action: "jQueryAjax"},type: "get",success: function (data) {// alert("返回的数据是:" + data);var jsonObj = JSON.parse(data); // 如果 dataType 写的是 json,那么这里就不用转换$("#msg").html("ajax 编号:" + jsonObj.id + ",姓名:" + jsonObj.name);},dataType: "text"});});// ajax--get请求$("#getBtn").click(function(){$.get("./start_AjaxServlet", "action=jQueryGet", function (data) {var jsonObj = JSON.parse(data);$("#msg").html("get 编号:" + jsonObj.id + ",姓名:" + jsonObj.name);}, "text");});// ajax--post请求$("#postBtn").click(function(){$.post("./start_AjaxServlet", "action=jQueryPost", function (data) {var jsonObj = JSON.parse(data);$("#msg").html("post 编号:" + jsonObj.id + ",姓名:" + jsonObj.name);}, "text");});// ajax--getJson请求$("#getJSONBtn").click(function(){$.getJSON("./start_AjaxServlet", "action=jQueryGetJson", function (data) {var jsonObj = JSON.parse(data);$("#msg").html("getJson 编号:" + jsonObj.id + ",姓名:" + jsonObj.name);});});// ajax请求$("#submit").click(function(){// 把参数序列化var data = "action=jQuerySerialize&" + $("#form01").serialize();$.getJSON("./start_AjaxServlet", data, function (data) {var jsonObj = JSON.parse(data);$("#msg").html("Serialize 编号:" + jsonObj.id + ",姓名:" + jsonObj.name);});});});</script>
</head>
<body><div><button id="ajaxBtn">$.ajax请求</button><button id="getBtn">$.get请求</button><button id="postBtn">$.post请求</button><button id="getJSONBtn">$.getJSON请求</button></div><div id="msg"></div><br/><br/><form id="form01" >用户名:<input name="username" type="text" /><br/>密码:<input name="password" type="password" /><br/>下拉单选:<select name="single"><option value="Single">Single</option><option value="Single2">Single2</option></select><br/>下拉多选:<select name="multiple" multiple="multiple"><option selected="selected" value="Multiple">Multiple</option><option value="Multiple2">Multiple2</option><option selected="selected" value="Multiple3">Multiple3</option></select><br/>复选:<input type="checkbox" name="check" value="check1"/> check1<input type="checkbox" name="check" value="check2" checked="checked"/> check2<br/>单选:<input type="radio" name="radio" value="radio1" checked="checked"/> radio1<input type="radio" name="radio" value="radio2"/> radio2<br/></form><button id="submit">提交--serialize()</button>
</body>
</html>

(5-2)AjaxServlet 类:

package com.web;import com.google.gson.Gson;
import com.pojo.Person;import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class AjaxServlet extends BaseServlet {protected void javaScriptAjax(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("接收 Ajax 请求");Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}protected void jQueryAjax(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("调用 jQueryAjax 方法");Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}protected void jQueryGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("调用 jQueryGet 方法");Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}protected void jQueryPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("调用 jQueryPost 方法");Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}protected void jQueryGetJson(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("调用 jQueryGetJson 方法");Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}protected void jQuerySerialize(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("调用 jQuerySerialize 方法");System.out.println("username: " + req.getParameter("username"));Person person = new Person(1, "你好");Gson gson = new Gson();String jsonString = gson.toJson(person);resp.getWriter().write(jsonString);}
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

解决SpringBoot3整合Druid的兼容性问题

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 背景概述 截止目前&#xff0c;Druid对于SpringBoot3的支持不够全面和友好&#xff1b;存在一些兼容性的问题&#xff0c;导致项目报错。 解决方案 在此&#xff0c;针对…

使用低代码实现一个表单页面 ------ XinBuilder

平台介绍 如果你不是一个前端开发&#xff0c;但是想要实现出一个前端页面。 那么就可以通过低代码的方式&#xff0c;拖拽和配置出你想要的页面。 而XinBuilder就是简单的一套低代码平台&#xff0c;你可以在上面拖拽出自己想要使用的组件并进行配置。使用方式也很简单。 这…

影刀自动化采集底层逻辑

hello,大家好&#xff0c;这里是【玩数据的诡途】 接上回 <我的影刀故事> 今天给大家介绍一下整个采集的底层逻辑&#xff0c;包括业务流程自动化也是基于这一套基础逻辑进行展开的&#xff0c;顺便带大家熟悉一下影刀&#xff0c;既然叫影刀系列了&#xff0c;那后续一些…

【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码

1 mpl_toolkits.mplot3d 功能介绍 mpl_toolkits.mplot3d 是 Matplotlib 库中的一个子模块&#xff0c;用于绘制和可视化三维图形&#xff0c;包括三维散点图、曲面图、线图等。它提供了丰富的功能来创建和定制三维图形。以下是 mpl_toolkits.mplot3d 的主要功能和功能简介&am…

服务断路器_Resilience4j信号量隔离实现

POM引入依赖 <dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-bulkhead</artifactId><version>1.7.0</version> </dependency>信号量隔离修改YML文件 resilience4j:#信号量隔离bulkhead:ins…

支撑电动汽车规模化,特来电智能化升级群充产品

9月26日&#xff0c;中国领先的充电网生态运营商特来电重磅发布智能群充4.0产品&#xff0c;标志着特来电群充产品体系进一步升级&#xff0c;充电行业迎来更高质量、更高性能的设备与系统&#xff0c;充电网基础设施将更好地支撑大规模电动汽车的发展。 群充技术路线引领充电…

Element UI搭建首页导航和左侧菜单以及Mock.js和(组件通信)总线的运用

目录 前言 一、Mock.js简介及使用 1.Mock.js简介 1.1.什么是Mock.js 1.2.Mock.js的两大特性 1.3.Mock.js使用的优势 1.4.Mock.js的基本用法 1.5.Mock.js与前端框架的集成 2.Mock.js的使用 2.1安装Mock.js 2.2.引入mockjs 2.3.mockjs使用 2.3.1.定义测试数据文件 2…

程序员不得不知道的排序算法-上

目录 前言 1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.快速排序 6.归并排序 总结 前言 今天给大家讲一下常用的排序算法 1.冒泡排序 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它重复地从待排序的元素中比较相邻的两个元素&a…

Java中的IO流的缓冲流

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 &#x1f334;IO流体系结构&#x1f334;缓冲流1.提高效率的原理2.缓冲流的类型3.字符缓冲流两个特有方法 &#x1f334;总结 &#x1f334;IO流体系…

硬件系统工程师宝典(42)-----耦合电容如何布局?

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。 上篇我们说到了对时序有要求的系统中如何正确使用蛇形走线&#xff0c;可以增加信号的延时&#xff0c;符合系统的时序要求。今天来说说电容去耦的…

三、VXLAN静态方式实验举例

VXLAN静态方式实验举例 1.1、静态方式部署集中式网关1.1.1、VXLAN隧道建立1.1.2、MAC地址动态学习1.1.3、同子网已知单播报文转发1.1.4、同子网BUM报文转发1.1.5、跨子网报文转发1.1.6、配置VXLAN接入业务部署方式 1.2、配置举例&#xff0c;相同网段互通&#xff08;静态方式&…

(数组/字符串) 380. O(1) 时间插入、删除和获取随机元素 ——【Leetcode每日一题】

❓ 380. O(1) 时间插入、删除和获取随机元素 难度&#xff1a;中等 实现 RandomizedSet 类&#xff1a; RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时&#xff0c;向集合中插入该项&#xff0c;并返回 true &#xff1b;否则&#x…

【Maven入门篇】(1)详细讲解Maven的安装报错解决

&#x1f38a;专栏【Maven入门篇】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【The truth that you leave】 &#x1f970;欢迎并且感谢大家指出我的问题 文章目录 &#x1f33a;Maven介绍⭐作用⭐官网 &#x1f384;maven安…

【C语言】文件操作(一)

前言 本篇博客讲解对文件的操作&#xff0c;包括打开&#xff0c;关闭操作。在下篇博客将讲解文件的读写。 文章目录 一、 什么是文件&#xff1f;1.1 用于存储数据1.2 文件类型1.3 文件名1.4 二进制文件和文本文件 二、文件的打开和关闭2.1 流和标准流2.2 文件指针2.3文件的打…

asp.net core automapper的使用

1.安装automapper的nuget包 AutoMapper.Extensions.Microsoft.DependencyInjection 2.创建需要映射的类和转换后的类 public class studto{public int sn { get; set; }public string name { get; set; }public string sex { get; set; }public int age { get; set; }public s…

前端的多种克隆方式和注意事项

克隆的意义和常见场景: 意义: 保证原数据的完整性和独立性常见场景: 复制数据, 函数入参, class构造函数等 浅克隆: 对象常用的浅克隆 es6扩展运算符...Object.assign 数组常用的浅克隆 es6的扩展运算符...slice>arr.slice(0)[].concat 深度克隆: 克隆对象的每个层级如…

如何套用模板制作大屏?

在山海鲸可视化的资源中心里内置了大量的二维、三维大屏模板&#xff0c;大家可以根据需要找到自己想要的模板&#xff0c;然后点击下载直接进行使用。 有需要可自行前往哔哩哔哩账号中观看相关内容的视频教程↓↓↓ 山海鲸可视化的个人空间-山海鲸可视化个人主页-哔哩哔哩视频…

NodeMCU ESP8266基于Arduino IDE的开发环境搭建(图文并茂)

文章目录 NodeMCU ESP8266基于Arduino IDE的开发环境搭建&#xff08;手把手教程&#xff09;软件下载官网地址百度云 安装IDE配置基础配置设置开发板 测试串口驱动下载测试用例 总结 NodeMCU ESP8266基于Arduino IDE的开发环境搭建&#xff08;手把手教程&#xff09; 软件下…

安卓备份基带分区 备份字库 步骤解析 以免误檫除分区或者“格机” 后悔莫及

玩机搞机---安卓机型mtk和高通芯片查看分区 导出分区 备份分区的一些工具分析 修复基带 改串码 基带qcn 改相关参数 格机危害 手机基带的重要性前面几期博文我都有相关的说明。他区别于别的分区。而且目前手机的安全性越来越高。基带分区基本都是专机专用。而不像早期机型一…

jvm深入研究文档--jvm分区以及职责

Java虚拟机&#xff08;JVM&#xff09;主要包括以下几个区域&#xff1a; 方法区&#xff08;Method Area&#xff09;&#xff1a;这个区域存储已被加载的类信息&#xff0c;常量&#xff0c;静态变量&#xff0c;即时编译器编译后的代码等数据。方法区是所有线程共享的。在…