蓝桥杯Web组备赛笔记6
目录
一、ElementUI
1、安装
2、简单使用
3、例子
4、其他内容的学习
二、echarts
1、简介
2、考点
3、安装
4、配置项:使用echarts的三步走
5、13届蓝桥真题(3)布局切换
6、数据格式处理:14届蓝桥模拟赛 1 期(8)
一、ElementUI
1、安装
(1)终端npm下载
npm i element-ui -S
(2)引入式
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
注意:引入顺序,在html中代码执行顺序是从上到下的,ElementUI是基于vue写的,所以要先引入vue再引入ElementUI
(3)介绍:ElementUI本身就是一次对功能的封装,需要我们做的就是二次封装
2、简单使用
(1)弹窗open()方法的介绍及使用
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><!-- import CSS --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body><div id="app"><el-button @click="visible = true">Button</el-button><el-dialog :visible.sync="visible" title="Hello world" @open="open()"><p>Try Element</p></el-dialog></div>
</body><!-- import Vue before Element --><script src="https://unpkg.com/vue@2/dist/vue.js"></script><!-- import JavaScript --><script src="https://unpkg.com/element-ui/lib/index.js"></script><script>new Vue({el: '#app',data: function() {return { visible: false }},methods:{open(){console.log('是谁在点我!!!');}}})</script>
</html>

open()方法:钩子函数,可以实现点击弹窗,回调给我们参数,例如:我们需要记录弹窗被点击的次数,这时候只需要在open()方法进行点击次数的+1
3、例子
(1)原装的单选表格
<template><div class="home"><el-tableref="singleTable":data="tableData"highlight-current-row@current-change="handleCurrentChange"style="width: 100%"><el-table-columntype="index"width="50"></el-table-column><el-table-columnproperty="date"label="日期"width="120"></el-table-column><el-table-columnproperty="name"label="姓名"width="120"></el-table-column><el-table-columnproperty="address"label="地址"></el-table-column></el-table></div>
</template><script>
// @ is an alias to /srcexport default {name: 'HomeView',data(){return{tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'}, {date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄'}, {date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'}, {date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄'}],currentRow: null}},components: {},methods:{handleCurrentChange(val) {this.currentRow = val;}}
}
</script>

(2)二次封装
①例子一
- 要求:表格中获取数据,自定义修改样式
- 分析:运用element-ui提供的插槽,在template标签中,绑定slot-scope属性来获取值
<el-table-column label="列名" width="200"> <template slot-scope="scope"><!-- scope.row捕捉每一行的内容 --><span style="color: red;">{{ scope.row.name }}</span></template>
</el-table-column>

②例子二
- 要求:改造表格前面为单选符号的样式
- 分析:添加一个封装好的单选框标签
- 注意:
要给表格绑定row-click事件,当某一行被点击时会触发该事件
单选框还提供了change事件来响应变化,且它会传入一个参数value
点击表格除单选框外的其他地方时,表格样式变,但是单选框没有跟着变,需要用到方法setCurrentRow(),该方法的作用:设置某一行的选中状态
单选框标签el-radio中间什么都不写的时候,页面会默认显示label属性的文字信息,如果想要只显示单选框,可以在标签中间写
<template><div class="home"><el-tableref="singleTable":data="tableData"highlight-current-row@current-change="handleCurrentChange"style="width: 100%"@row-click="setCurrent"><el-table-column label="单选" width="50"><template slot-scope="scope"><!-- :label动态绑定label属性,scope.$index获取识别当前下标 --><el-radiov-model="radio":label="scope.$index"@change="setCurrent(scope.row)"> </el-radio></template></el-table-column><el-table-column type="index" width="50"> </el-table-column><el-table-column property="date" label="日期" width="120"></el-table-column><el-table-column property="name" label="姓名" width="120"></el-table-column><el-table-column property="address" label="地址"> </el-table-column></el-table></div>
</template><script>
// @ is an alias to /srcexport default {name: "HomeView",data() {return {radio: 0,tableData: [{date: "2016-05-02",name: "王小虎",address: "上海市普陀区金沙江路 1518 弄",},{date: "2016-05-04",name: "王小虎",address: "上海市普陀区金沙江路 1517 弄",},{date: "2016-05-01",name: "王小虎",address: "上海市普陀区金沙江路 1519 弄",},{date: "2016-05-03",name: "王小虎",address: "上海市普陀区金沙江路 1516 弄",},],currentRow: null,};},components: {},methods: {setCurrent(row) {console.log(row);this.radio = this.tableData.indexOf(row)this.$refs.singleTable.setCurrentRow(row);},handleCurrentChange(val) {this.currentRow = val;},},
};
</script>

