66_1JSON【浏览器中处理JSON、Java中处理JSON(FastJSON、Jackson)】、Java中的bean

news2025/1/11 19:46:26

JSON

概念

JSON:JavaScript Object Notation是一种表示对象的方式

基于JavaScript语言的轻量级的数据交换格式;(即:用来传输数据的一种格式)

现在传输数据的方式更多是采用json的格式,渐渐代替了XML
JSON理解图

JSON的数据表示

JSON采用名值对的方式来表示一个对象的信息

符号描述示例
{}表示对象{name : ‘书名1’ , price:100}
[{},{},{}]表示对象数组[ {name : ‘书名1’ , price:100} , {name : ‘书名2’ , price:200} ]

注意:

  1. JSON的本质就是一串字符串,只不过元素(数据)会使用特定的符号标注

  2. 键和值之间用 : 隔开

  3. 键值对之间用 , 隔开

  4. 支持无限层嵌套

ps:{name : ‘Java从入门到精通’ , price:100 , author:{name:‘奇男子’ , info:‘从事java20年’}}

5. '' 或 "" 都可以表示字符串

序列化和反序列化

序列化:指的是将Java对象转换为JSON字符串的过程,即 Java对象 → JSON字符串

反序列化:指的是将JSON字符串转换为Java对象的过程,即 JSON字符串 → Java对象

处理JSON

1.浏览器中处理JSON

json字符串→ js对象
法1:parse()

注意:使用parse解析json格式的字符串,该字符串必须使用单引号包裹着双引号

		<script type="text/javascript">
			
			//json格式的字符串
			var jsonStr = '{"name":"Java从入门到精通","price":100}';
			
			//将json格式的字符串转换为js对象
			var jsObj = JSON.parse(jsonStr);
			
			alert(jsObj.name + " -- " + jsObj.price);
			
		</script>
法2:eval()

注意:eval去解析json格式的字符串,必须使用小括号括起来

<script type="text/javascript">
			
			
			//json格式的字符串
			var jsonStr = "({'name':'Java从入门到精通','price':100})";
			
			//将json格式的字符串转换为js对象
			var jsObj = eval(jsonStr);
			
			alert(jsObj.name + " -- " + jsObj.price);
			
		</script>
json字符串→ js数组
法2:eval()

注意:json格式字符串转数组,不用使用小括号,因为JS中数组使用中括号,eval能够识别到中括号是数组

<script type="text/javascript">
			
			
			//json格式的字符串
			var jsonStr = "[{'name':'Java从入门到精通','price':100},{'name':'MySQL从删库到跑路','price':200}]";
			
			//将json格式的字符串转换为js数组
			var jsArr = eval(jsonStr);
			
			for(var i = 0;i<jsArr.length;i++){
				var jsObj = jsArr[i];
				alert(jsObj.name + " -- " + jsObj.price);
			}
			
		</script>
js对象、js数组→ json字符串
stringify()
<script type="text/javascript">
			//js对象
			var book = new Object();
			book.name = "Java从入门到精通";
			book.price = 100;
			
			//将js对象转json格式的字符串
			var jsonStr = JSON.stringify(book);
			
			alert(jsonStr);
			
		</script>
	<script type="text/javascript">
			//js对象
			var book1 = new Object();
			book1.name = "Java从入门到精通";
			book1.price = 100;
			
			var book2 = new Object();
			book2.name = "MySQL从删库到跑路";
			book2.price = 200;
			
			//js数组
			var jsArr = [book1,book2];
			
			//将js数组转json格式的字符串
			var jsonStr = JSON.stringify(jsArr);
			
			alert(jsonStr);
			
		</script>

2.Java中处理JSON

如果使用逻辑或Java原生解析类去解析JSON是非常麻烦的

项目中大多数会使用FastJSON和Jackson来操作JSON

FastJSON

概念

FastJson:阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,使用此框架必须在项目中导入框架包(fastjson-1.1.33.jar)

FastJson对于json格式字符串的解析主要用到了下面三个类:

  1. JSON:FastJSON的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换
  2. JSONObject:FastJSON提供的json对象
  3. JSONArray:FastJSON提供json数组对象
