(未更新完)day30-IO-阶段综合案例(带权重的随机每日一记)(笔记完全来源于黑马程序员)

目录

  • 0 目录
  • 一、听黑马阿玮的视频记录的笔记
    • 1. 制造假数据
      • 1.1 如何制造假数据
      • 1.2 练习1-生成方式1:爬取姓氏、男生名字、女生名字
      • 1.3 练习2-生成方式1:在练习1的基础上,将数据写入本地文件
      • 1.4 练习3-生成方式2:利用糊涂包生成假数据
    • 2.随机点名器
      • 1.2 练习:前4个练习以及对应代码
        • 1.2.1 需求与代码
        • 1.2.2 需求与代码
        • 1.2.3 需求与代码
        • 1.2.4 需求与代码
      • 1.3 练习:随机点名器5
  • 页末

  说明:该笔记是根据黑马程序员在B站上分享的视频 黑马程序员Java零基础视频教程_下部的资料而整理的笔记, 完全来源于黑马程序员,若有侵权,请联系本人删除,个人加了空格,也根据视频 加了一些内容、详细的运行结果图与源码图。笔记难免可能出现错误或笔误, 若读者发现笔记有错误,欢迎在评论里批评指正。关于 前十三章笔记,个人在知乎上有所记录,很详细,但时间来不急了,不能慢慢记录了,对应链接: 知乎上的Java笔记。 笔记于2024.12.7在四川导入,12.*记录完毕。

  (废话一句。目前经济环境很差,转Java的相当多,不一定是最佳选择,会挤得头破血流。建议大家也可以考虑分流,C++(学了语言后,往语音信号处理、嵌入式等地方再搞一搞)、嵌入式、FPGA、硬件(硬件,很多企业会用到,有机会、有能力、有条件的,建议试试)、考公选调与国考、电网。)
  另外,本章应该会有点爬虫知识,所以特此声明请合法合理使用爬虫,不爬取任何涉密以及涉及隐私的内容,合理控制请求次数,爬取的内容未经授权请不要用于商用,保护自己,免受牢狱之灾。
在这里插入图片描述

0 目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、听黑马阿玮的视频记录的笔记

1. 制造假数据

  注:对应视频为:1O流-45-综合练习01-网络爬虫(爬取姓氏)IO流-46-综合练习02-网络爬虫(爬取名字)IO流-47-综合练习03-网络爬虫(数据处理)IO流-48-综合练习04-网络爬虫(数据处理并写出)IO流-49-综合练习05-利用糊涂包生成假数据

1.1 如何制造假数据

在这里插入图片描述
在这里插入图片描述

1.2 练习1-生成方式1:爬取姓氏、男生名字、女生名字

  对应视频为:1O流-45-综合练习01-网络爬虫(爬取姓氏)IO流-46-综合练习02-网络爬虫(爬取名字)IO流-47-综合练习03-网络爬虫(数据处理)IO流-48-综合练习04-网络爬虫(数据处理并写出),不理解的地方请在视频中直接听,比纯看博客好理解得多。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  Test1