4、其他内容的学习
(1)小编的另一篇ElementUI学习文章
ElementUI学习笔记_申小兮IU的博客-CSDN博客ElementUI简介,其安装步骤,一些布局,容器,按钮,表格,对话框的简单操作https://blog.csdn.net/qq_51478745/article/details/129662671?spm=1001.2014.3001.5502(2)官网
Element - The world's most popular Vue UI frameworkElement,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.eleme.cn/#/zh-CN/component/radio
二、echarts
1、简介
一个基于JavaScript的开源可视化图表库,也是一种框架,封装好的东西
2、考点
(1)配置项
(2)数据处理
3、安装
(1)终端npm下载
npm install echarts --save
(2)引入式
import * as echarts from 'echarts';
(3)直接从 GitHub 获取下载到本地
GitHub - apache/echarts: Apache ECharts is a powerful, interactive charting and data visualization library for browserApache ECharts is a powerful, interactive charting and data visualization library for browser - GitHub - apache/echarts: Apache ECharts is a powerful, interactive charting and data visualization library for browser
https://github.com/apache/echarts项目的 release 页面可以找到各个版本的链接。点击下载页面下方 Assets 中的 Source code,解压后 dist 目录下的 echarts.js 即为包含完整 ECharts 功能的文件。
小伙伴们也可以直接到小编的资源下载🧐
https://download.csdn.net/download/qq_51478745/87630802?spm=1001.2014.3001.5501
https://download.csdn.net/download/qq_51478745/87630802?spm=1001.2014.3001.5501
4、配置项:使用echarts的三步走
(1)初始化
echarts.init(dom)
代码例子
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../../echarts.min.js"></script><style>#demo{width: 300px;height: 300px;}</style>
</head>
<body><div id="demo"></div><script>// 初始化const demo = echarts.init(document.getElementById('demo'))</script>
</body>
</html>