特点
  1. FastJson速度快,无论序列化和反序列化,都是当之无愧的fast
  2. 功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
  3. 零依赖(没有依赖其它任何类库)
导jar包
java对象→ json字符串

toJSONString()

 @Test
    public void test01(){
        //Java对象
        Book book = new Book("Java从入门到精通", 100, new Author("奇男子", "从事Java开发20年"));

        //Java对象转JSON格式的字符串
        String jsonStr = JSON.toJSONString(book);

        //{"author":{"info":"从事Java开发20年","name":"奇男子"},"name":"Java从入门到精通","price":100}
        System.out.println(jsonStr);
    }
    
    
输出:{"author":{"info":"从事Java20年","name":"奇男子"},"name":"Java从入门到精通","price":100}
+过滤器toJSONString( book, new PropertyFilter());
    @Test
    public void test02(){
        //Java对象
        Book book = new Book("Java从入门到精通", 100, new Author("奇男子", "从事Java开发20年"));

        //Java对象转JSON格式的字符串 -- 过滤author对象里的name属性
        //思考题:研究toJSONString的底层逻辑
        String jsonStr = JSON.toJSONString(book, new PropertyFilter() {
            @Override
            public boolean apply(Object o, String s, Object o1) {
                if(o.getClass() == Author.class && s.equals("name")){
                    return false;
                }
                return true;
            }
        });

        System.out.println(jsonStr);
    }
    
输出:{"author":{"info":"从事Java20年"},"name":"Java从入门到精通","price":100}
json字符串→ java对象
parseObject(jsonStr, Book.class)
    @Test
    public void test01(){

        //JSON格式的字符串
        String jsonStr = "{\"author\":{\"info\":\"从事Java开发20年\",\"name\":\"奇男子\"},\"name\":\"Java从入门到精通\",\"price\":100}";

        Book book = JSON.parseObject(jsonStr, Book.class);

        System.out.println(book);
    }
输出:Book{name='Java从入门到精通', price=100.0, author=Author{name='奇男子', info='从事Java开发20年'}}
java数组、集合→ json字符串

注意:在相互转换过程中需要注意数据的格式

将java数组 转换为 json格式的字符串

JSON.toJSONString(books)

将Collection集合 转换为 json格式的字符串

JSON.toJSONString(list);

将Map集合 转换为json格式的字符串

JSON.toJSONString(map);

public class Test03 {

    @Test
    public void test01(){
        //将java数组 转换为 json格式的字符串

        //数组
        Book book1 = new Book("Java从入门到精通", 100, new Author("奇男子", "从事Java开发20年"));
        Book book2 = new Book("MySQL从删库到跑路", 200, new Author("小小", "专业删库跑路"));
        Book[] books = {book1,book2};

        //将java数组 转换为 json格式的字符串
        String jsonStr = JSON.toJSONString(books);

        //[{"author":{"info":"从事Java开发20年","name":"奇男子"},"name":"Java从入门到精通","price":100},{"author":{"info":"专业删库跑路","name":"小小"},"name":"MySQL从删库到跑路","price":200}]
        System.out.println(jsonStr);
    }

    @Test
    public void test02(){
        //将Collection集合 转换为 json格式的字符串

        //Collection集合
        Book book1 = new Book("Java从入门到精通", 100, new Author("奇男子", "从事Java开发20年"));
        Book book2 = new Book("MySQL从删库到跑路", 200, new Author("小小", "专业删库跑路"));
        List<Book> list = Arrays.asList(book1, book2);

        //将Collection集合 转换为 json格式的字符串
        String jsonStr = JSON.toJSONString(list);

        //[{"author":{"info":"从事Java开发20年","name":"奇男子"},"name":"Java从入门到精通","price":100},{"author":{"info":"专业删库跑路","name":"小小"},"name":"MySQL从删库到跑路","price":200}]
        System.out.println(jsonStr);
    }

