Java奠基】对象数组练习

news2024/11/26 4:54:59

目录

商品对象信息获取

商品对象信息输入

商品对象信息计算

商品对象信息统计

学生数据管理实现


商品对象信息获取

题目要求是这样的:

定义数组存储3个商品对象。

商品的属性:商品的id,名字,价格,库存。

创建三个商品对象,并把商品对象存入到数组当中。

创建Goods类封装商品信息类管理商品数据,里面有商品的私有信息,以及获取和设置成员变量的值的方法,通过调用Goods对象中的方法来对数据进行增删改查操作:

public class Goods {
    private String id;
    private String name;
    private double price;
    private int count;
    // 创建构造函数
    public Goods(String id, String name, double price, int count) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.count = count;
    }
    // 创建getter和setter
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public double getPrice() { return price; }
    public void setPrice(double price) { this.price = price; }
    public int getCount() { return count; }
    public void setCount(int count) { this.count = count; }
}

新创建一个Java类,这个类包含了一个main()方法,该方法用于测试Goods类的功能。在 main()方法中,首先创建了一个 Goods 类型的数组 arr,并且创建了三个 Goods 对象 g1、g2 和 g3,分别表示三种手机商品。然后,将这三个商品对象添加到数组中。最后,通过循环遍历数组,输出每个商品对象的信息(id、name、price、count):

public class GoodsTest {
    public static void main(String[] args) {
        // 创建一个数组
        Goods[] arr = new Goods[3];
        // 创建三个商品对象
        Goods g1 = new Goods("001", "华为手机", 8000, 5);
        Goods g2 = new Goods("002", "苹果手机", 11000.0, 7);
        Goods g3 = new Goods("003", "安卓手机", 6000.9, 1);
        // 将商品添加到数组当中
        arr[0] = g1;
        arr[1] = g2;
        arr[2] = g3;
        // 遍历数组
        for (int i = 0; i < arr.length; i++) {
            Goods goods = arr[i];
            System.out.println(goods.getId()+", "+goods.getName()+", "+goods.getPrice()+", "+goods.getCount());
        }
    }
}

最终呈现的效果如下:

商品对象信息输入

题目要求是这样的:

定义数组存储3部汽车对象。

汽车的属性:品牌,价格,颜色。

创建三个汽车对象,数据通过键盘录入而来,并把数据存入到数组当中。

创建Car类封装汽车信息类管理汽车数据,里面有汽车的私有信息,以及获取和设置成员变量的值的方法,通过调用Car对象中的方法来对数据进行增删改查操作:

public class Car {
    private String brand;
    private int price;
    private String color;
    // 创建构造函数
    public Car() {}
    public Car(String brand, int price, String color) {
        this.brand = brand;
        this.price = price;
        this.color = color;
    }
    // 创建getter和setter方法
    public String getBrand() { return brand; }
    public void setBrand(String brand) { this.brand = brand; }
    public int getPrice() { return price; }
    public void setPrice(int price) { this.price = price; }
    public String getColor() { return color; }
    public void setColor(String color) { this.color = color; }
}

创建了一个名为CarTest的Java类。这个类用于测试Car类的功能。首先创建了一个 Car 类型的数组 arr,用来存储三个汽车对象。然后使用 Scanner 类从键盘输入汽车的品牌、价格和颜色,并将这些信息设置到每个汽车对象中。接着,将每个汽车对象添加到数组中。最后,通过循环遍历数组,输出每个汽车对象的品牌、价格和颜色。

import java.util.Scanner;