(2)定义配置项options
(3)配置项设置生效setOption
理解:要先初始化一个盒子,构思盒子要做成什么样的,开始做盒子
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../../echarts.min.js"></script><style>#demo {width: 600px;height: 400px;}</style>
</head><body><div id="demo"></div><script>// 初始化const demo = echarts.init(document.getElementById('demo'))// 配置项const option = {xAxis: {// category类别type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [150, 230, 224, 218, 135, 147, 260],type: 'line'}]};// 设置demo.setOption(option)</script>
</body></html>
5、13届蓝桥真题(3)布局切换
没有什么技巧,熟悉echarts就可以很容易看出是x轴、y轴的type值写反了
正确结果如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><script src="./js/echarts.js"></script><title>和手机相处的时光</title></head><style>* {margin: 0;padding: 0;}#main {margin: 20px;background-color: white;}</style><body><div id="main" style="width: 1000px; height: 600px"></div></body><script>var chartDom = document.getElementById("main");var myChart = echarts.init(chartDom);/*TODO:ECharts 的配置中存在错误,请改正*/var option = {title: {text: "一周的手机使用时长",},xAxis: {type: "category",data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],},yAxis: {type: "value",},series: [{data: [2.5, 2, 2.6, 3.2, 4, 6, 5],type: "line",},],};myChart.setOption(option);</script>
</html>
6、数据格式处理:14届蓝桥模拟赛 1 期(8)
要求:获取下面json文件的数据,并修改成x、y轴能用的数据格式,使内容正确显示在图上
{"code": 200,"desc": "请求成功","data": {"2月": [30, 40, 30, 20, 10, 20, 30, 69, 86, 12, 32, 12, 23, 40, 50, 61, 39, 28,20, 35, 20, 38, 43, 52, 30, 39, 52, 70],"3月": [36, 48, 52, 30, 39, 52, 20, 18, 25, 33, 21, 36, 44, 63, 32, 89, 98, 23,25, 36, 29, 31, 42, 23, 45, 56, 98, 83, 25, 28, 48]}
}
分析:根据前面的认识,正确的数据格式如下,我们要做的就是如何把json取到的数据修改成下面的格式数据
// 修改后的数据
// 周数据
weekData = {x: ['2月第1周', '2月第2周', '2月第3周', '2月第4周', '3月第1周', '3月第2周', '3月第3周', '3月第4周', '3月第5周'],y: [180, 274, 253, 324, 277, 240, 332, 378, 101]
}
// 月数据
monthData = {x: ['2月', '3月'],y: [1031, 1328]
}
(1)做这道题前先学习两个知识点
①for...in循环:获取的item值是对象的key
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>const data = {"2月": [30, 40, 30, 20, 10, 20, 30, 69, 86, 12, 32, 12, 23, 40, 50, 61, 39, 28,20, 35, 20, 38, 43, 52, 30, 39, 52, 70],"3月": [36, 48, 52, 30, 39, 52, 20, 18, 25, 33, 21, 36, 44, 63, 32, 89, 98, 23,25, 36, 29, 31, 42, 23, 45, 56, 98, 83, 25, 28, 48]}// for...in:循环对象,且获取的值是对象的keyfor(item in data){console.log(item);console.log(data[item]);}</script>
</body></html>
②迭代器reduce:做累加
<script>[1,2,3].reduce(function(pre,cur){return pre+cur},0)// reduce()会循环数组[1,2,3]// 0是初始值,不写默认也是0// 第一次循环:pre = 0 ; cur = 1 ; return = 0 + 1 = 1// 第二次循环:pre = 1 ; cur = 2 ; return = 1 + 2 = 3// 第三次循环:pre = 3 ; cur = 3 ; return = 3 + 3 = 6
</script>
更多扩展,小伙伴们可以看小编下面这篇文章🧐
ES6篇(上)_申小兮IU的博客-CSDN博客ES6主要内容:const的使用,let与var的区别,增强写法,解构赋值(数组解构,对象解构),深浅拷贝,高阶函数(filter、map、reduce)https://blog.csdn.net/qq_51478745/article/details/127140261③slice(begin,end)方法:返回一个新的数组对象,该数组由begin,end两个值决定,范围包括begin,不包括end(左闭右开),原数组不会改变
<script>const arr = ['a','b','c','d','e','f','g','h','i']for(let i = 0;i<arr.length;i+=2){console.log(arr.slice(i,i+2));}//第一次循环:arr.slice(0,2)获取到arr下标为0和1的值//第二次循环:arr.slice(2,4)获取到arr下标为2和3的值// 以此类推
</script>