    @Test
    public void test03(){
        //将Map集合 转换为json格式的字符串

        //Map集合
        Book book1 = new Book("Java从入门到精通", 100, new Author("奇男子", "从事Java开发20年"));
        Book book2 = new Book("MySQL从删库到跑路", 200, new Author("小小", "专业删库跑路"));
        HashMap<String, Book> map = new HashMap<>();
        map.put("001",book1);
        map.put("002",book2);

        //将Map集合 转换为json格式的字符串
        String jsonStr = JSON.toJSONString(map);

        //{"001":{"author":{"info":"从事Java开发20年","name":"奇男子"},"name":"Java从入门到精通","price":100},"002":{"author":{"info":"专业删库跑路","name":"小小"},"name":"MySQL从删库到跑路","price":200}}
        System.out.println(jsonStr);
    }
}
json字符串→ java数组、集合

将json格式的字符串 转换为 java数组

​ 1.将json格式的字符串转换为JSONArray对象

​ JSONArray.parseArray(jsonStr);

​ 2.获取指定类型的对象遍历存入数组

​ jsonArray.getObject(i, Book.class);

将json格式的字符串 转换为 Collection集合

JSONArray.parseArray(jsonStr, Book.class);

将json格式的字符串 转换为 Map集合

Map<String,Book> map = (Map<String, Book>) JSONArray.parse(jsonStr);

public class Test04 {

    @Test
    public void test01(){
        //将json格式的字符串 转换为 java数组

        //json格式的字符串
        String jsonStr = "[{\"author\":{\"info\":\"从事Java开发20年\",\"name\":\"奇男子\"},\"name\":\"Java从入门到精通\",\"price\":100},{\"author\":{\"info\":\"专业删库跑路\",\"name\":\"小小\"},\"name\":\"MySQL从删库到跑路\",\"price\":200}]";

        //将json格式的字符串转换为JSONArray对象
        JSONArray jsonArray = JSONArray.parseArray(jsonStr);

        Book[] books = new Book[jsonArray.size()];
        for (int i = 0;i<jsonArray.size();i++){
            Book book = jsonArray.getObject(i, Book.class);
            books[i] = book;
        }

        for (Book book : books) {
            System.out.println(book);
        }
    }

    @Test
    public void test02(){
        //将json格式的字符串 转换为 Collection集合

        //json格式的字符串
        String jsonStr = "[{\"author\":{\"info\":\"从事Java开发20年\",\"name\":\"奇男子\"},\"name\":\"Java从入门到精通\",\"price\":100},{\"author\":{\"info\":\"专业删库跑路\",\"name\":\"小小\"},\"name\":\"MySQL从删库到跑路\",\"price\":200}]";

        //将json格式的字符串 转换为 Collection集合
        List<Book> books = JSONArray.parseArray(jsonStr, Book.class);
        for (Book book : books) {
            System.out.println(book);
        }
    }

    @Test
    public void test03(){
        //将json格式的字符串 转换为 Map集合

        //json格式的字符串
        String jsonStr = "{\"001\":{\"author\":{\"info\":\"从事Java开发20年\",\"name\":\"奇男子\"},\"name\":\"Java从入门到精通\",\"price\":100},\"002\":{\"author\":{\"info\":\"专业删库跑路\",\"name\":\"小小\"},\"name\":\"MySQL从删库到跑路\",\"price\":200}}";

        //将json格式的字符串 转换为 Map集合
        Map<String,Book> map = (Map<String, Book>) JSONArray.parse(jsonStr);
        Set<Map.Entry<String, Book>> entries = map.entrySet();
        for (Map.Entry<String, Book> entry : entries) {
            System.out.println(entry);
        }
    }
}

Jackson

概念

Jackson框架是基于Java平台的一套数据处理工具

解析JSON,依赖jackon的三个核心类库:
jackson-core-2.9.8.jar

​ jackson-annotations-2.9.8.jar

​ jackson-databind-2.9.8.jar

特点

使用注解,让JSON解析更加灵活

java对象、集合 → JSON字符串
public class Test01 {
	@Test
	public void test01() throws JsonProcessingException{
		//将对象转换为JSON字符串
		Book book = new Book("Java从入门到精通",100,new Author("吴彦祖","从事java20年"));
		
		//使用ObjectMapper来转化对象为JSON字符串
		ObjectMapper mapper = new ObjectMapper();
		// 配置mapper忽略空属性
		mapper.setSerializationInclusion(Include.NON_EMPTY);
		//将对象转换为JSON字符串
		String jsonStr = mapper.writeValueAsString(book);
		
		System.out.println(jsonStr);
	}
	