public class CarTest {
    public static void main(String[] args) {
        // 创建一个数组用来存储3个汽车对象
        Car[] arr = new Car[3];
        // 创建汽车对象,数据键盘录入
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            // 创建空的汽车对象
            Car c = new Car();
            // 录入品牌
            System.out.println("请输入汽车的品牌");
            String brand = sc.next();
            c.setBrand(brand); // 间键盘录入的数据写入
            // 录入价格
            System.out.println("请输入汽车的价格");
            int price = sc.nextInt();
            c.setPrice(price);
            // 录入颜色
            System.out.println("请输入汽车的颜色");
            String color = sc.next();
            c.setColor(color);
            // 把汽车对象添加到数组中
            arr[i] = c;
        }
        // 遍历数组
        for (int i = 0; i < arr.length; i++) {
            Car car = arr[i];
            System.out.println(car.getBrand()+", "+car.getPrice()+", "+car.getColor());
        }
    }
}

最终呈现的效果如下:

商品对象信息计算

题目要求是这样的:

定义数组存储3部手机对象。

手机的属性:品牌,价格,颜色。

要求计算出三部手机的平均价格。

创建Phone类封装手机信息类管理手机数据,里面有手机的私有信息,以及获取和设置成员变量的值的方法,通过调用Phone对象中的方法来对数据进行增删改查操作:

public class Phone {
    private String brand;
    private int price;
    private String color;
    // 创建构造函数
    public Phone() {}
    public Phone(String brand, int price, String color) {
        this.brand = brand;
        this.price = price;
        this.color = color;
    }
    // 创建getter和setter方法
    public String getBrand() { return brand; }
    public void setBrand(String brand) { this.brand = brand; }
    public int getPrice() { return price; }
    public void setPrice(int price) { this.price = price; }
    public String getColor() { return color; }
    public void setColor(String color) { this.color = color; }
}

创建了一个名为 PhoneTest 的 Java 类。这个类用于测试 Phone 类的功能。在 main() 方法中,首先创建了一个 Phone 类型的数组 arr,用来存储三个手机对象。然后,通过使用 Phone 类的构造函数,创建了三个手机对象,并分别设置了品牌、价格和颜色。

接下来,将每个手机对象添加到数组中的对应位置。然后,通过循环遍历数组,计算所有手机的总价格,并将结果保存在变量 sum 中。最后,计算手机价格的平均值,并输出结果。

public class PhoneTest {
    public static void main(String[] args) {
        // 创建一个数组
        Phone[] arr = new Phone[3];
        // 创建手机对象
        Phone p1 = new Phone("小米", 4900, "黑色");
        Phone p2 = new Phone("苹果", 7900, "白色");
        Phone p3 = new Phone("华为", 4200, "蓝色");
        // 将手机对象添加到数组当中
        arr[0] = p1;
        arr[1] = p2;
        arr[2] = p3;
        // 获取三部手机的总价格
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            Phone phone = arr[i];
            sum+= phone.getPrice();
        }
        // 获取平均值
        int avg = sum / arr.length;
        System.out.println(avg);
    }
}

最终呈现的效果如下:

商品对象信息统计

定义数组存储4个电脑的对象

电脑的属性:品牌、价格、颜色、种类

要求1:计算出4个电脑的平均价格

要求2:统计价格比平均值低的电脑有几个?并把它们的所有信息打印出来。

创建Computer类封装电脑信息类管理电脑数据,里面有电脑的私有信息,以及获取和设置成员变量的值的方法,通过调用Computer对象中的方法来对数据进行增删改查操作:

public class Computer {
    private String brand; // 品牌
    private double price; // 价格
    private String color; // 颜色
    private String type; // 种类

    public Computer() {
    }