(2)月数据的处理
<script>// 原数据const data = {"2月": [30, 40, 30, 20, 10, 20, 30, 69, 86, 12, 32, 12, 23, 40, 50, 61, 39, 28,20, 35, 20, 38, 43, 52, 30, 39, 52, 70],"3月": [36, 48, 52, 30, 39, 52, 20, 18, 25, 33, 21, 36, 44, 63, 32, 89, 98, 23,25, 36, 29, 31, 42, 23, 45, 56, 98, 83, 25, 28, 48]}// 每周的const weekData = {x:[],y:[]}// 每月的const monthData = {x:[],y:[]}for(item in data){//console.log(item);//console.log(data[item]);//每月的x轴monthData.x.push(item)// 每月的y轴值,用迭代器累加monthData.y.push(data[item].reduce((pre,cur)=> pre + cur))}console.log(monthData);
</script>
(3)周数据的处理
<script>// 原数据const data = {"2月": [30, 40, 30, 20, 10, 20, 30, 69, 86, 12, 32, 12, 23, 40, 50, 61, 39, 28,20, 35, 20, 38, 43, 52, 30, 39, 52, 70],"3月": [36, 48, 52, 30, 39, 52, 20, 18, 25, 33, 21, 36, 44, 63, 32, 89, 98, 23,25, 36, 29, 31, 42, 23, 45, 56, 98, 83, 25, 28, 48]}// 每周的const weekData = {x:[],y:[]}// 每月的const monthData = {x:[],y:[]}// for...in:循环对象,且获取的值是对象的keyfor(item in data){// console.log(item);// console.log(data[item]);//每月的x轴monthData.x.push(item)// 每月的y轴值,用迭代器累加monthData.y.push(data[item].reduce((pre,cur)=> pre + cur))let week = 1for(let i = 0; i<data[item].length; i += 7){weekData.x.push(`${item}第${week++}周`)// 截取到每一周的数据,然后再累加weekData.y.push(data[item].slice(i,i+7).reduce((pre,cur)=> pre + cur))}}console.log(monthData);console.log(weekData);
</script>
(4)完整解题代码
// TODO:待补充代码let weekx = []let weeky = []let monthx = []let monthy = []axios.get('./data.json').then(res => {// console.log(res.data.data);for (item in res.data.data) {// console.log(item);monthx.push(item)monthy.push(res.data.data[item].reduce((pre, cur) => pre + cur))let week = 1for (let i = 0; i < res.data.data[item].length; i += 7) {weekx.push(`${item}第${week++}周`)weeky.push(res.data.data[item].slice(i, i + 7).reduce((pre, cur) => pre + cur))}}option.xAxis.data = weekxoption.series[0].data = weekymyChart.setOption(option)})let tabs = document.getElementsByName('tabs')for(let j=0;j<tabs.length;j++){tabs[j].onclick = function(){if(tabs[j].checked){if(tabs[j].id == 'week'){option.xAxis.data = weekxoption.series[0].data = weekymyChart.setOption(option)}else{option.xAxis.data = monthxoption.series[0].data = monthymyChart.setOption(option)}}}}相关文章:
蓝桥杯Web组备赛笔记6
目录 一、ElementUI 1、安装 2、简单使用 3、例子 4、其他内容的学习 二、echarts 1、简介 2、考点 3、安装 4、配置项:使用echarts的三步走 5、13届蓝桥真题(3)布局切换 6、数据格式处理:14届蓝桥模拟赛 1 期&#x…...
python控制语句
🍋在本次的博客当中,我们来认识一下python语言的新的部分——python语言的控制语句。在我们的python语言当中控制语句大致分为三类:1.选择语句,2.循环语句,3.跳转语句。当我们在编写代码的时候可以根据代码的逻辑的需求…...
华为OD机试题【最小叶子节点】用 Java 解 | 含解题说明
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:最小叶子节点 题目 二叉树也可…...
【linux】多线程控制详述
文章目录一、进程控制1.1 POSIX线程库1.2 创建线程pthread_create1.2.1 创建一批线程1.3 终止线程pthread_exit1.4 线程等待pthread_jion1.4.1 线程的返回值(退出码)1.5 取消线程pthread_cancel1.6 C多线程1.7 分离线程pthread_detach二、线程ID值三、线…...
SpringCloud学习-实用篇01
以下内容的代码可见:SpringCloud_learn/day01 1.认识微服务 单体架构和分布式架构 体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署 优点:架构简单,部署成本低缺点:耦合度高 分布式架构&#…...
如何使用python删除一个文件?好用到上头.....
人生苦短,我用python 若想利用python删除windows里的文件, 这里需要使用os模块 那接下来就看看利用os模块是如何删除文件的吧~ 具体实现方法如下! 更多学习资料:点击此处跳转文末名片获取 os.remove(path) 删除文件 path. 如果path是一…...
java学习笔记——权限修饰符、内部类
2.1 概述 在java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限, public:公共的 protected:受保护的 default:默认的 private:私有的 2.2 不同权限的…...
Java设计模式(十二)—— 状态模式
状态模式定义如下:允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。 适合状态模式的情景如下: 对象的行为依赖于它的状态,并且它必须在运行时根据状态改变它的行为。需要编写大量的条件分支语句来决定…...
功能测试自动化成功的7个因素
随着软件开发的不断发展,对高效和有效测试的需求也在不断增加。最关键的测试类型之一是功能测试,它确保软件执行其设计的任务。功能测试对于软件开发过程至关重要,而自动化对于实现更快、更可靠的结果也很重要。 为什么功能测试很重要&#x…...
基于openssl 自行签发https 协议证书 ,同时支持nginx配置
1准备工作 准备一台有openssl环境的主机即可,openssl版本暂时无要求。本次环境采用centeros7.6自带openssl。另外,准备一个nginx。 2证书签发 目录 1准备工作 2证书签发 2.1生成根秘钥 2.2生成根证书 2.2.1根证书格式转换 2.3生成私钥key 2.4生…...
Window Terminal 安装 Oh My Posh 美化
Reference Oh-My-Posh 官方文档Windows Terminal 官方文档手把手 Windows Terminal 美化 安装 微软商店搜Windows Terminal安装即可。 Oh My Posh winget 找不到 winget : 无法将“winget”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 解决方法:添加…...
单片机 | 51单片机实践
【金善愚】 单片机应用实践——基础篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid144001 仿真软件:Proteus 8.13 安装链接:https://pan.baidu.com/s/1-1fscykdvulV60xA4Hygaw?pwdxeob 代…...
根据时间戳获取总用时(天时分秒)
//获取总用时(天时分秒) export const getTotalTime (time) > { if (!time) { return ""; } let s time / 1000; let m s / 60; let h m / 60; let day h / 24; if (Math.floor(day)) { return Math.floor(day) "天" Mat…...
【独家】华为OD机试 - 符合条件的子串长度 or 连续字串 ABV(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本期题目:符合条件的子串长度 or 连续字…...
达梦数据库 linux安装
检查 Linux(Unix)系统信息 如果用户的 DM 软件安装包是经过数字签名的,请按官网进行相关操作。此处忽略。 获取系统位数 getconf LONG_BIT 查询操作系统release信息 lsb_release -a 查询系统信息 cat /etc/issue 查询系统名称 uname -a 之所以要先检查系统信息&…...
数字孪生颠覆传统铝材挤压生产,全新生产方式即将到来!
随着市场经济的发展,各种新型的高科技建筑材料相继出现,所有的基础工程均需要大量的建筑,需要大量门窗和建筑材料,而铝及其铝合金在其中占有重要的地位。随着时代的进步,材料的应用也发生着变化。因铝合金型材具有强度…...
会声会影2023新版本功能详情讲解
会声会影2023Corel VideoStudio一款功能丰富的视频编辑软件。会声会影2023简单易用,具有史无前例的强大功能,拖放式标题、转场、覆叠和滤镜,色彩分级、动态分屏视频和新增强的遮罩创建器,超越基本编辑,实现影院级效果。…...
nodejs+vue文旅门户信息网站 elementui旅游项目推荐系统 景点门票预订网站vscode
在社会快速发展的影响下,服务行业继续发展,随着旅游的人数不断增加,使哈尔滨旅游项目推荐平台的管理和运营比过去十年更加信息化,依照这一现实为基础,设计一个快捷而又方便的网上哈尔滨旅游项目推荐平台是一项十分重要…...
学习HM微博项目第4天
步骤:OAuth授权01_加载登录界面 -> OAuth授权02_获得accessToken -> OAuth授权03_存储账号信息 -> OAuth授权04_封装账号存储 -> OAuth授权05_封装控制器的切换 OAuth授权01_加载登录界面 为了测试方便,暂时把window的根控制器固定设置为授…...
一次完整的OCR实践记录
一、任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别,涉及保密的原因,这里就不能粘贴出具体的图片了,下面粘贴出一张类似需要识别的图片。 假如说我的数据源如上图所示,那么我需要做的工作就是将上面图片里面标红的数…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