package com.itheima.myiotest1;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test1 {public static void main(String[] args) throws IOException {/*制造假数据:获取姓氏:https://hanyu.baidu.com/shici/detail?pid=0b2f26d4c0ddb3ee693fdb1137ee1b0d&from=kg0获取男生名字:http://www.haoming8.cn/baobao/10881.html获取女生名字:http://www.haoming8.cn/baobao/7641.html*///1.定义变量记录网址String familyNameNet = "https://hanyu.baidu.com/shici/detail?pid=0b2f26d4c0ddb3ee693fdb1137ee1b0d&from=kg0";String boyNameNet = "http://www.haoming8.cn/baobao/10881.html";String girlNameNet = "http://www.haoming8.cn/baobao/7641.html";//2.爬取数据,把网址上所有的数据拼接成一个字符串String familyNameStr = webCrawler(familyNameNet);String boyNameStr = webCrawler(boyNameNet);String girlNameStr = webCrawler(girlNameNet);//3.通过正则表达式,把其中符合要求的数据获取出来ArrayList<String> familyNameTempList = getData(familyNameStr,"(.{4})(,|。)",1);ArrayList<String> boyNameTempList = getData(boyNameStr,"([\\u4E00-\\u9FA5]{2})(、|。)",1);ArrayList<String> girlNameTempList = getData(girlNameStr,"(.. ){4}..",0);//4.处理数据//familyNameTempList(姓氏)//处理方案:把每一个姓氏拆开并添加到一个新的集合当中ArrayList<String> familyNameList = new ArrayList<>();for (String str : familyNameTempList) {//str 赵钱孙李  周吴郑王   冯陈褚卫   蒋沈韩杨for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);familyNameList.add(c + "");}}//boyNameTempList(男生的名字)//处理方案:去除其中的重复元素ArrayList<String> boyNameList = new ArrayList<>();for (String str : boyNameTempList) {if(!boyNameList.contains(str)){boyNameList.add(str);}}//girlNameTempList(女生的名字)//处理方案:把里面的每一个元素用空格进行切割,得到每一个女生的名字ArrayList<String> girlNameList = new ArrayList<>();for (String str : girlNameTempList) {String[] arr = str.split(" ");for (int i = 0; i < arr.length; i++) {girlNameList.add(arr[i]);}}//5.生成数据//姓名(唯一)-性别-年龄ArrayList<String> list = getInfos(familyNameList, boyNameList, girlNameList, 70, 50);Collections.shuffle(list);//6.写出数据BufferedWriter bw = new BufferedWriter(new FileWriter("myiotest\\names.txt"));for (String str : list) {bw.write(str);bw.newLine();}bw.close();}/** 作用:*      获取男生和女生的信息:张三-男-23** 形参:*      参数一:装着姓氏的集合*      参数二:装着男生名字的集合*      参数三:装着女生名字的集合*      参数四:男生的个数*      参数五:女生的个数* */public static ArrayList<String> getInfos(ArrayList<String> familyNameList,ArrayList<String> boyNameList,ArrayList<String> girlNameList, int boyCount,int girlCount){//1.生成男生不重复的名字HashSet<String> boyhs = new HashSet<>();while (true){if(boyhs.size() == boyCount){break;}//随机Collections.shuffle(familyNameList);Collections.shuffle(boyNameList);boyhs.add(familyNameList.get(0) + boyNameList.get(0));}//2.生成女生不重复的名字HashSet<String> girlhs = new HashSet<>();while (true){if(girlhs.size() == girlCount){break;}//随机Collections.shuffle(familyNameList);Collections.shuffle(girlNameList);girlhs.add(familyNameList.get(0) + girlNameList.get(0));}//3.生成男生的信息并添加到集合当中ArrayList<String> list = new ArrayList<>();Random r = new Random();//【18 ~ 27】for (String boyName : boyhs) {//boyName依次表示每一个男生的名字int age = r.nextInt(10) + 18;list.add(boyName + "-男-" + age);}//4.生成女生的信息并添加到集合当中//【18 ~ 25】for (String girlName : girlhs) {//girlName依次表示每一个女生的名字int age = r.nextInt(8) + 18;list.add(girlName + "-女-" + age);}return list;}/** 作用:根据正则表达式获取字符串中的数据* 参数一:*       完整的字符串* 参数二:*       正则表达式* 参数三:*      获取数据*       0:获取符合正则表达式所有的内容*       1:获取正则表达式中第一组数据*       2:获取正则表达式中第二组数据*       ...以此类推** 返回值:*       真正想要的数据** */private static ArrayList<String> getData(String str, String regex,int index) {//1.创建集合存放数据ArrayList<String> list = new ArrayList<>();//2.按照正则表达式的规则,去获取数据Pattern pattern = Pattern.compile(regex);//按照pattern的规则,到str当中获取数据Matcher matcher = pattern.matcher(str);while (matcher.find()){list.add(matcher.group(index));}return list;}/** 作用:*   从网络中爬取数据,把数据拼接成字符串返回* 形参:*   网址* 返回值:*   爬取到的所有数据* */public static String webCrawler(String net) throws IOException {//1.定义StringBuilder拼接爬取到的数据StringBuilder sb = new StringBuilder();//2.创建一个URL对象URL url = new URL(net);//3.链接上这个网址//细节:保证网络是畅通的,而且这个网址是可以链接上的。URLConnection conn = url.openConnection();//4.读取数据InputStreamReader isr = new InputStreamReader(conn.getInputStream());int ch;while ((ch = isr.read()) != -1){sb.append((char)ch);}//5.释放资源isr.close();//6.把读取到的数据返回return sb.toString();}
}

  运行结果 - 爬取姓氏网址后获取的网页源码
在这里插入图片描述
  运行结果 - 爬取男生名字网址后获取的网页源码
在这里插入图片描述
  运行结果 - 根据姓氏的网页源码获取姓氏,使用正则表达式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  然后,为了得到男生名字,我们需要在网页中观察数据。
在这里插入图片描述
  运行结果 - 根据男生名字的网页源码获取男生名字,使用正则表达式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  运行结果 - 根据女生名字的网页源码获取女生名字,使用正则表达式
在这里插入图片描述
在这里插入图片描述
  运行结果 - 进一步处理获取到的姓氏数据,将姓氏提取出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  运行结果 - 进一步处理获取到的男生名字数据,将男生名字提取出来
在这里插入图片描述
在这里插入图片描述
  运行结果 - 进一步处理获取到的女生名字数据,将女生名字提取出来
在这里插入图片描述
在这里插入图片描述
  运行结果 - 随机生成不重复的男生的姓名
在这里插入图片描述
  运行结果 - 随机生成不重复的女生的姓名
在这里插入图片描述
  运行结果 - 随机生成不重复的且带年龄的姓名

  • 第1张图的名字没被打乱
    这张图的名字还没被打乱
  • 第2张图的名字被打乱了
    在这里插入图片描述

1.3 练习2-生成方式1:在练习1的基础上,将数据写入本地文件

  对应视频为:IO流-48-综合练习04-网络爬虫(数据处理并写出),不理解的地方请在视频中直接听,比纯看博客好理解得多。
  剩余代码见练习1的Test1。
  运行结果 - 将数据写入本地文件
在这里插入图片描述

1.4 练习3-生成方式2:利用糊涂包生成假数据

  对应视频为:IO流-49-综合练习05-利用糊涂包生成假数据,不理解的地方请在视频中直接听,比纯看博客好理解得多。
  在糊涂包的文档中查看爬虫的代码示例。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
  Test2

package com.itheima.myiotest1;import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HttpUtil;import java.util.*;public class Test2 {public static void main(String[] args){//利用糊涂包生成假数据,并写到文件当中//1. 定义网址String familyNameNet = "https://hanyu.baidu.com/shici/detail?pid=0b2f26d4c0ddb3ee693fdb1137ee1b0d&from=kg0";String boyNameNet = "http://www.haoming8.cn/baobao/10881.html";String girlNameNet = "http://www.haoming8.cn/baobao/7641.html";//2.爬取数据String familyNameStr = HttpUtil.get(familyNameNet);String boyNameStr = HttpUtil.get(boyNameNet);String girlNameStr = HttpUtil.get(girlNameNet);//3.利用正则表达式获取数据//通过正则表达式,把其中符合要求的数据获取出来List<String> familyNameTempList = ReUtil.findAll("(.{4})(,|。)", familyNameStr, 1);List<String> boyNameTempList = ReUtil.findAll("([\\u4E00-\\u9FA5]{2})(、|。)", boyNameStr, 1);List<String> girlNameTempList = ReUtil.findAll("(.. ){4}..", girlNameStr, 0);System.out.println(familyNameTempList);System.out.println(boyNameTempList);System.out.println(girlNameTempList);//4.处理数据//familyNameTempList(姓氏)//处理方案:把每一个姓氏拆开并添加到一个新的集合当中ArrayList<String> familyNameList = new ArrayList<>();for (String str : familyNameTempList) {//str 赵钱孙李  周吴郑王   冯陈褚卫   蒋沈韩杨for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);familyNameList.add(c + "");}}//boyNameTempList(男生的名字)//处理方案:去除其中的重复元素ArrayList<String> boyNameList = new ArrayList<>();for (String str : boyNameTempList) {if(!boyNameList.contains(str)){boyNameList.add(str);}}//girlNameTempList(女生的名字)//处理方案:把里面的每一个元素用空格进行切割,得到每一个女生的名字ArrayList<String> girlNameList = new ArrayList<>();for (String str : girlNameTempList) {String[] arr = str.split(" ");for (int i = 0; i < arr.length; i++) {girlNameList.add(arr[i]);}}//5.生成数据//姓名(唯一)-性别-年龄ArrayList<String> list = getInfos(familyNameList, boyNameList, girlNameList, 70, 50);Collections.shuffle(list);//6.写出数据//细节://糊涂包的相对路径,不是相对于当前项目而言的,而是相对class文件而言的FileUtil.writeLines(list,"D:\\names.txt","UTF-8");}/** 作用:*      获取男生和女生的信息:张三-男-23** 形参:*      参数一:装着姓氏的集合*      参数二:装着男生名字的集合*      参数三:装着女生名字的集合*      参数四:男生的个数*      参数五:女生的个数* */public static ArrayList<String> getInfos(ArrayList<String> familyNameList,ArrayList<String> boyNameList,ArrayList<String> girlNameList, int boyCount,int girlCount){//1.生成男生不重复的名字HashSet<String> boyhs = new HashSet<>();while (true){if(boyhs.size() == boyCount){break;}//随机Collections.shuffle(familyNameList);Collections.shuffle(boyNameList);boyhs.add(familyNameList.get(0) + boyNameList.get(0));}//2.生成女生不重复的名字HashSet<String> girlhs = new HashSet<>();while (true){if(girlhs.size() == girlCount){break;}//随机Collections.shuffle(familyNameList);Collections.shuffle(girlNameList);girlhs.add(familyNameList.get(0) + girlNameList.get(0));}//3.生成男生的信息并添加到集合当中ArrayList<String> list = new ArrayList<>();Random r = new Random();//【18 ~ 27】for (String boyName : boyhs) {//boyName依次表示每一个男生的名字int age = r.nextInt(10) + 18;list.add(boyName + "-男-" + age);}//4.生成女生的信息并添加到集合当中//【18 ~ 25】for (String girlName : girlhs) {//girlName依次表示每一个女生的名字int age = r.nextInt(8) + 18;list.add(girlName + "-女-" + age);}return list;}
}

  写代码的过程时的小细节
在这里插入图片描述
  运行结果 - 使用hutool初步获取网页中的姓氏、男生名字、女生名字
在这里插入图片描述
  运行结果 - 处理数据、写出数据到本地文件(剩下代码除写入文件外,其余与方式1同)
在这里插入图片描述

2.随机点名器

  注:对应视频为:IO流-50-综合练习06-随机点名器的四个需求、、、、、。
在这里插入图片描述

1.2 练习:前4个练习以及对应代码

  对应视频为:IO流-50-综合练习06-随机点名器的四个需求

1.2.1 需求与代码

在这里插入图片描述
  Test

package com.itheima.myiotest2;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;public class Test {public static void main(String[] args) throws IOException {/*需求:需求:有一个文件里面存储了班级同学的信息,每一个信息占一行。格式为:张三-男-23要求通过程序实现随机点名器。运行效果:第一次运行程序:随机同学姓名1(只显示名字)第二次运行程序:随机同学姓名2(只显示名字)第三次运行程序:随机同学姓名3(只显示名字)…*///1.读取文件中学生的姓名ArrayList<String> list = new ArrayList<>();BufferedReader br = new BufferedReader(new FileReader("myiotest\\src\\com\\itheima\\myiotest2\\names.txt"));String line;while ((line = br.readLine()) != null){list.add(line);}br.close();//2.随机抽取(解法一)Random r = new Random();int index = r.nextInt(list.size());String randomName1 = list.get(index);String[] arr1 = randomName1.split("-");System.out.println(arr1[0]);//2.随机抽取(解法二)Collections.shuffle(list);String randomName2 = list.get(0);String[] arr2 = randomName2.split("-");System.out.println(arr2[0]);}
}
1.2.2 需求与代码

在这里插入图片描述
  Test

package com.itheima.myiotest3;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;public class Test {public static void main(String[] args) throws IOException {/*需求:一个文件里面存储了班级同学的信息,格式为:张三-男-23每一个学生信息占一行。要求通过程序实现随机点名器。70%的概率随机到男生30%的概率随机到女生随机100万次,统计结果。看生成男生和女生的比例是不是接近于7:3*///1.读取数据,并把男生和女生的信息添加到不同的集合当中ArrayList<String> boyNameList = new ArrayList<>();ArrayList<String> girlNameList = new ArrayList<>();BufferedReader br = new BufferedReader(new FileReader("myiotest\\src\\com\\itheima\\myiotest3\\names.txt"));String line;while ((line = br.readLine()) != null){String[] arr = line.split("-");if(arr[1].equals("男")){boyNameList.add(line);}else{girlNameList.add(line);}}br.close();//2.定义权重集合,男女比例:7:3ArrayList<Integer> list = new ArrayList<>();Collections.addAll(list,1,1,1,1,1,1,1,0,0,0);//3.定义变量,统计被点到的次数int boyCount = 0;int girlCount = 0;Random r = new Random();//4.循环100万次for (int i = 0; i < 1000000; i++) {//5.从权重集合中获取随机数据int index = r.nextInt(list.size());int weight = list.get(index);//6.判断获取的随机数据是1还是0if(weight == 1){//1就随机男生Collections.shuffle(boyNameList);String boyInfo = boyNameList.get(0);System.out.println(boyInfo);boyCount++;}else{//0就随机女生Collections.shuffle(girlNameList);String girlInfo = girlNameList.get(0);System.out.println(girlInfo);girlCount++;}}System.out.println("随机抽取100万次,其中男生被抽到了" + boyCount);System.out.println("随机抽取100万次,其中女生被抽到了" + girlCount);}
}
1.2.3 需求与代码

在这里插入图片描述
  Test

package com.itheima.myiotest4;import java.io.*;
import java.util.ArrayList;
import java.util.Collections;public class Test {public static void main(String[] args) throws IOException {/*需求:一个文件里面存储了班级同学的姓名,每一个姓名占一行。要求通过程序实现随机点名器。第三次必定是张三同学运行效果:第一次运行程序:随机同学姓名1第二次运行程序:随机同学姓名2第三次运行程序:张三…*///1.读取数据,并把学生信息添加到集合当中ArrayList<String> list = new ArrayList<>();BufferedReader br1 = new BufferedReader(new FileReader("myiotest\\src\\com\\itheima\\myiotest4\\names.txt"));String line;while ((line = br1.readLine()) != null){list.add(line);}br1.close();//2.读取当前程序已经运行的次数BufferedReader br2 = new BufferedReader(new FileReader("myiotest\\src\\com\\itheima\\myiotest4\\count.txt"));String countStr = br2.readLine();int count = Integer.parseInt(countStr);br2.close();//4.表示程序再次运行了一次count++;//3.判断,如果当前已经是第三次,直接打印,不是第三次才随机if(count == 3){System.out.println("张三");}else {Collections.shuffle(list);String stuInfo = list.get(0);System.out.println(stuInfo);}//4.将程序已经运行的次数写会本地文件BufferedWriter bw = new BufferedWriter(new FileWriter("myiotest\\src\\com\\itheima\\myiotest4\\count.txt"));bw.write(count + "");bw.close();}
}
1.2.4 需求与代码

在这里插入图片描述
在这里插入图片描述
  Test

package com.itheima.myiotest5;import java.io.*;
import java.util.ArrayList;
import java.util.Collections;public class Test {public static void main(String[] args) throws IOException {/*需求:一个文件里面存储了班级同学的姓名,每一个姓名占一行。要求通过程序实现随机点名器。运行结果要求:被点到的学生不会再被点到。但是如果班级中所有的学生都点完了, 需要重新开启第二轮点名。核心思想:点一个删一个,把删除的备份,全部点完时还原数据。*///1.定义变量,表示初始文件路径,文件中存储所有的学生信息String src = "myiotest\\src\\com\\itheima\\myiotest5\\names.txt";//2.定义变量,表示备份文件,一开始文件为空String backups = "myiotest\\src\\com\\itheima\\myiotest5\\backups.txt";//3.读取初始文件中的数据,并把学生信息添加到集合当中ArrayList<String> list = readFile(src);//4.判断集合中是否有数据if (list.size() == 0) {//5.如果没有数据,表示所有学生已经点完,从backups.txt中还原数据即可//还原数据需要以下步骤://5.1 读取备份文件中所有的数据list = readFile(backups);//5.2 把所有的数据写到初始文件中writeFile(src, list, false);//5.3 删除备份文件new File(backups).delete();}//5.集合中有数据,表示还没有点完,点一个删一个,把删除的备份到backups.txt当中//打乱集合Collections.shuffle(list);//获取0索引的学生信息并删除String stuInfo = list.remove(0);//打印随机到的学生信息System.out.println("当前被点到的学生为:" + stuInfo);//把删除之后的所有学生信息,写到初始文件中writeFile(src, list, false);//把删除的学生信息备份(追加写入)writeFile(backups, stuInfo, true);}private static void writeFile(String pathFile, ArrayList<String> list, boolean isAppend) throws IOException {BufferedWriter bw = new BufferedWriter(new FileWriter(pathFile, isAppend));for (String str : list) {bw.write(str);bw.newLine();}bw.close();}private static void writeFile(String pathFile, String str, boolean isAppend) throws IOException {BufferedWriter bw = new BufferedWriter(new FileWriter(pathFile, isAppend));bw.write(str);bw.newLine();bw.close();}private static ArrayList<String> readFile(String pathFile) throws IOException {ArrayList<String> list = new ArrayList<>();BufferedReader br = new BufferedReader(new FileReader(pathFile));String line;while ((line = br.readLine()) != null) {list.add(line);}br.close();return list;}
}

1.3 练习:随机点名器5

  对应视频为:IO流-51-综合练习07-带权重的随机算法、,不理解的地方请在视频中直接听,比纯看博客好理解得多。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 权重占比的思考
    在这里插入图片描述
    在这里插入图片描述

  好,本次笔记到此结束。

页末

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

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

相关文章

FPGA中所有tile介绍

FPGA中包含的tile类型&#xff0c;以xinlinx 7k为例&#xff0c;可以通过f4pga项目中的原语文件夹查看&#xff0c;主要包含以下这些&#xff1a; 以下是您提到的 Xilinx 7 系列 FPGA 中各种模块的含义及用途&#xff1a; 1. BRAM (Block RAM) BRAM 是 FPGA 中的块存储资源&…

如何解决压测过程中JMeter堆内存溢出问题

如何解决压测过程中JMeter堆内存溢出问题 背景一、为什么会堆内存溢出&#xff1f;二、解决堆内存溢出措施三、堆内存参数应该怎么调整&#xff1f;四、堆内存大小配置建议 背景 Windows环境下使用JMeter压测运行一段时间后&#xff0c;JMeter日志窗口报错“java.lang.OutOfMe…

嵌入式蓝桥杯学习4 lcd移植

cubemx配置 复制前面配置过的文件 打开cubemx&#xff0c;将PB8,PB9配置为GPIO-Output。 点击GENERATE CODE. 文件移植 1.打开比赛提供的文件包&#xff0c;点击Inc文件夹 2.点击Inc文件夹。复制fonts.h和lcd.h&#xff0c;粘贴到我们自己的工程文件夹的bsp中&#xff08…

学习记录,正则表达式, 隐式转换

正则表达式 \\&#xff1a;表示正则表达式 W: 表示一个非字&#xff08;不是一个字&#xff0c;例如&#xff1a;空格&#xff0c;逗号&#xff0c;句号&#xff09; W: 多个非字 基本组成部分 1.字符字面量&#xff1a; 普通字符&#xff1a;在正则表达式中&#xff0c;大…

标书里的“废标雷区”:你踩过几个?

在投标领域&#xff0c;标书的质量不仅决定了中标的可能性&#xff0c;更是体现企业专业度的关键。但即便是经验丰富的投标人&#xff0c;也难免会在标书编制过程中踩中“废标雷区”。这些雷区可能隐藏在技术方案的细节中&#xff0c;也可能是投标文件格式的规范问题。以下&…

k8s-编写CSI插件(3)

1、概述 在 Kubernetes 中&#xff0c;存储插件的开发主要有以下几种方式&#xff1a; CSI插件&#xff1a;Container Storage Interface (CSI) 是 Kubernetes 的标准插件接口&#xff0c;是全新的插件方案&#xff0c;插件和驱动调用通过grpc协议&#xff0c;功能丰富&#x…

R语言机器学习论文(三):特征提取

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据一、数据归一化二、离散型分类变量的编码三、筛选特征四、重要特征五、输出结果六、总结系统信息介绍 在数据分析和机器学习项目中,经常需要对数据进行预…

用 NotePad++ 运行 Java 程序

安装包 网盘链接 下载得到的安装包: 安装步骤 双击安装包开始安装. 安装完成: 配置编码 用 NotePad 写 Java 程序时, 需要设置编码. 在 设置, 首选项, 新建 中进行设置, 可以对每一个新建的文件起作用. 之前写的文件不起作用. 在文件名处右键, 可以快速打开 CMD 窗口, 且路…

Leetcode打卡:骑士在棋盘上的概率

执行结果&#xff1a;通过 题目&#xff1a;骑士在棋盘上的概率 在一个 n x n 的国际象棋棋盘上&#xff0c;一个骑士从单元格 (row, column) 开始&#xff0c;并尝试进行 k 次移动。行和列是 从 0 开始 的&#xff0c;所以左上单元格是 (0,0) &#xff0c;右下单元格是 (n - …

[Java]项目入门

这篇简单介绍一些入门的有关项目和行业的知识&#xff0c;并带着实现一个小项目。便于已经编程入门的各位准备进阶到下一个阶段。 先大致地介绍&#xff0c;一个完整的项目(不看客户端、服务端的分类)基本可以划分为三部分&#xff1a; 1.前端。比如你现在看到的CSDN页面就是一…

全连接层与链式求导法则在神经网络中的应用

目录 ​编辑 引言 全连接层的工作原理 前向传播 反向传播 链式求导法则及其在神经网络中的应用 链式求导法则 应用于全连接层 计算梯度 结论 引言 在深度学习领域&#xff0c;全连接层&#xff08;Fully Connected Layer&#xff0c;FC&#xff09;和链式求导法则是…

泷羽Sec-星河飞雪-bp抓APP包的相关配置方法

免责声明 学习视频来自 B 站up主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;http…

00. Nginx-知识网络

知识目录 语雀知识网络&#xff0c;点击“”-- 点击“”查看知识网络 01. Nginx-基础知识 02. Nginx-虚拟主机 03. Nginx-Web模块 04. Nginx-访问控制 05. Nginx-代理服务 06. Nginx-负载均衡 07. Nginx-动静分离 08. Nginx-平滑升级 09. Nginx-日志切割 10. Nginx-…

【Springboot3+vue3】从零到一搭建Springboot3+vue3前后端分离项目之后端环境搭建

【Springboot3vue3】从零到一搭建Springboot3vue3前后端分离项目&#xff0c;整合knef4j和mybaits实现基础用户信息管理 后端环境搭建1.1 环境准备1.2 数据库表准备1.3 SpringBoot3项目创建1.4 MySql环境整合&#xff0c;使用druid连接池1.5 整合mybatis-plus1.5.1 引入mybatie…

【大数据技术基础】 课程 第3章 Hadoop的安装和使用 大数据基础编程、实验和案例教程(第2版)

第3章 Hadoop的安装和使用 3.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台&#xff0c;为用户提供了系统底层细节透明的分布式基础架构。Hadoop是基于Java语言开发的&#xff0c;具有很好的跨平台特性&#xff0c;并且可以部署在廉价的计算机集群中。H…

【Elasticsearch】ES+MySQL实现迷糊搜索

1. 技术选型 使用 Elasticsearch (ES) 结合 MySQL 进行数据存储和查询&#xff0c;而不是直接从 MySQL 中进行查询&#xff0c;主要是为了弥补传统关系型数据库&#xff08;如 MySQL&#xff09;在处理大规模、高并发和复杂搜索查询时的性能瓶颈。具体来说&#xff0c;ES 与 My…

Tomcat 的使用(图文教学)

Tomcat 的使用&#xff08;图文教学&#xff09; 前言一、什么是Tomcat&#xff1f;二、Tomcat 服务器和 Servlet 版本的对应关系三、Tomcat 的使用 1、安装2、目录介绍3、如何启动4、Tomcat 的停止5、如何修改 Tomcat 的端口号6、如何部暑 web 工程到 Tomcat 中 6.1 方式一6.…

Altium Designer学习笔记 31 PCB布线优化_GND处理

基于Altium Designer 23学习版&#xff0c;四层板智能小车PCB 更多AD学习笔记&#xff1a;Altium Designer学习笔记 1-5 工程创建_元件库创建Altium Designer学习笔记 6-10 异性元件库创建_原理图绘制Altium Designer学习笔记 11-15 原理图的封装 编译 检查 _PCB封装库的创建Al…

前端知识1html

VScode一些快捷键 Ctrl/——注释 !——生成html框架元素 *n——生成n个标签 直接书写html的名字回车生成对应的标签 常见标签 span&#xff1a; <span style"color: red;">hello</span> <span>demo</span> span实现&#xff1a; 标题…

Java项目实战II基于微信小程序的私家车位共享系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着城市化进程的加速&…