    public Computer(String brand, double price, String color, String type) {
        this.brand = brand;
        this.price = price;
        this.color = color;
        this.type = type;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

下面这段代码主要展示了面向对象编程中类和对象的使用,以及数组的操作和循环遍历的应用。通过这个例子可以更好地理解 Java 中的类和对象的概念,以及如何进行简单的数据处理和统计分析:

public class ComputerTest {
    public static void main(String[] args) {
        // 定义数组存入电脑对象
        Computer[] arr = new Computer[4];
        // 创建电脑对象
        Computer cp1 = new Computer("戴尔", 4900.0, "白色", "笔记本");
        Computer cp2 = new Computer("神舟", 8200.0, "蓝色色", "台式");
        Computer cp3 = new Computer("联想", 6900.0, "黑色", "笔记本");
        Computer cp4 = new Computer("机器人", 3900.0, "红色", "台式");
        // 把对象添加到数组中
        arr[0] = cp1;
        arr[1] = cp2;
        arr[2] = cp3;
        arr[3] = cp4;
        // 求和
        double sum = 0;
        for (int i = 0; i < arr.length; i++) {
            Computer cp = arr[i];
            sum += cp.getPrice();
        }
        System.out.println("求和值为:"+ sum);
        // 平均值
        double avg = sum / arr.length;
        System.out.println("平均值为:"+ avg);
        // 统计价格比平均值低的有几个,并打印其信息
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            Computer cp = arr[i];
            if(cp.getPrice()<avg){
                System.out.println(cp.getBrand()+", "+cp.getPrice()+", "+cp.getColor()+", "+cp.getType());
                count++;
            }
        }
        System.out.println("低于平均价格的数量为:"+ count);
    }
}

最终呈现的效果如下:

学生数据管理实现

定义数组存储4个电脑的对象

定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同,学生的属性:学号,姓名,年龄。

要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。

要求2:添加完毕之后,遍历所有学生信息。

要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。

要求4:删除完毕之后,遍历所有学生信息。

要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁

创建Students类封装学生信息类管理学生数据,里面有学生的私有信息,以及获取和设置成员变量的值的方法,通过调用Students对象中的方法来对数据进行增删改查操作:

public class Students {
    private int id;
    private String name;
    private int age;

    public Students() {
    }

    public Students(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

下面这段代码实现了对一个学生对象数组的增、删、改、查操作,具体实现思路如下:

1)创建一个存储学生对象的数组,长度为3:

Students[] arr = new Students[3];

2)创建三个学生对象,将它们添加到数组中:

Students stu1 = new Students(1,"zhangsan",20);
Students stu2 = new Students(2,"lisi",35);
Students stu3 = new Students(3,"wangwu",10);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;

3)添加一个新学生对象,并进行学号的唯一性判断:

Students stu4 = new Students(4,"xiaoming",15);
boolean flag = contains(arr, stu4.getId());
if (flag) {
    System.out.println("当前id值重复,请修改id后再进行添加");
} else {
    // 执行添加操作
}

4)如果数组已满,则创建一个新数组,否则直接在原数组上添加

if(count == arr.length){
    Students[] newArr = createNewArr(arr);
    newArr[count] = stu4;
    printArr(newArr);
} else {
    arr[count] = stu4;
    printArr(arr);
}

5)通过学号删除一个学生对象,先找到该学生在数组中的位置,然后将其删除:

int index = getIdIndex(newArr, 4);
if (index >= 0) {
    if (arr.length < index){
        arr[index] = null;
        printArr(arr);
    }else {
        newArr[index] = null;
        printArr(newArr);
    }
} else {
    System.out.println("当前的id不存在,删除失败");
}

6)修改一个学生对象的年龄,先找到该学生在数组中的位置,然后将其年龄加1:

int index1 = getIdIndex(newArr, 2);
if (index1>0){
    Students stu = arr[index1];
    int newAge = stu.getAge() + 1;
    stu.setAge(newAge);
    printArr(newArr);
}else {
    System.out.println("当前的id不存在,修改失败");
}

还有其他辅助方法包括:打印数组元素、创建新数组、获取数组元素个数、判断学号是否重复等。总体思路是基于一个学生数组对象进行操作,对其增删改查等多个操作都需要先找到该学生在数组中的索引位置,然后再进行相关操作。同时还需要注意学号唯一性等问题,具体代码如下:

public class StudentsTest {
    public static void main(String[] args) {
        // 创建一个数组用来存储学生对象
        Students[] arr = new Students[3];
        // 创建学生对象并添加到数组当中
        Students stu1 = new Students(1,"zhangsan",20);
        Students stu2 = new Students(2,"lisi",35);
        Students stu3 = new Students(3,"wangwu",10);
        // 把学生对象添加到数组当中
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;
        // 再次添加一个学生对象,并在添加的时候进行学号的唯一性判断
        Students stu4 = new Students(4,"xiaoming",15);
        // 唯一性判断
        boolean flag = contains(arr, stu4.getId());
        Students[] newArr = createNewArr(arr);
        if (flag) {
            // 数组元素已存在,不用添加
            System.out.println("当前id值重复,请修改id后再进行添加");
        }else {
            // 数组元素不存在,可以把学生对象添加进数组中
            int count = getCount(arr);
            if(count == arr.length){
                // 数组长度已经存满,创建一个新数组,长度=老数组的长度+1,然后把老数组的元素拷贝到新数组当中
                newArr[count] = stu4;
                // 添加完毕之后,遍历所有的学生信息
                System.out.println("-----当前原数组元素为------");
                printArr(newArr);

            } else {
                // 数组长度没有存满,假设数组已经存了两个 [stu1, stu2, null]
                // getCount获取到的是2,表示数组当中已经有了2个元素,如果下一次要添加数据,就是添加到数组长度的位置,即2索引,值就是count
                arr[count] = stu4;
                // 添加完毕之后,遍历所有的学生信息
                printArr(arr);
                System.out.println("-----当前原数组元素为------");
            }
        }
        // 通过id删除学生信息
        int index = getIdIndex(newArr, 4);
        if (index >= 0) {
            System.out.println("-----删除完数组某元素为------");
            if (arr.length < index){
                arr[index] = null;
                printArr(arr);
            }else {
                newArr[index] = null;
                printArr(newArr);
            }
        }else {
            // 如果不存在,则表示删除失败
            System.out.println("当前的id不存在,删除失败");
        }
        // 查询数组id为2的学生,如果存在则将他的年龄+1
        int index1 = getIdIndex(newArr, 2);
        if (index1>0){
            // 存在
            System.out.println("-----修改年龄后数组元素为------");
            Students stu = arr[index1];
            int newAge = stu.getAge() + 1;
            stu.setAge(newAge);
            printArr(newArr);
        } else {
            // 不存在直接显示
            System.out.println("当前的id不存在,修改失败");
        }
    }
    // 找到id在数组当中的索引
    public static int getIdIndex(Students[] arr, int id) {
        for (int i = 0; i < arr.length; i++) {
            // 依次得到每一个学生对象
            Students stu = arr[i];
            // 对stu进行一个非空判断
            if (stu != null) {
                int sid = stu.getId();
                if(sid == id){
                    return i;
                }
            }
        }
        return -1;
    }
    // 打印数组元素
    public static void printArr(Students[] arr) {
        for (int i = 0; i < arr.length; i++) {
            Students stu = arr[i];
            if (stu != null) {
                System.out.println(stu.getId()+", "+stu.getName()+", "+stu.getAge());
            }
        }
    }
    // 创建新数组用于添加新元素
    public static Students[] createNewArr(Students[] arr) {
        Students[] newArr = new Students[arr.length + 1];
        // 循环遍历老数组中的元素
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i];
        }
        // 把新数组返回
        return newArr;
    }
    // 定义一个方法判断数组中已经存在了几个元素
    public static int getCount(Students[] arr) {
        // 统计变量
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != null){
                count++;
            }
        }
        // 返回数组元素个数
        return count;
    }
    // 添加新数据到数组中进行学号的唯一性判断
    public static boolean contains(Students[] arr, int id) {
        // 依次获取到数组里面的每一个学生对象
        for (int i = 0; i < arr.length; i++) {
            // 依次获取到数组里面的每一个学生对象
            Students stu = arr[i];
            if (stu != null){
                // 获取数组中学生对象的id
                int sid = stu.getId();
                // 比较
                if (sid == id) {
                    return true;
                }
            }
        }
        // 当循环结束之后,没有找到id那么就表示数组中要查找的id是不存在的
        return false;
    }
}