	@Test
	public void test02() throws JsonProcessingException{
		//将集合转换为JSON字符串
		Book book1 = new Book("Java从入门到精通",100,new Author("奇男子","从事java20年"));
		Book book2 = new Book("论演技的重要性", 30, new Author("小小", "从事电影事业13年"));
		List<Book> list = new ArrayList<>();
		list.add(book1);
		list.add(book2);
		
		//使用ObjectMapper来转化对象为JSON字符串
		ObjectMapper mapper = new ObjectMapper();
		// 配置mapper忽略空属性
		mapper.setSerializationInclusion(Include.NON_EMPTY);
		//将对象转换为JSON字符串
		String jsonStr = mapper.writeValueAsString(list);
		
		System.out.println(jsonStr);
	}
}
JSON字符串 → java对象、集合
public class Test02 {
	@Test
	public void test01() throws IOException{
		//json字符串对象->对象
		String jsonStr = "{\"name\":\"Java从入门到精通\",\"price\":100.0,\"author\":{\"name\":\"奇男子\",\"info\":\"从事java20年\"}}";

		//ObjectMapper类用序列化与反序列化映射器
		ObjectMapper mapper = new ObjectMapper();

		//当反序列化JSON时,未知属性会引起的反序列化被打断,这里我们禁用未知属性打断反序列化功能,
		//例如:JSON字符串里有10个属性,而我们的bean中只定义了2个属性,其它8个属性将被忽略
		mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

		Book book = mapper.readValue(jsonStr, Book.class);
		System.out.println(book);
	}

	@Test
	public void test02() throws IOException{
		//json字符串->数组
		String jsonStr = "[{\"author\":{\"info\":\"从事java20年\",\"name\":\"奇男子\"},\"name\":\"Java从入门到精通\",\"price\":100},{\"author\":{\"info\":\"从事电影事业13年\",\"name\":\"小小\"},\"name\":\"论演技的重要性\",\"price\":30}]";
        
		ObjectMapper mapper = new ObjectMapper();

		mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

		List<Book> list = mapper.readValue(jsonStr, new TypeReference<List<Book>>() {});
		for (Book book : list) {
			System.out.println(book);
		}
	}
}
Jackson注解
public class Test01 {
	@Test
	public void test01() throws JsonProcessingException{
		//将对象转换为JSON字符串
		
		Book book = new Book("Java从入门到精通",100,new Author("奇男子","从事java20年"));
		
		//ObjectMapper类用序列化与反序列化映射器
		ObjectMapper mapper = new ObjectMapper();
		// 配置mapper忽略空属性
		mapper.setSerializationInclusion(Include.NON_EMPTY);
		//将对象转换为JSON字符串
		String jsonStr = mapper.writeValueAsString(book);
		
		System.out.println(jsonStr);
	}
	
	@Test
	public void test02() throws IOException{
		//json字符串对象->对象
		String jsonStr = "{\"bookName\":\"Java从入门到精通\",\"price\":100.0,\"author\":{\"name\":\"奇男子\",\"info\":\"从事java20年\"}}";

		ObjectMapper mapper = new ObjectMapper();

		mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

		Book book = mapper.readValue(jsonStr, Book.class);
		System.out.println(book);
	}
}

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

public class Book {
	
    
	@JsonProperty("bookName")//java属性name序列化到JSON字段的名称为bookName
	private String name;
	
	@JsonIgnore//在序列化与反序列化时,忽略price属性
	private double price;
	private Author author;
	
	@JsonCreator//指定JSON反序列化创建Book对象时调用此构造函数
	public Book() {
	}

	public Book(String name, double price,Author author) {
		System.out.println("xxx");//测试是否调用输出
		this.name = name;
		this.price = price;
		this.author = author;
	}

	public Book(String name, double price) {
		this.name = name;
		this.price = price;
	}
...
}

补充:Java中的bean

概念:

Java中的bean是一种遵循特定约定的类,用于数据传输、持久化、业务逻辑和视图模型等。

特点:

  • 无状态:bean通常不依赖于外部状态,这使得它们可以在多个线程或请求中重复使用。
  • 可序列化:bean可以轻松地保存和加载,这对于数据持久化和网络传输非常有用。
  • 遵守JavaBean规范:包括属性、方法和事件的规范,这些规范使得bean易于理解和使用。

