《面向对象综合训练01~05》
《面向对象综合训练01~05》
训练01:文字版格斗游戏
- 第一步:创建游戏角色的javabean类
public class Role {private String name;private int blood;private char gender;private String face;//长相是随机的//创建男女长相的随机数组String[] boyfaces = {"风流俊雅", "气字轩昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目狰狞"};String[] girlfaces = {"美奂绝伦", "沉鱼落雁", "婷婷玉立", "身材娇好", "相貌平平", "相貌简陋", "惨不忍睹"};//attack 攻击描述:String[] attacks_desc = {"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s.","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。n","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};//injured 受伤描述:String[] injureds_desc = {"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中!,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,一跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果轰的一声,%s口中鲜血狂喷而出","结果%s一声惨叫,像滩软泥般塌了下去"};public Role() {}public Role(String name, int blood, char gender) {this.name = name;this.blood = blood;this.gender = gender;setFace(gender);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getBlood() {return blood;}public void setBlood(int blood) {this.blood = blood;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {//在初始化过程中使用setFace随机设置长相Random r = new Random();if (gender == '男') {//如果人物性别是男,就从boyfaces随机一个长相int index = r.nextInt(boyfaces.length);this.face = boyfaces[index];} else if (gender == '女') {//如果人物性别是男,就从grilfaces随机一个长相int index = r.nextInt(girlfaces.length);this.face = girlfaces[index];} else {this.face = "面目狰狞";}}//输出所创建角色的所有属性public void getInfoRole() {System.out.println("姓名:" + getName());System.out.println("血量:" + getBlood());System.out.println("性别:" + getGender());System.out.println("长相:" + getFace());}//设计一个攻击方法public void attack(Role role) {//首先描述攻击招式Random r = new Random();int index = r.nextInt(attacks_desc.length);System.out.printf(attacks_desc[index], this.getName(), role.getName());System.out.println();//计算造成的伤害int hurt = r.nextInt(20) + 1;//计算被攻击者剩余血量int remainBlood = role.getBlood() - hurt;//对剩余血量做验证,如果已经为负数了,就修改为0remainBlood = remainBlood < 0 ? 0 : remainBlood;//修改被攻击者的剩余血量role.setBlood(remainBlood);//受伤情况描述if (remainBlood >= 90) {System.out.printf(injureds_desc[0], role.getName());} else if (remainBlood >= 80) {System.out.printf(injureds_desc[1], role.getName());} else if (remainBlood >= 70) {System.out.printf(injureds_desc[2], role.getName());} else if (remainBlood >= 60) {System.out.printf(injureds_desc[3], role.getName());} else if (remainBlood >= 40) {System.out.printf(injureds_desc[4], role.getName());} else if (remainBlood >= 20) {System.out.printf(injureds_desc[5], role.getName());} else if (remainBlood >= 10) {System.out.printf(injureds_desc[6], role.getName());} else {System.out.printf(injureds_desc[7], role.getName());}System.out.println();}
}
- 创建游戏测试类进行测试
public class GameTest {public static void main(String[] args) {//1.创建2个角色Role r1 = new Role("乔峰", 100,'男');Role r2 = new Role("鸠摩智", 100,'男');r1.getInfoRole();r2.getInfoRole();//2.使用while循环实现两个角色相互攻击while (true) {//r1先攻r2r1.attack(r2);//判断被攻击者的血量,如果为0跳出输出结果、跳出循环if (r2.getBlood() == 0) {System.out.println(r1.getName() + "K.O 了" + r2.getName());break;}//r2再共计r1r2.attack(r1);//判断被攻击者的血量,如果为0跳出输出结果、跳出循环if (r1.getBlood() == 0) {System.out.println(r2.getName() + "K.O 了" + r1.getName());break;}}}
}
训练02:两个对象数组练习
- 对象数组练习1
- 定义数组存储3个商品对象,
- 商品的属性:商品的id,名字,价格,库存。
- 创建四个商品对象,并把商品对象存入到数组当中;
第一步:创建商品的javabean类
public class Goods {private String id;private String name;private double price;private int count;public Goods() {}public Goods(String id, String name, double price, int count) {this.id = id;this.name = name;this.price = price;this.count = count;}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;}@Overridepublic String toString() {return "Goods{" +"id='" + id + '\'' +", name='" + name + '\'' +", price=" + price +", count=" + count +'}';}
}
第二步:定义数组,创建4个商品对象,并存入数组
public class GoodsTest {public static void main(String[] args) {//1.动态初始化创建数组Goods[] goods = new Goods[4];//2.创建3个商品对象Goods g1 = new Goods("001","华为P40",5999.0,100);Goods g2 = new Goods("001","保温杯",239.0,50);Goods g3 = new Goods("001","小米笔记本",6999.0,10);Goods g4 = new Goods("001","苹果13手机",7999.0,59);//3.把商品对象存入数组中goods[0] = g1;goods[1] = g2;goods[2] = g3;goods[3] = g4;//3.打印数组for (int i = 0; i < goods.length; i++) {Goods good = goods[i];System.out.println(good.toString());}}
}
- 对象数组练习2
- 定义数组存储3部汽车对象;
- 汽车的属性:品牌,价格,颜色;
- 创建三个汽车对象,数据通过键盘录入而来,并把数据存入到数组当中;
- 第一步:创建汽车的javabean类
public class Cars {private String brand;private int price;private String color;public Cars() {}public Cars(String brand, int price, String color) {this.brand = brand;this.price = price;this.color = color;}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;}@Overridepublic String toString() {return "Cars{" +"brand='" + brand + '\'' +", price=" + price +", color='" + color + '\'' +'}';}
}
- 第二步:创建3个汽车对象,使用键盘接收汽车属性,并把3个汽车对象存入数组中
public class CarsTest {public static void main(String[] args) {//1.创建一个汽车数组Cars[] cars = new Cars[3];//2.创建3个汽车对象,使用键盘接收汽车属性,并把3个汽车对象存入数组中Scanner scanner = new Scanner(System.in);for (int i = 0; i < cars.length; i++) {//创建汽车对象,通过键盘接收汽车属性数据Cars car = new Cars();//创建汽车对象一定要写在for循环的里面,因为为我们要创建3和不同的对象System.out.println("请输入汽车的品牌:");String brand = scanner.next();car.setBrand(brand);System.out.println("请输入汽车的价格:");int price = scanner.nextInt();car.setPrice(price);System.out.println("请输入汽车的颜色:");String color = scanner.next();car.setColor(color);//把创建的汽车对象存入数组中cars[i] = car;}//3.遍历数组for (int i = 0; i < cars.length; i++) {System.out.println(cars[i].toString());}}
}
- 以上练习中需掌握键盘输入的两套体系
- 第一套体系:
- nextInt();接收整数
- nextDouble();接收小数
- next();接收字符串
- 遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了
- 第二套体系:
- nextLine();接收字符串
- 可以接收空格,制表符,遇到回车才停止接受数据
- 以上练习中还需要注意
- Cars car = new Cars();创建汽车对象一定要写在for循环的里面,因为为我们要创建3和不同的对象;
训练03:两个对象数组练习-判断并统计
- 对象数组练习3
- 定义数组存储3部手机对象
- 手机的属性:品牌,价格,颜色。
- 要求,计算出三部手机的平均价格
- 第一步:创建手机javabean类
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;}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;}@Overridepublic String toString() {return "Phone{" +"brand='" + brand + '\'' +", price=" + price +", color='" + color + '\'' +'}';}
}
- 第一步:定义数组存储3部手机对象,并计算出三部手机的平均价格
public class PhoneTest {public static void main(String[] args) {//1.创建一个大小为3的手机数组Phone[] phones = new Phone[3];//2.创建3个手机对象Phone p1 = new Phone("小米",3999,"黑色");Phone p2 = new Phone("华为",5999,"蓝色");Phone p3 = new Phone("苹果",7999,"白色");//3.把3个手机对象存入数组中phones[0] = p1;phones[1] = p2;phones[2] = p3;int sum = 0;for (int i = 0; i < phones.length; i++) {sum = sum + phones[i].getPrice();}int vag = sum / phones.length;System.out.println(vag);}
}
- 对象数组练习4
- 定义数组存储4个女朋友的对象
- 女朋友的属性:姓名、年龄、性别、爱好
- 要求1:计算出四个女朋友的平均年龄
- 要求2:统计年龄比平均值低的女朋友有几个?并把她们的所有信息打印出来
第一步:创建女朋友的javabean类
public class GirlFriend {private String name;private int age;private String gender;private String hobby;public GirlFriend() {}public GirlFriend(String name, int age, String gender, String hobby) {this.name = name;this.age = age;this.gender = gender;this.hobby = hobby;}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;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}@Overridepublic String toString() {return "GirlFriend{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +", hobby='" + hobby + '\'' +'}';}
}
第二步:创建GirlFriendTest类实现功能
public class GirlFriendTest {public static void main(String[] args) {//1.定义数 组存储4个女朋友对象GirlFriend[] girlFriends = new GirlFriend[4];//2.创建4个女朋对象GirlFriend gf1 = new GirlFriend("小诗诗",18,"萌妹子","吃零食");GirlFriend gf2 = new GirlFriend("小丹丹",19,"萌妹子","睡觉");GirlFriend gf3 = new GirlFriend("小慧慧",20,"萌妹子","看书");GirlFriend gf4 = new GirlFriend("小艳艳",21,"萌妹子","运动");//3.将4个对象添加到数组girlFriends[0] = gf1;girlFriends[1] = gf2;girlFriends[2] = gf3;girlFriends[3] = gf4;//4.计算4个女朋友的年龄之和int sum = 0;for (int i = 0; i < girlFriends.length; i++) {sum += girlFriends[i].getAge();}//5.求平均年龄int vag = sum / girlFriends.length;System.out.println(vag);//6.统计低于平均年龄的女朋友个数,并打印出来int count = 0;for (int i = 0; i < girlFriends.length; i++) {if (girlFriends[i].getAge() < vag){count++;System.out.println(girlFriends[i].toString());}}System.out.println(count);}
}
训练05/06:复杂对象数练习-添加、遍历、修改、删除
定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,
学生对象的学号,姓名各不相同学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。
要求4:删除完毕之后,遍历所有学生信息。
要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁。
- 代码示例:
public class StudentTest {/*定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同学生的属性:学号,姓名,年龄。要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。要求2:添加完毕之后,遍历所有学生信息。要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。要求4:删除完毕之后,遍历所有学生信息。要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁。*/public static void main(String[] args) {//1.定义一个长度为3的数组Student[] students = new Student[3];//2.创建3个学生对象Student s1 = new Student(1, "张三", 23);Student s2 = new Student(2, "李四", 24);Student s3 = new Student(3, "王五", 24);//3.将3个学生对象存入数组中students[0] = s1;students[1] = s2;students[2] = s3;//4.创建一个新的学生对象Student s4 = new Student(5, "赵六", 26);//5.判断新创建学生对象学号的唯一性(设计一个方法判断新创建的学生对象的id,是否包含在老数组中)if (contains(students, s4.getId())) {//5.1已存在----提示id重复,添加失败System.out.println("学生id重复,添加失败");} else {//5.2不存在---添加新的学生对象//6.判断老数组是否已经存满数据(设计一个方法判断来老数组数据是否已经存满)int count = getCount(students);System.out.println(count);if (count == students.length) {//6.1数组已满,则对创建比原数组空间大1个的新数组,将新的学生对象存入其中;students = createArr(students);students[count] = s4;//打印数组printArr(students);} else {//6.2数组没有存满,直接将新学生对象存入其中students[count] = s4;//打印数组printArr(students);}}//要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。int index = getIndex(students, 5);if (index >= 0) {//如果存在,则删除students[index] = null;System.out.println("删除成功");//要求4:删除完毕之后,遍历所有学生信息。printArr(students);} else {//如果不存在,则提示学生id不存在,删除失败System.out.println("学生id不存在,删除失败");}//要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁。int index1 = getIndex(students, 2);if (index1 >= 0) {//id为2的学生存在,则将他的年龄+1岁Student stu = students[index1];int newAge = stu.getAge() + 1;stu.setAge(newAge);System.out.println("年龄+1岁成功");printArr(students);} else {//id为2的学生不存在System.out.println("学生信息不存在,修改失败");}}//设计一个方法获取待删除学生在数组中的位置/*1.我要个干嘛? 答:通过id获取学生对象在数组中的数组下标2.我需要什么? 答:需要数组,学生id3.方法的调用处是否需要继续使用方法的结果? 答:需要,如果存在则返回学生对象的数组下标,如果不存在返回-1*/public static int getIndex(Student[] arr, int id) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {if (arr[i].getId() == id) {return i;}}}return -1;}//设计一个方法遍历数组元素public static void printArr(Student[] arr) {for (Student student : arr) {if (student != null) {System.out.println(student);}}}//设计一个方法,创建比原数组空间大1个的新数组/*1.我要个干嘛? 答:创建一个新数组,比老数组空间大1,并复制老数组元素到新数组中2.我需要什么? 答:需要老数组3.方法的调用处是否需要继续使用方法的结果? 答:需要,需要返回新创建的数组*/public static Student[] createArr(Student[] arr) {Student[] newStudents = new Student[arr.length + 1];for (int i = 0; i < arr.length; i++) {newStudents[i] = arr[i];}return newStudents;}//设计一个方法判断新创建的学生对象的id,是否包含在老数组中/*1.我要个干嘛? 答:判断新创建的学生对象的id,是否包含在老数组中2.我需要什么? 答:需要老数组,需要新创建学生对象的id3.方法的调用处是否需要继续使用方法的结果? 答:需要判断的结果*/public static boolean contains(Student[] arr, int id) {for (Student student : arr) {if (student != null) {if (student.getId() == id) {return true;}}}return false;}//设计一个方法判断来老数组数据已经存了几个数据/*1.我要个干嘛? 答:判断老数组数据已经存了几个数据2.我需要什么? 答:需要来老数组3.方法的调用处是否需要继续使用方法的结果? 答:需要返回已存入数据的数量*/public static int getCount(Student[] arr) {//创建一个统计变量int count = 0;//判断数组中元素的值是否为null,如果不是null则说明存在一个数据,count加1for (Student student : arr) {if (student != null) {count++;}}//循环结束后返回数组中已添加元素的个数return count;}
}
相关文章:

《面向对象综合训练01~05》
《面向对象综合训练01~05》 训练01:文字版格斗游戏 第一步:创建游戏角色的javabean类 public class Role {private String name;private int blood;private char gender;private String face;//长相是随机的//创建男女长相的随机数组String[] boyfaces…...

电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?
电脑故障排查指南:揭秘“msvcr120.dll缺失”的真相与解决方案 在软件开发与日常维护的广阔天地里,遇到系统报错或文件缺失的情况可谓家常便饭。今天,我将带领大家深入探讨一个常见的系统提示——“msvcr120.dll缺失”,并揭秘其背…...

huggingface NLP-微调一个预训练模型
微调一个预训练模型 1 预处理数据 1.1 处理数据 1.1.1 fine-tune 使用tokenizer后的token 进行训练 batch tokenizer(sequences, paddingTrue, truncationTrue, return_tensors"pt")# This is new batch["labels"] torch.tensor([1, 1])optimizer A…...

【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
文章目录 1. 问题描述2. 原因2.1 编码2.2 解码 3. 解决方法 1. 问题描述 之前写了一个接口,用 Apifox 请求,参数传入一个 86 的电话,结果到服务器 就变成空格了。 Java 接收请求的接口: 2. 原因 2.1 编码 进行 URL 请求的…...

Spring AI API 介绍
目录: Spring AI 框架介绍 Spring AI API 核心API简介 Spring AI 提供了很多便利的功能,主要如下: AI Model API “Model API” 提供了聊天、文本转图像、音频转录、文本转语音、嵌入等功能,且不局限于某个固定的大模型提供商…...

【MySQL】Linux使用C语言连接安装
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...

2024年第十五届蓝桥杯青少组C++国赛—割点
割点 题目描述 一张棋盘由n行 m 列的网格矩阵组成,每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。 现给定棋盘上所有棋子的位置,如果要使棋盘上出现两个及以上的棋子连通块,请问…...
【软件开发】做出技术决策
文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…...

Airborne使用教程
1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…...

WPF实现曲线数据展示【案例:震动数据分析】
wpf实现曲线数据展示,函数曲线展示,实例:震动数据分析为例。 如上图所示,如果你想实现上图中的效果,请详细参考我的内容,创作不易,给个赞吧。 一共有两种方式来实现,一种是使用第三…...

EasyExcel 动态设置表格的背景颜色和排列
项目中使用EasyExcel把数据以excel格式导出,其中设置某一行、某一列单元格的背景颜色、排列方式十分常用,记录下来方便以后查阅。 1. 导入maven依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easy…...
【 C++11 】类的新功能
C类的新功能 一、默认成员函数二、类成员变量初始化三、default关键字四、delete关键字六、final关键字七、override关键字 一、默认成员函数 八个默认成员函数 在C11之前,一个类中有如下六个默认成员函数: 构造函数。析构函数。拷贝构造函数。拷贝赋值…...
防止SQL注入:PHP安全最佳实践
防止SQL注入:PHP安全最佳实践 SQL注入是一种常见的网络攻击方式,攻击者通过向应用程序的SQL查询中插入恶意代码,来获取、操控或破坏数据库中的数据。为了保护PHP应用免受SQL注入攻击,开发者需要遵循一系列安全最佳实践。本文将介…...
自动化生产或质量检测准备工作杂记
自动化生产或质量检测一个流程是: 上料位上料: “上料位”指的是物料被放置以供机器或设备处理的位置。“上料”指的是将物料从存储位置移动到加工或检测位置的过程。移动到对位相机位置: “对位相机”是一种高精度相机,用于精确…...
张志辰医生
在医学领域,北京中医药大学东方医院的张志辰副主任医师宛如一颗璀璨的明星。自 2011 年于北京中医药大学获取博士学位后,他便扎根临床一线,以精湛医术和仁心仁术,为众多患者排忧解难 张志辰曾先后前往北京天坛医院、广东中山医院…...

CodeMirror 如何动态更新definemode
CodeMirror 如何动态更新definemode 问题描述:解决方法: 问题描述: 项目中有一部分用到了CodeMirror组件,其高亮显示的内容需要根据最新的json动态的更新,需要使用definemode自定义高亮内容。 想要的效果如下…...

舵机SG90详解
舵机,也叫伺服电机,在嵌入式开发中,舵机作为一种常见的运动控制组件,具有广泛的应用。其中,SG90 舵机以其高效、稳定的性能特点,成为了许多工程师和爱好者的首选,无论是航模、云台、机器人、智能…...

程序设计考题汇总(四:SQL练习)
文章目录 查询结果限制返回行数 查询结果限制返回行数 select device_id from user_profile LIMIT 2;...

明达IOT平台助力工业废水运维智能化
背景简介 相较于生活污水,工业废水的处理挑战性更高,原因在于其源于多样化的工业生产流程,成分复杂且多变,可能包含重金属、有毒化学…...
深入理解 Ansible Playbook:组件与实战
目录 1 playbook介绍 2 YAML语言 2.1语法简介 2.2数据类型 3 Playbook核心组件 3.1 hosts组件 3.2 remote_user组件 3.3 task列表和action组件 3.4 handlers 3.5 tags组件 3.6 其他组件说明 1 playbook介绍 playbook 剧本是由一个或多个"play"组成的列表。…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...