得到的结果如下:

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

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

相关文章

Pytorch卷积层原理和示例 nn.Conv1d卷积 nn.Conv2d卷积

内容列表 一&#xff0c;前提 二&#xff0c;卷积层原理 1.概念 2.作用 3. 卷积过程 三&#xff0c;nn.conv1d 1&#xff0c;函数定义&#xff1a; 2, 参数说明: 3,代码: 4, 分析计算过程 四&#xff0c;nn.conv2d 1, 函数定义 2, 参数&#xff1a; 3, 代码 4, 分析计算过程 …

Netty应用(七) 之 Handler Netty服务端编程总结

目录 15.Handler 15.1 handler的分类 15.1.1 按照方向划分 15.1.2 handler的结构 15.2 输入方向ChannelInboundHandlerAdapter 15.2.1 输出方向Handler的顺序 15.2.2 多个输入方向Handler之间的数据传递 15.2.2.1 handler消失了 15.2.2.2 手动编写netty提供的new Strin…

一个查看armv8系统寄存器-值-含义的方式

找到解压后的SysReg_xml_v86A-2019-12目录 wget https://developer.arm.com/-/media/developer/products/architecture/armv8-a-architecture/2019-12/SysReg_xml_v86A-2019-12.tar.gz wget https://developer.arm.com/-/media/developer/products/architecture/armv8-a-archi…

(已解决)将overleaf上的文章paper上传到arxiv上遇到的问题。

文章目录 前言初级问题后续问题 前言 首先说一点&#xff0c;将paper的pdf文件直接上传arxiv是不行的&#xff0c;arxiv要求我们要上传源文件&#xff0c;所以才这么麻烦。 初级问题 首先上传文件之后有可能会在下面这个界面出现问题&#xff0c;这里一般都比较常见的问题&a…

『运维备忘录』之 HTTP 响应状态码速查

运维人员不仅要熟悉操作系统、服务器、网络等只是&#xff0c;甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作&#xff0c;持续给大家更新运维工作所需要接触到的知识点&#xff0c;希望大…

java学习07---综合练习

飞机票 1.需求: 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格&#xff1a;旺季&#xff08;5-10月&#xff09;头等舱9折&#xff0c;经济舱8.5折&#xff0c;淡季&#xff08;11月到来年4月&#xff09;头等舱7…