优点:

它们提供了代码的可复用性、易于维护和跨平台兼容性的优点。‌

应用场景:

Java中的bean主要用于数据传输、持久化、业务逻辑和视图模型等方面。它们提供了一种方式来封装和复用代码,使得开发人员可以更容易地构建和维护应用程序。

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

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

相关文章

封装一个细粒度的限流器

文章目录 原因限流对象限流后的做法怎么确定限流阈值观测业务性能数据压测借鉴链路上的其他服务手动计算 四种静态限流算法令牌桶漏桶固定窗口与滑动窗口 手写限流算法令牌桶漏桶固定窗口滑动窗口 分布式限流的具体实现 原因 尽管云原生网关里有统一入口的限流&#xff08;根据…

股指期货套期保值中的展期管理有哪些?

在复杂的金融市场环境中&#xff0c;展期作为一种重要的风险管理工具&#xff0c;被广泛应用于期货交易中&#xff0c;特别是当投资者需要对长期资产进行套期保值时。展期的核心思想在于&#xff0c;通过连续替换高流动性的近月期货合约来替代流动性较差的远月合约&#xff0c;…

untiy有渲染线程和逻辑线程嘛

之前我也这么认为&#xff0c;其实unity引擎是单线程的&#xff0c;当然后续的jobs不在考虑范围内 如果你在一个awake 或者 start方法中 延时&#xff0c;是会卡住主线程的 比如 其实游戏引擎有一个基础简单理解&#xff0c;那就是不断的进行一个循环&#xff0c;在这个周期循…

网络分段如何增强 OT 网络的可见性

防火墙在保护运营技术(OT) 网络和系统方面发挥什么作用&#xff1f; 很多人会说&#xff0c;防火墙是一种防御机制&#xff0c;用于保护该环境免受 IT 和外界的影响。对于负责该关键系统正常运行的操作员来说&#xff0c;防火墙是阻止他人进入的外围保护。它也是需要从 OT 系统…

Unity Render Streaming项目实践经验

UnityRenderStreaming项目 项目github地址见上,我使用项目的3.1.0-exp.7版本、Unity 2023.1.0版本、windows11运行。 1下载项目包 2在Unity Hub中打开RenderStreaming~文件夹 3在package manager中导入com.unity.renderstreaming package 因为已经下载过了就选择install pa…

Linux shell编程学习笔记71: sort 命令——构造有序世界

0 前言 在大数据时代&#xff0c;我们面对和使用大量数据&#xff0c;如果数据是有序的&#xff0c;无疑是有益的。 在Linux中&#xff0c;我们可以使用 sort 命令来构造一个有序的空间。 1 sort命令 的功能、格式和选项说明 我们可以使用命令sort --help来获取帮助信息。 …

Spark MLlib 特征工程(下)

Spark MLlib 特征工程(下) 前面我们提到&#xff0c;典型的特征工程包含如下几个环节&#xff0c;即预处理、特征选择、归一化、离散化、Embedding 和向量计算&#xff0c;如下图所示。 在上一讲&#xff0c;我们着重讲解了其中的前 3 个环节&#xff0c;也就是预处理、特征选…

Memecoin的火爆与AMM在Solana上的主导地位

随着Solana区块链的高速发展&#xff0c;尤其是近年来Memecoin市场的崛起&#xff0c;AMM&#xff08;自动做市商&#xff09;逐渐成为Solana去中心化交易所&#xff08;DEX&#xff09;的主导交易模式。尽管Solana以其高效性能能够支持每秒数千笔交易&#xff0c;足以让中心化…

【C语言篇】深入理解指针3(附转移表源码)

文章目录 数组指针什么是数组指针数组指针变量的初始化 二维数组传参的本质函数指针函数指针变量的创建函数指针变量的使用 两端有趣的代码typedef 关键字 函数指针数组转移表写在最后 数组指针 什么是数组指针 在【C语言篇】深入理解指针2我们学习了指针数组&#xff0c;指针…

Qt项目【上位机十字屏开发】

