最新华为OD机试真题目录:点击查看目录华为OD面试真题精选:点击立即查看题目描述疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:给出数字个数n和行数m(0
判断列表中是否存在一个元素
baner4853
python
name=['alex','java',3,65,3,2,6,8,2,4,7,xiao,mike]判断列表中是否存在一个元素:if3inname:print("3inname")统计元素个数:name.count(3)#判断列表中元素3的个数全部替换:#将3替换成33333333foriinrange(name.count(3)):#统计元素3的个数并做为循环次数ele_of_name=name.
创建非模态对话框后,点击主窗口无发置顶的解决方法
afreetboy
VS2012
创建非模态对话框就不用说了,主要问题在于这一行:m_testdlg->Create(IDD_DIALOG1,this);将this改为GetDesktopWindow(),即可实现子窗口和父窗口点击置顶MFC设置对话框窗口位于所有窗口的最顶层SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);切换置顶时候,需要把之前置顶的改为&wndBo
Tkinter 事件处理
HG。
pythonGUI笔记
事件处理一个GUI应用整个生命周期都处在一个消息循环(eventloop)中。它等待事件的发生,并作出相应的处理。Tkinter提供了用以处理相关事件的机制处理函数可被绑定给各个控件的各种事件。widget.bind(event,handler)如果相关事件发生,handler函数会被触发,事件对象event会传递给handler函数1.鼠标和键盘事件事件说明鼠标光标进入控件时触发鼠标光标离开控件
R语言机器学习算法实战系列(十九)特征选择之Monte Carlo算法(Monte Carlo Feature Selection)
生信学习者1
R语言机器学习实战r语言机器学习算法数据分析数据挖掘数据可视化人工智能
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者!文章目录介绍原理步骤下载数据加载R包导入数据数据预处理数据分割MCFS运行MCFS-ID过程混淆矩阵重要特征的RI最小阈值距离与共同部分收敛特征重要性排序选择重要特征构建特征依赖图提取重要特征基于重要特征构建随机森林模型混淆矩阵评估模型AUC曲线刻画模型在训练和测试数据集的表现总结系统信息介绍特征选择(FeatureSel
IT行业中的SSE、SE、BSE、PE、PL各自是什么意思?
GSDjisidi
1024程序员节大数据职场和发展c语言phpjava
在IT行业中,SSE、SE、BSE、PE、PL各自具有特定的含义,它们通常代表不同的职位或角色。以下是对这些缩写的详细解释:SSE(SeniorSoftwareEngineer):含义:高级软件工程师。职责:根据开发进度和任务分配,完成相应模块软件的设计、开发、编程任务;进行程序单元、功能的测试,查出软件存在的缺陷并保证其质量;进行编制项目文档和质量记录的工作;维护软件使之保持可用性和稳定性。SE
日本年金-连续15年以上,每月可领近15w日元的退休金?
GSDjisidi
pythonc++javaphpc语言
日本的年金主要由国民年金和厚生年金两大类构成,国民年金只要连续缴纳超过十年,便可以在65岁之后领取基础养老金。领取的金额取决于年金缴纳的时长,如果连续缴纳40年,则可以领取满额基础养老金。而厚生年金领取的金额取决于职工的月薪以及缴纳时间的长短。只要连续缴纳超过十年,便可以在65岁之后领取厚生养老金。根据日本厚生省发布数据统计,日本国民平均每月可领取国民年金+厚生年金达到14.9万円。日本的年金制度
tkinter事件处理
Aaron_liu1
pythontkinter
事件类型用户通过鼠标、键盘、游戏控制设备在与图形界面交互时,就会触发事件。tkinter事件通常采用了将事件名称放置于尖括号内的字符串表示,尖括号中的内容我们称之为事件类型。事件类型有其通用的定义方式。如下:其中方括号内的内容为可选参数modifier为组合键的定义,例如,同时按下Ctrl键;type为通用类型,例如,键盘按键(KeyPress)detail用于具体信息,如按下键盘中‘B’键常用类
F#语言的图形用户界面
沈霁晨
包罗万象golang开发语言后端
F#语言的图形用户界面开发引言随着软件开发的日益复杂化,图形用户界面(GUI)在现代应用程序中的重要性不可忽视。它提供了一种直观的方式,使用户能够与应用程序进行交互。F#语言作为一种函数式编程语言,近年来在开发领域越来越受到关注,尤其是在数据分析和机器学习领域。但F#同样能够用于图形用户界面的开发,尤其是结合.NET平台及其丰富的库。本文将深入探讨F#语言在图形用户界面开发中的应用,包括常用的框架
MDX语言的移动应用开发
沈霁晨
包罗万象golang开发语言后端
以MDX语言的移动应用开发在当今快速发展的技术时代,移动应用程序的普及已经不可逆转。无论是社交媒体、在线购物还是游戏娱乐,移动应用在我们生活中的每一个角落都发挥着重要作用。随着需求的不断变化和技术的持续进步,开发者们也在不断寻找新的解决方案,以提高开发效率、降低成本并满足用户日益增长的期望。MDX(MarkDownExtended)作为一种新兴的移动应用开发语言,凭借其简洁的语法、灵活的结构和强大
Assembly语言的物联网
沈霁晨
包罗万象golang开发语言后端
Assembly语言在物联网中的应用引言物联网(IoT,InternetofThings)是一个迅速发展的技术领域,它将物理设备、车辆、建筑物等通过互联网连接在一起,实现数据的交换和通信。在这个充满可能性的世界里,各种各样的设备都能互相连接、收集和交换数据。而作为计算机底层的语言,Assembly语言在物联网设备的开发中仍然发挥着重要的作用。本文将探讨Assembly语言在物联网中的应用、其优势、
Ruby语言的Web开发
沈霁晨
包罗万象golang开发语言后端
Ruby语言的Web开发引言随着互联网技术的迅猛发展,Web开发已经成为软件开发领域的重要组成部分。在众多编程语言中,Ruby凭借其简洁优雅的语法、强大的社区支持以及丰富的框架,逐渐在Web开发领域占据了一席之地。本文将探讨Ruby语言在Web开发中的应用,重点介绍RubyonRails框架的特性、优势以及实际案例,帮助读者了解如何使用Ruby进行高效的Web开发。Ruby语言概述Ruby是一种动
MDX语言的语法
沈霁晨
包罗万象golang开发语言后端
MDX(MultidimensionalExpressions)语言是一种用于多维数据库的查询语言,广泛应用于微软的SQLServerAnalysisServices(SSAS)中。MDX的设计初衷是为了对多维数据进行复杂的查询和分析,尤其是在数据仓库和商业智能领域。本文将从MDX的基础知识、语法结构、常用函数以及实际应用等多方面进行详细探讨。一、MDX语言的基础知识MDX语言的核心是对多维数据集
JavaWeb,会话管理的学习
曦月落雨
javaWebjavaweb
会话管理概述无状态协议无状态就是不保存状态,HTTP就是无状态协议,HTTP协议自身不会对请求和响应之间的通信状态进行保存,也就是说,在HTTP协议这个级别,协议对于发送过的请求或者响应都不做持久化处理。会话管理实现的手段cookie是在客户端保留少量数据的技术,主要通过响应头向客户端响应一些客户端要保留的信息session是在服务器端保留更多的数据的技术,主要通过HttpSession对象保存一
HTML 元素详解:从入门到精通
浪浪山小白兔
html前端
HTML(HyperTextMarkupLanguage)是构建网页的基础语言,而HTML元素则是构成网页的基本单位。无论是网页的结构、内容还是样式,都离不开HTML元素。本文将深入探讨HTML元素的概念、结构、属性以及常见的使用方法,帮助你从零开始掌握HTML的基础知识,并逐步进阶到更复杂的应用。什么是HTML元素?HTML元素是构成HTML文档的基本单位,它由开始标签、内容和结束标签组成。每个
Python中判断列表是否包含某个元素的方法
五月天的尾巴
python判断列表是否包含元素
文章目录1、成员运算符in和notin2、使用count()方法3、使用any()函数4、使用set转换5、使用numpy库6、使用any()和生成器表达式7、使用index()方法8、使用itertools.chain()函数9、使用collections.Counter类10、使用pandas库以下整理几种判断列表中是否包含某个元素的方法。以下代码基于python2.7执行。1、成员运算符in
html与css学习笔记(2)
陈王卜
学习笔记
一、CSS引入方式具体有3种引入方式,语法如下表格所示:引入方式语法内联样式在HTML标签中使用style属性,例如:这是一个红色的div内部样式表在HTML文件的标签内使用标签,例如:div{color:red;}外部样式表使用标签在HTML文件的标签内引入外部CSS文件,例如:对于上述3种引入方式,企业开发的使用情况如下:1.内联样式会出现大量的代码冗余,不方便后期的维护,所以不常用。2.内部
Python 实现简单的爬虫
Java进阶营菌
程序员职场Pythonpython爬虫后端
Python是一种跨平台的计算机程序设计语言,面向对象动态类型语言,Python是纯粹的自由软件,源代码和解释器cpython遵循GPL(GNUGeneralPublicLicense)协议,随着版本的不断更新和语言新功能的添加,Python越来越多被用于独立的、大型项目的开发。快速抓取网页:使用urllib最基本的抓取功能,将百度首页的内容保存到本地目录下.importurllib.reques
node.js基于的人事管理系统程序+论文 可用于毕业设计
亦月学姐毕设
node.js课程设计
本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容选题背景关于人事管理系统的研究,现有研究主要以传统模式下的人事信息管理为主,多侧重于基本的员工信息存储与简单的考勤统计等功能实现。专门针对集成化、智能化且功能全面覆盖现代企业人事管理各环节的研究较少。在国外,一些先进的人事管理系统已具备高度自动化和数据分析功能,但因国情和企业管理文化差异,
如何使用Docker容器化Node.js应用?
JJCTO袁龙
Node.jsdockernode.js容器
在Node.js中,使用Docker容器化应用是一种常见的实践,它可以提供一致的开发和部署环境,简化部署流程,并提高应用的可移植性。以下是如何使用Docker容器化Node.js应用的步骤:编写Dockerfile:创建一个名为Dockerfile的文件,定义你的应用如何被容器化。以下是一个基本的Dockerfile示例:#使用官方Node.js作为基础镜像FROMnode:14#设置工作目录WO
构建企业私有RAG大模型: (可商用)Qwen2.5开源模型vLLM部署及示例
小敢摘葡萄
开源人工智能机器学习神经网络智能手机交互
在企业真实场景中,开发接口通常需要针对具体需求进行定制化处理,以更好地适配RAG应用系统的实际需求。相关代码后续会以Git仓库的形式分享。本章将继续探讨开源大模型的部署。在RAG系统的架构中,大模型扮演着至关重要的角色,是整个流程的“最后一环”。知识库的构建、检索,以及知识的排序与整合,都是为了为大模型提供准确、完整的上下文知识。这种知识支撑可以显著降低大模型生成过程中的幻觉问题(如生成不可靠或错
滑动窗口1
笔耕不辍cj
算法数据结构java
给定一个含有n个正整数的数组和一个正整数s,找出该数组中满足其和>=s的长度最小的连续子数组,并返回起长度。如果不存在符合条件的子数组,返回0。intmin(vector&nums,ints){ intleft=0, intn=nums.sizeof(); intsum=0; intmin_len=INT_MAX; for(intright=0;right=s) { min
微信小程序交易平台/基于微信小程序的购物系统/基于微信小程序的电商平台/基于微信小程序的商品销售系统
一枚小小程序员哈
微信小程序小程序
摘要随着当今网络的发展,时代的进步,各行各业也在发生着变化,于是网络已经逐步进入人们的生活,给我们生活或者工作提供了新的方向新的可能。本毕业设计的内容是设计实现一个微信小程序交易平台。使用微信开发者是以java语言进行开发,MYSQL为数据库开发平台,Tomcat网络信息服务作为应用服务器。微信小程序交易平台的功能已基本实现,主要包括有商家、用户、商品分类、商品信息、商品咨询等功能。本微信小程序软
将本地文件夹添加到 Git 仓库
乞力马扎罗山的雪B
Gitgitgithub
(先进入项目文件夹)通过命令gitinit把这个目录变成git可以管理的仓库gitinit把文件添加到版本库中,使用命令gitadd.添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件gitadd.用命令gitcommit告诉Git,把文件提交到仓库。引号内为提交说明gitcommit-m'firstcommit'去你的github或者gitee创建一个仓库,并把仓库地址复
基于树莓派的对话机器人
乞力马扎罗山的雪B
机器人人工智能
一、树莓派系统搭建1.搭建系统两种方法,一种是直接使用RaspberryPiImager安装,这种相关于是自动安装系统,好处是比较方便,但是问题是比较慢;另一种是自行下载镜像,然后再把镜像安装到内存卡中,这种步骤相对来说稍繁琐,但是因为已经提前下载好了镜像,安装相对比较快。第一种方法:从官网下载自动安装软件,RaspberryPiOS–RaspberryPi然后双击软件,选择合适的系统,然后选择内
jsonp 常用util方法
hw1287789687
jsonpjsonp常用方法jsonp callback
jsonp 常用java方法
(1)以jsonp的形式返回:函数名(json字符串)
/***
* 用于jsonp调用
* @param map : 用于构造json数据
* @param callback : 回调的javascript方法名
* @param filters : <code>SimpleBeanPropertyFilter theFilt
多线程场景
alafqq
多线程
0
能不能简单描述一下你在java web开发中需要用到多线程编程的场景?0
对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗?
Java多线程
2012年11月23日 15:41 Young9007 Young9007
4
0 0 4
Comment添加评论关注(2)
3个答案 按时间排序 按投票排序
0
0
最典型的如:
1、
Maven学习——修改Maven的本地仓库路径
Kai_Ge
maven
安装Maven后我们会在用户目录下发现.m2 文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件(artifact)都被存储到该仓库中,以方便重用。但是windows用户的操作系统都安装在C盘,把Maven仓库放到C盘是很危险的,为此我们需要修改Maven的本地仓库路径。
placeholder的浏览器兼容
120153216
placeholder
【前言】
自从html5引入placeholder后,问题就来了,
不支持html5的浏览器也先有这样的效果,
各种兼容,之前考虑,今天测试人员逮住不放,
想了个解决办法,看样子还行,记录一下。
【原理】
不使用placeholder,而是模拟placeholder的效果,
大概就是用focus和focusout效果。
【代码】
<scrip
debian_用iso文件创建本地apt源
2002wmj
Debian
1.将N个debian-506-amd64-DVD-N.iso存放于本地或其他媒介内,本例是放在本机/iso/目录下
2.创建N个挂载点目录
如下:
debian:~#mkdir –r /media/dvd1
debian:~#mkdir –r /media/dvd2
debian:~#mkdir –r /media/dvd3
….
debian:~#mkdir –r /media
SQLSERVER耗时最长的SQL
357029540
SQL Server
对于DBA来说,经常要知道存储过程的某些信息:
1. 执行了多少次
2. 执行的执行计划如何
3. 执行的平均读写如何
4. 执行平均需要多少时间
列名 &
com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil
7454103
eclipse
今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了,解决方法如下:
错误提示信息:
An error has occurred.See error log for more details.
Reason:
com/genuitec/
用正则删除文本中的html标签
adminjun
javahtml正则表达式去掉html标签
使用文本编辑器录入文章存入数据中的文本是HTML标签格式,由于业务需要对HTML标签进行去除只保留纯净的文本内容,于是乎Java实现自动过滤。
如下:
public static String Html2Text(String inputString) {
String htmlStr = inputString; // 含html标签的字符串
String textSt
嵌入式系统设计中常用总线和接口
aijuans
linux 基础
嵌入式系统设计中常用总线和接口
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线
Java函数调用方式——按值传递
ayaoxinchao
java按值传递对象基础数据类型
Java使用按值传递的函数调用方式,这往往使我感到迷惑。因为在基础数据类型和对象的传递上,我就会纠结于到底是按值传递,还是按引用传递。其实经过学习,Java在任何地方,都一直发挥着按值传递的本色。
首先,让我们看一看基础数据类型是如何按值传递的。
public static void main(String[] args) {
int a = 2;
ios音量线性下降
bewithme
ios音量
直接上代码吧
//second 几秒内下降为0
- (void)reduceVolume:(int)second {
KGVoicePlayer *player = [KGVoicePlayer defaultPlayer];
if (!_flag) {
_tempVolume = player.volume;
与其怨它不如爱它
bijian1013
选择理想职业规划
抱怨工作是年轻人的常态,但爱工作才是积极的心态,与其怨它不如爱它。
一般来说,在公司干了一两年后,不少年轻人容易产生怨言,除了具体的埋怨公司“扭门”,埋怨上司无能以外,也有许多人是因为根本不爱自已的那份工作,工作完全成了谋生的手段,跟自已的性格、专业、爱好都相差甚远。
一边时间不够用一边浪费时间
bingyingao
工作时间浪费
一方面感觉时间严重不够用,另一方面又在不停的浪费时间。
每一个周末,晚上熬夜看电影到凌晨一点,早上起不来一直睡到10点钟,10点钟起床,吃饭后玩手机到下午一点。
精神还是很差,下午像一直野鬼在城市里晃荡。
为何不尝试晚上10点钟就睡,早上7点就起,时间完全是一样的,把看电影的时间换到早上,精神好,气色好,一天好状态。
控制让自己周末早睡早起,你就成功了一半。
有多少个工作
【Scala八】Scala核心二:隐式转换
bit1129
scala
Implicits work like this: if you call a method on a Scala object, and the Scala compiler does not see a definition for that method in the class definition for that object, the compiler will try to con
sudoku slover in Haskell (2)
bookjovi
haskellsudoku
继续精简haskell版的sudoku程序,稍微改了一下,这次用了8行,同时性能也提高了很多,对每个空格的所有解不是通过尝试算出来的,而是直接得出。
board = [0,3,4,1,7,0,5,0,0,
0,6,0,0,0,8,3,0,1,
7,0,0,3,0,0,0,0,6,
5,0,0,6,4,0,8,0,7,
Java-Collections Framework学习与总结-HashSet和LinkedHashSet
BrokenDreams
linkedhashset
本篇总结一下两个常用的集合类HashSet和LinkedHashSet。
它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序
读《研磨设计模式》-代码笔记-备忘录模式-Memento
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
/*
* 备忘录模式的功能是,在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,为以后的状态恢复作“备忘”
《RAW格式照片处理专业技法》笔记
cherishLC
PS
注意,这不是教程!仅记录楼主之前不太了解的
一、色彩(空间)管理
作者建议采用ProRGB(色域最广),但camera raw中设为ProRGB,而PS中则在ProRGB的基础上,将gamma值设为了1.8(更符合人眼)
注意:bridge、camera raw怎么设置显示、输出的颜色都是正确的(会读取文件内的颜色配置文件),但用PS输出jpg文件时,必须先用Edit->conv
使用 Git 下载 Spring 源码 编译 for Eclipse
crabdave
eclipse
使用 Git 下载 Spring 源码 编译 for Eclipse
1、安装gradle,下载 http://www.gradle.org/downloads
配置环境变量GRADLE_HOME,配置PATH %GRADLE_HOME%/bin,cmd,gradle -v
2、spring4 用jdk8 下载 https://jdk8.java.
mysql连接拒绝问题
daizj
mysql登录权限
mysql中在其它机器连接mysql服务器时报错问题汇总
一、[running]
[email protected]:~$mysql -uroot -h 192.168.9.108 -p //带-p参数,在下一步进行密码输入
Enter password: //无字符串输入
ERROR 1045 (28000): Access
Google Chrome 为何打压 H.264
dsjt
applehtml5chromeGoogle
Google 今天在 Chromium 官方博客宣布由于 H.264 编解码器并非开放标准,Chrome 将在几个月后正式停止对 H.264 视频解码的支持,全面采用开放的 WebM 和 Theora 格式。
Google 在博客上表示,自从 WebM 视频编解码器推出以后,在性能、厂商支持以及独立性方面已经取得了很大的进步,为了与 Chromium 现有支持的編解码器保持一致,Chrome
yii 获取控制器名 和方法名
dcj3sjt126com
yiiframework
1. 获取控制器名
在控制器中获取控制器名: $name = $this->getId();
在视图中获取控制器名: $name = Yii::app()->controller->id;
2. 获取动作名
在控制器beforeAction()回调函数中获取动作名: $name =
Android知识总结(二)
come_for_dream
android
明天要考试了,速速总结如下
1、Activity的启动模式
standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。)
singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Ac
高洛峰收徒第二期:寻找未来的“技术大牛” ——折腾一年,奖励20万元
gcq511120594
工作项目管理
高洛峰,兄弟连IT教育合伙人、猿代码创始人、PHP培训第一人、《细说PHP》作者、软件开发工程师、《IT峰播》主创人、PHP讲师的鼻祖!
首期现在的进程刚刚过半,徒弟们真的很棒,人品都没的说,团结互助,学习刻苦,工作认真积极,灵活上进。我几乎会把他们全部留下来,现在已有一多半安排了实际的工作,并取得了很好的成绩。等他们出徒之日,凭他们的能力一定能够拿到高薪,而且我还承诺过一个徒弟,当他拿到大学毕
linux expect
heipark
expect
1. 创建、编辑文件go.sh
#!/usr/bin/expect
spawn sudo su admin
expect "*password*" { send "13456\r\n" }
interact
2. 设置权限
chmod u+x go.sh 3.
Spring4.1新特性——静态资源处理增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
idea ubuntuxia 乱码
liyonghui160com
1.首先需要在windows字体目录下或者其它地方找到simsun.ttf 这个 字体文件。
2.在ubuntu 下可以执行下面操作安装该字体:
sudo mkdir /usr/share/fonts/truetype/simsun
sudo cp simsun.ttf /usr/share/fonts/truetype/simsun
fc-cache -f -v
改良程序的11技巧
pda158
技巧
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。
让我们看一些基本的编程技巧:
尽量保持方法简短
永远永远不要把同一个变量用于多个不同的
300个涵盖IT各方面的免费资源(下)——工作与学习篇
shoothao
创业免费资源学习课程远程工作
工作与生产效率:
A. 背景声音
Noisli:背景噪音与颜色生成器。
Noizio:环境声均衡器。
Defonic:世界上任何的声响都可混合成美丽的旋律。
Designers.mx:设计者为设计者所准备的播放列表。
Coffitivity:这里的声音就像咖啡馆里放的一样。
B. 避免注意力分散
Self Co
深入浅出RPC
uule
rpc
深入浅出RPC-浅出篇
深入浅出RPC-深入篇
RPC
Remote Procedure Call Protocol
远程过程调用协议
它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发