[C#] 如何使用ScottPlot.WPF在WPF桌面程序中绘制图表

什么是ScottPlot.WPF&#xff1f; ScottPlot.WPF 是一个开源的数据可视化库&#xff0c;用于在 WPF 应用程序中创建高品质的绘图和图表。它是基于 ScottPlot 库的 WPF 版本&#xff0c;提供了简单易用的 API&#xff0c;使开发人员能够通过简单的代码创建各种类型的图表&#…

【项目技术点总结之三】使用Java生成复杂好看的word或pdf报告的解决方案

前言 项目中往往会遇到需要生成报告的场景&#xff0c;不管是简单报告还是复杂报告&#xff0c;其实都需要找很多资料去尝试&#xff0c;本文会提出几种个人完美解决报告生成的解决方案&#xff0c;而且会提出几个失败但是能生成报告的设想&#xff0c;当然都是踩过坑的&#…

Peter算法小课堂—背包问题

我们已经学过好久好久的动态规划了&#xff0c;动态规划_Peter Pan was right的博客-CSDN博客 那么&#xff0c;我用一张图片来概括一下背包问题。 大家有可能比较疑惑&#xff0c;优化决策怎么优化呢&#xff1f;答案是&#xff0c;滚动数组&#xff0c;一个神秘而简单的东西…

java nio零拷贝

零拷贝是一种计算机执行IO操作的优化技术&#xff0c;其核心目标是减少数据拷贝次数&#xff0c;从而提高系统性能。它主要体现在以下几个方面&#xff1a; 1. **定义与原理**&#xff1a;零拷贝字面上的意思包括“零”和“拷贝”。其中&#xff0c;“拷贝”是指数据从一个存储…

《21天精通IPv4 to IPv6》第3天:IPv6地址配置——如何为不同的系统配置IPv6?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

SpringCloud-Nacos服务分级存储模型

Nacos 服务分级存储模型是 Nacos 存储服务注册信息和配置信息的核心模型之一。它通过将服务和配置信息按照不同级别进行存储&#xff0c;实现了信息的灵活管理和快速检索&#xff0c;为微服务架构下的服务发现和配置管理提供了高效、可靠的支持。本文将对 Nacos 服务分级存储模…

CentOS7搭建Hadoop集群

准备工作 1、准备三台虚拟机&#xff0c;参考&#xff1a;CentOS7集群环境搭建&#xff08;3台&#xff09;-CSDN博客 2、配置虚拟机之间免密登录&#xff0c;参考&#xff1a;CentOS7集群配置免密登录-CSDN博客 3、虚拟机分别安装jdk&#xff0c;参考&#xff1a;CentOS7集…

springboot179基于javaweb的流浪宠物管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

HiveSQL——用户行为路径分析

注&#xff1a;参考文档&#xff1a; SQL之用户行为路径分析--HQL面试题46【拼多多面试题】_路径分析 sql-CSDN博客文章浏览阅读2k次&#xff0c;点赞6次&#xff0c;收藏19次。目录0 问题描述1 数据分析2 小结0 问题描述已知用户行为表 tracking_log&#xff0c; 大概字段有&…

CVE-2012-1823 漏洞复现

CVE-2012-1823 PHP SAPI 与运行模式 首先&#xff0c;介绍一下PHP的运行模式。 下载PHP源码&#xff0c;可以看到其中有个目录叫sapi。sapi在PHP中的作用&#xff0c;类似于一个消息的“传递者”&#xff0c;比如在《Fastcgi协议分析 && PHP-FPM未授权访问漏洞 &…

【前后端的那些事】2万字详解WebRTC + 入门demo代码解析

文章目录 构建WebRTC需要的协议1. ICE2. STUN3. NAT4. TURN5.SDP WebRTC通讯过程1. 大致流程2. 详细流程3. 核心api3.1 RTCPeerConnection3.2 媒体协商3.3 重要事件 代码编写1. 什么是websocket2. 消息实体类Message3. 业务流程图4. 搭建前后端环境5. join -- handleJoin -- jo…

2月11日作业

1、请使用递归实现n! 代码&#xff1a; #include<stdio.h> #include<string.h> #include<stdlib.h>int fun(int n) {if(n1)return 1;else{return n*fun(n-1);} }int main(int argc, const char *argv[]) {int n;printf("please enter n:");scanf…

keil调试出现cannot evaluate新思路

我在用最新的keil时也出现了这个问题&#xff0c;网上说的办法几乎没啥用&#xff0c;包括魔术棒的设置和将变量定义为全局变量&#xff0c;都没用。 这里我使用的是keil5.13&#xff0c;编译器是6.21&#xff0c;硬件是STM32F407VET6 可以看到&#xff0c;即使是定义为全局变量…

GeoServer 2.11.1升级解决Eclipse Jetty 的一系列安全漏洞问题

Eclipse Jetty 资源管理错误漏洞(CVE-2021-28165) Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7656) Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7657) Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7658) Jetty 信息泄露漏洞(CVE-2017-9735) Eclipse Jetty 安全漏洞(CVE-2022-20…