效果图 说明 重写 QWidget 中的 paintEvent() 处理绘图事件&#xff0c;废话不多说&#xff0c;上代码 源码 #ifndef MYWIDGETFORM_H #define MYWIDGETFORM_H#include <QWidget>namespace Ui { class myWidgetForm; }enum MYTYPE{SIZEWIDTH,SIZEHEIGHT,TOPWIDTH,TOPHE…

XMind在软件需求分析中编写测试用例的应用技巧

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言 在软件需求分析中&#xff0c;编写测试用例是确保软件质量的重要环节。之前很多同学都是用Excel&#xff0c;但是XMind作为一款功能强大的思维导图工具&#xff0c;可以在需求分析阶段帮助测试人员系统地设计和组织测试用…

报错解决——苹果电脑mac装windows10,总是提示“启动转换”安装失败:拷贝Windows安装文件时出错

报错原因&#xff1a; 所安装的镜像文件大于4GB。 解决办法一&#xff1a; 使用小于4GB的镜像文件。 参考文章&#xff1a; 安装小于4GB的windows系统镜像 小于4GB的windows10镜像下载&#xff1a; 系统库官网 解决办法二&#xff1a; 参考文章&#xff1a; Mac air装…

如何利用Maven命令使得本地 .jar 文件安装到本地仓库中,以供其他项目通过 Maven 依赖引用

文件夹打包 例如此时我的文件夹example当中有两个class文件 复制文件夹路径 cmd运行命令&#xff1a;jar cvf nation.jar -C 你的文件夹路径 . 以我的举例&#xff1a; 这样就完成了打包 导入仓库 先找到jar文件的位置&#xff0c;复制路径 并且确定自己有安装好maven命…

【概率统计】三扇门游戏(蒙提霍尔问题)

三扇门游戏 两种答案2/3的重选正确率1/2的重选正确率 正确答案 也称为蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;&#xff1a; 有三扇门&#xff0c;其中只有一扇是正确的门&#xff0c;打开后将能获得一辆豪车。另外两扇门是错误选项&#xff0c;门内只有山羊。…

模板——从初级到进阶

目录 前言&#xff1a; 一、非类型模板参数 二、模板的特化 2.1 函数模板特化 2.2 类模板特化 2.2.1 全特化 2.2.2 偏特化 三、模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 四、模板总结 前言&#xff1a; 我们前面已经对初阶模板有了比较深刻的了解&#xff…

鸿蒙前端开发——工具安装与项目创建

工具安装 DevEco Studio https://developer.huawei.com/consumer/cn/ 直接下一步。 创建空项目 双击进入 空项目如下&#xff1a; 点击previewer进行预览 备用地址下载

十、OpenCVSharp 中的图像的几何变换

文章目录 简介一、平移1. 平移向量的定义和计算2. 平移操作的矩阵表示二、旋转1. 旋转角度的表示和计算2. 旋转中心的选择3. 旋转矩阵的推导和应用三、缩放1. 缩放因子的确定2. 缩放操作的数学模型3. 缩放过程中的图像插值方法(如最近邻插值、双线性插值、双三次插值)四、仿射…

Qt连接Postgres数据库

数据库相关代码可以看我这篇文章&#xff0c;今天要说的是驱动问题&#xff0c;网上很多说将Postgres/bin目录下的某些.dll文件拷贝到运行目录&#xff0c;实际测试的时候发现&#xff0c;还是加载不了驱动。 后来发现postgres可以直接下载相关的驱动依赖&#xff0c;将流程分…

计算机三级嵌入式笔记(五)——嵌入式系统的开发

目录 考点1 嵌入式系统的开发过程 考点2 嵌入式系统的开发平台与工具 考点3 嵌入式系统的调试 考点4 ADS1.2 工具软件 考点5 RVDS 考点6 GNU 考点7 基于嵌入式 Web 服务器的应用设计 23考纲 考点1 嵌入式系统的开发过程 (1)嵌入式系统的开发过程可以划分为系统需求分析与…

Golang | Leetcode Golang题解之第334题递增的三元子序列

题目&#xff1a; 题解&#xff1a; func increasingTriplet(nums []int) bool {n : len(nums)if n < 3 {return false}first, second : nums[0], math.MaxInt32for i : 1; i < n; i {num : nums[i]if num > second {return true} else if num > first {second n…