20201306吴龙灿学习笔记

news/2024/4/29 23:08:41/文章来源:https://www.cnblogs.com/wulongcan20201306/p/16656401.html

一、知识点归纳:

第一章:引言

主要内容:
第一章是本书的引子,因为本书意在让我们学会Unix以及Linux相关只是,在高级语言的基础上进一步学习创造编程平台的基本语言,让我们学会硬件设备怎么样跟我们所熟知的软件设备取得联系。第一章讲述了我们如何利用本书学好系统编程,接着就是介绍了Unix的历史,介绍了Unix的各种版本,然后讲述Linux的开发以及各种已经发行的版本。随后便介绍了两种安装虚拟计算机的工具:VirtualBox和VMware,并教读者如何下载、安装、应用这两种软件。最后介绍了Unix/Linux文件系统组织、文件类型和常用的Unix/Linux命令,最后介绍了用户管理和维护Linux系统需执行的一些系统管理任务。

最有收获的地方:
其实之前已经有过运用虚拟机安装操作系统的经历,但是目的都是运用那个系统而不是针对此系统进行学习,从安装虚拟机开始,我就一直在思考,操作系统到底从何而来。通过安装虚拟机然后安装运用操作系统的过程,我对于系统本身而言的理解更加深刻了。系统需要通过系统编程才能成为一个系统,这里面需要在系统中定义进程,方便系统进行工作,除此之外,还需要文件系统,文件系统是我们把一些系统需要存储的东西放到固定的地方,方便我们调用,这个也是必不可少的。操作系统是个抽象的概念,但是把它生动化、形象化,它就像图书馆的操作模式一样,需要运行,需要存储。这就是我看完第一章的理解。
下面是安装虚拟机的截图:


此外我对于一些具体的内容也很有感触:
Ubuntu Linux系统管理:(1)用户账户:当用户使用登录名和密码登录后,登录进程将通过获取用户的gid和uid来转换成用户进程,并将目录更改为用户的homeDir,然后执行列出的initialProgram,该程序通常为命令解释程序sh。(2)sudo命令:在Ubuntu里,sudo(“超级用户执行”)允许用户以另一个用户(通常是超级用户)的身份执行命令,为确保用户能够发出sudo,只需在sudoers文件中添加一行:username ALL(ALL) ALL。下面列举一下课本上我印象深刻的命令语句:
ls:ls dirname列出CWD或目录的内容
cd dirname:更改目录
pwd:打印CWD的绝对路径名
touch filename:更改文件名时间戳
cat filename:显示文件内容
cp src dest:复制文件
mv src dest:移动或重命名文件
mkdir dirname:创建目录
rmdir dirname:移除(空)目录
rm filename:移除或删除文件
In oldfile newfile: 在文件之间创建链接
find: 搜索文件
grep: 搜索文件中包含模式的行
ssh: 登录到远程主机
gzip filename: 将文件压缩为.gz文件
gunzip file.gz: 解压.gz文件
tar-zcvf file.tgz.: 从当前目录创建压缩tar文件
tar-zxvf file.tgz.: 从.tgz 文件中解压文件
man: 显示在线手册页
zip file.zip filenames: 将文件压缩为.zip文件
unzip file.zip: 解压.zip文件

第二章:编程背景

主要内容:
第二章的内容主要是针对系统编程所需要的背景说起的。这一张的内容相较于第一张的引言来说,更加系统了,下面我就系统地说一下这一章的主要内容。
这一章先介绍了Linux中三种重要的文本编辑器:vim gedit emacs
(1)vim
Vim 是一个基于文本界面的编辑工具,使用简单且功能强大。更重要的是,Vim 是所有 Linux 发行版本默认的文本编辑器。
很多人习惯将 Vim 称为 Vi,其实 Vim 是 Vi 的增强版(在 Vi 的基础上增加了正则表达式的查找、多窗口的编辑等功能),使用 Vim 进行程序开发会更加方便。
(2)gedit
gedit是GNOME桌面环境默认的文本编辑器。它是Ubuntu及其他使用GNOME GUI用户界面的Linux的默认编辑器,包含用于编辑源代码和结构化文本(如标记语言) 的工具。
(3)emacs
Emacs是一种强大的文本 编辑器,在 程序员和其他以技术工作为主的计算机用户中广受欢迎。EMACS,即Editor MACroS( 编辑器宏)的缩写,最初由Richard Stallman( 理查德·马修·斯托曼)于1975年在MIT协同Guy Steele共同完成。这一创意的灵感来源于TECMAC和TMACS,它们是由Guy Steele、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏 文本编辑器。
以及讲了如何使用这三种文本编辑器,后面在实践中将会提到。
接着我认为十分重要的是就是程序开发。本书是按照程序开发的步骤来讲述程序开发的。从创建源文件开始,再利用gcc程序来把源文件转化成二进制可执行文件,方便计算机的读取。接着就讲述了所需要的相关可执行文件的内容。最后又强调了程序执行的过程和程序终止的相关内容。
然后本书还讲了C语言中有关函数调用的知识。以及C语言程序如何和相对低级的汇编代码取得连接。后面还讲了C语言的一些工具的信息,例如结构体和指针,还有类型强转内容。
随后讲到了一个比较重要的内容:makefile。
Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法。
接着又是GDB调试工具。它是UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。

最有收获的地方:
我认为我最有收获的地方是三个文本编辑器的使用,其实类似于Windows系统里面的编辑器,只不过我们太熟悉了而已,面对Linux的文件编辑器就很陌生,但是实际上是一样的。尤其是对于emacs的使用,我更有感触,下面是我试用的一些功能:
移动光标
Ctrl-p:将光标向上移动
Ctrl-b:将光标向左移动,逐位移动
Ctrl-f:将光标向右移动,逐位移动
Ctrl-n:将光标向下移动
Alt-b:将光标向左移动,逐单词移动
Alt-f:将光标向右移动,逐单词移动
Ctrl-a:将光标移动到行前
Ctrl-e:将光标移动行尾
Alt-a:将光标移动到前一个句号
Alt-e:将光标移动到后一个句号
Shift-Alt-<:将光标移动到文本开始的地方
Shift-Alt->:将光标移动到文本结尾的地方

删除操作
Ctrl-d:删除光标后的字符
Alt-d:删除光标后的单词
Alt-:删除光标前的单词
删除一整块内容:
(1) 移动光标到删除的起始位置,按Ctrl-,SPC就是空格键, Emacs会在屏幕底部显示 “Mark set”
(2)然后移动光标到要删除的终点位置,按Ctrl-w,就可以成功删除起始位置到终点位置的文本。

全选 、复制、粘贴
(1)打标记:移动光标到起始位置,按下Ctrl-,SPC就是空格键
(2)移动光标到终点位置,按Ctrl-x x
(3)复制Alt-w
(4)粘贴Ctrl-y

复制粘贴
Ctrl-k:删除从光标到行尾的字符,它其实没有删除,这类似剪切
Ctrl-y:把Ctrl-k的内容拉回来,这类似粘贴,y表示yank
Alt-k:删除光标后的一句话,删到句点为止。
Alt-y :可以回到你Ctrl-k的内容,然后你就可以用Ctrl-y把内容拉回来
Alt-w:用鼠标选择文本,再这个组合键就可以完成复制
Ctrl-y:粘贴

命令的终止与重复
Ctrl-u 数字 命令 :按指定次数重复执行命令
Ctrl-g:终止命令的执行

撤销操作
Ctrl-/ :撤销操作
Ctrl-x u:撤销操作
C-:这个要按Ctrl+Shift+,撤销操作

替换字符串
(1)按Alt-x
(2)在Emacs底部的提示中输入命令:replace-string (repl再按键进行自动补全),然后回车
(3)根据提示输入要查找的源字符串,回车
(4)根据提示输入替换的目标字符串,回车
(5)注意:Emacs只会从当前光标开始向后查找替换
最后它会让你确认:

y :替换当前匹配的
n:跳过,不做替换
q:退出,不做任何替换
.:替换这个匹配,然后退出
!:替换所有剩下的匹配
打开文件
Ctrl-x Ctrl-f:然后EMACS会让你在底部输入文件路径(Ctrl-g可以取消操作),回车就会打开文件,如果路径是一个文件夹的路径,就会显示文件夹下的内容,直接在里选择要打开的文件即可。

Ctrl-x Ctrl-s 文件名 回车:如果不加文件名,默认保存当前光标所在的文件。
如果我们使用 Ctrl-x Ctrl-f打开第二个文件或更多文件,那么前面打开的文件都仍然存在Emacs中,你可以再次通过 Ctrl-x Ctrl-f命令再次找到它们打开,这些打开过的文件都会被缓存到对应的buffer的对象中。当查找文件时,就会在Emacs中创建一个新的buffer对象与之对应,buffer的名字通常就是文件名。通过以下命令,可以查看buffer列表中有哪些打开的文件,接着切换过去:
Ctrl-x Ctrl-b:显示buffer列表
Ctrl-x b:切换buffer,切换文件,它会在屏幕下方提示输入你要切换的文件名
Ctrl-x Ctrl-c:提供在关闭Emacs前,保存所有的文件,这样就不用逐个文件操作保存。
Ctrl-z:在纯命令行的linux系统,即没有图形界面的,那么要切换到其他程序时,就要暂时退出Emacs,这个命令可以做到暂时退出,再返回时,仍然是离开前的样子。

自动保存文件
当你对文件做了修改,但还没来得及保存,你的电脑就崩溃关机了,你对文件的修改就会丢失。为了防止这种情况发生,Emacs会每隔一段时间,就会为每一个文件写到各自的自动保存文件中去,这个自动保存的文件的文件名就是源文件名前后加#号,如Hello.txt对应的自动保存文件名就是#Hello.txt#,当你正常保存了文件后,这个自动保存文件就会被删除。
当真的发生了电脑崩溃关机的情况,就可以利用自动保存的文件恢复,具体操作如下:
(1)按下 Alt-x recover-this-file 回车
(2)根据提示操作即可

EMACS窗口
Ctrl-x + 数组(0–9):
Ctrl-x 1: 取消所有的窗口,只保留光标所在的窗口
Ctrl-x 2: 垂直切割光标所在窗口,分成上下两个窗口
Ctrl-x 3 :水平切割光标所在窗口,分成左右两个窗口
Ctrl-Alt -v :光标不需要离开当前窗口,下一个窗口翻页
**Ctrl-x o ** :光标移动到下一个窗口,o表示other
Ctrl-x 5 2:打开一个新的窗口,这如同打开了一个新Emacs
Ctrl-x 5 0:关闭选中的窗口
:三个ESC表示退出

这些是我在网上学习的对于emacs使用的方法。

二、问题与解决思路
看完一二章,我主要有两个问题:
(1)C语言中全局变量如何定义?
(2)如何用虚拟机运行C语言程序?
解决第一个问题我查阅了相关资料,因为我知道在每一个子函数下定义变量是很容易的,但是跨越函数的范围就没有那么的容易了。而且在之前编写C语言程序的时候,我知道,如果有一个变量能够在整个程序随意调用不被改变时,这将会非常方便程序的编写。所以我找到了解决办法:
一个大的系统会包含好多个.C文件和.H文件,每个.C文件都有可能会访问全局变量,所以全局变量在定义的时候就要稍微做下改变了。通常的做法是建立一个包含系统所有全局变量的.H文件,系统用到的所有全局变量都定义在该文件内,文件名可以用Global修饰一下。在该文件中定义某个全局变量的时候需要用extern声明该变量为外部变量。比如要定义SysEventCounter标志为unsigned char型的全局变量可以这样定义:
extern unsigned char SysEventCounter; <----这里是关键,不能对该变量赋值,只能声明,赋值就会报错。
上述声明是写在.H文件中的。其他.C文件若要用到该变量,直接包含该.H文件就可以了
如果想要赋初值,可以在用到它的.C文件中这样写:
unsigned char SysEventCounter = 0;
不用赋初值时,直接
unsigned char SysEventCounter;
就可以了。注意:只需要在一个.C文件中写即可,其他.C文件直接可以用。如果在其他.C文件中也这样写会产生重复定义的错误。
全局变量对变量的类型不限制,任何类型都可以,只要按照上述方法定义就不会有错误。

对于第二个也是在csdn上查了教程,因为即使我打开命令框下载好了gcc包,但是我还是不知如何打开编辑框。经过查阅资料,我只要输入两行命令,就能打开C语言编辑器。
三、实践内容
我的实践是使用emacs编译器:
下面是使用emacs文本编辑器的一些规则:
安装emacs

bash:apt-get install emacs
二、emacs启动退出

bash:emacs
bash:emacs filename
emacs默认工作目录是当前用户的home目录
三、emacs快捷键

C是ctrl,M是alt

C-x是同时按,C x是先按ctrl放开后再按x
1、文件操作快捷键

对应菜单栏的File命令
C-x C-f 打开emacs默认目录下home的某个文件
C-x d 打开文件路径,查看某个文件的属性信息,并在这个文件上进行编辑操作
C-x i 将某个文件的内容插入到当前的缓冲区
C-x C-v 打开一个文件,取代当前缓冲区
C-x C-s 保存文件
C-x C-w 将当前缓冲区文件另存为新文件
C-x C-q 切换为只读或者读写模式
C-x C-c 退出Emacs

2、编辑操作快捷键

对应菜单栏的Edit命令
C-f 光标前进一个字符 M-> 光标移动到文件尾部
C-b 光标后退一个字符 C-M-f 向前匹配括号
M-f 光标前进一个字 C-M-b 向后匹配括号
M-b 光标后退一个字 C-i 将光标所在位置居中
C-a 光标移动到行首 M-n or C-u n 重复操作随后的命令n次
C-e 光标移动到行尾 C-u 重复操作随后的命令4次
M-a 光标移动到句首(第一个非空字符) C-u C-u 重复操作随后的命令8ci
M-e 光标移动到句尾(最后一个非空字符) C-x ESC ESC 执行理事命令记录,M-p选择上一条命令,M-n选择吓一跳命令
C-p 光标移动到上一行 C-d 删除一个字符
C-n 光标移动到下一行 M-d 删除一个字
C-v 向下翻页 C-k 删除一行
M-v 向上翻页 M-k 删除一句
M-< 光标移动到文件头部 C-_ 撤消操作

3、窗口操作

操作窗口
C-x 0 关闭当前窗口 C-x s 保存所有窗口缓冲
C-x 1 只留下一个窗口 C-x b 选择当前窗口的缓冲区
C-x 2 垂直均分窗口 C-x ^ 纵向扩大窗口
C-x 3 水平均分窗口 C-x } 横向扩大窗口
C-x o 切换到其他窗口

4、缓冲区列表操作
C-s 字符 打开缓冲区列表 u 取消标记
d or k 标记为删除 x 执行标记的操作
~ 标记为未修改状态 f 为当前窗口打开该缓冲区
% 标记为只读 o 在其他窗口打开该缓冲区
s 保存缓冲

5、程序编译

选择编译语言M-x [language]-mode

选择缩进风格M-x c-set-style

make -k命令调用makefile文件
M-x compile 执行编译操作 M-x xdb 调用xdb调试器
M-x gdb 调用gdb调试器 M-x sdb 调用sdb调试器
M-x dbx 调用dbx调试器

6、搜索模式

C-s 字符 向前搜索字符,查找到的字符以蓝色字体显示
ENTER 停止搜索
C-r 字符 向后搜索字符,查找到的字符以蓝色字体显示
C-s C-w 以光标所在位置的字为关键字进行搜索
C-s C-s 重复上一次搜索
C-r C-r 重复上一次反向搜索
C-s ENTER C-w 进入单词搜索模式,搜索完毕后,光标停留在查找到的第一个单词的后面
C-r ENTER C-w 进入反响单词搜索模式
C-r 进入查找/替换模式后,该命令进入迭代编辑模式
C-M-x 退出迭代编辑模式,返回到查找/替换模式

7、Shell模式

emacs支持shell

M-x shell 打开Shell
M-! 执行Shell命令
M-l M-! 执行Shell命令,命令的输出插入在光标当前位置,而不打开新的输出窗口
M-| 针对某一特定区域执行shell命令
M-! M-p 执行前一条shell命令,同M-!+向上方向键
M-! M-n 执行下一条shell命令,同M-!+向下方向键
下面是具体操作流程:
首先创建源文本:
使用一个可选文件名(如t. c)调用emacs编辑器。emacs将会在一个单独窗口中启动,如 图2.1所示,emacs窗口的顶部是一个菜单栏,每个菜单都可以打开,査看其他命令,用户 可点击菜单图标调用命令。开始时,不要使用菜单栏,重点是创建C语言程序源文件的简 单任务。emacs启动时,如果已经有t.c文件,它会打开文件并将文件内容加载到一个缓冲 区中进行编辑,否则,它会显示一个空的缓冲区,用户可在这里输入内容。图2.1所示为用 户输入行。emacs将任意.c文件识別为C语言程序的源文件 它将按照C代码行的惯例缩 进,例如,它将自动匹配每个适当的左“ {”右“}”缩进。实际上,它甚至可以检测出不 完整的C语句,并显示不适当的缩进,以警告用户C源代码行中可能出现的语法错误。

创建源文件后,按下meta键序列" Ctrl+X+C”,以保存文件并退岀。如果缓冲区中有 修改后未保存的文本,它会提示用户保存文件,如图2.2最后一行所示。输入y以保存文件 并退出emacs0或者,用户也可以点击菜单栏上的Save图标来保存并退出。

然后就是运行文件里的c语言程序,我们已经将文件里的内容保存了,然后通过特定命令:gcc 文件名 -o 文件名(不带后缀),然后回车./就可以得出结果:

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

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

相关文章

第二章 操作系统基本原理(操作系统知识)

一:操作系统概述 二:进程管理 PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。 三:存储管理四:文件管理五:作业管理六:设备管理

opencv入门四

目录鼠标操作与响应图像像素归一化类型转换图像放缩插值鼠标操作与响应 static void on_draw(int event, int x, int y, int flags, void* userobj) {Mat image *(Mat*)userobj;if (event EVENT_LBUTTONDOWN) {//鼠标点击时 sp.x x;sp.y y;std::cout << "star…

预科知识1-MarkDown语法

MarkDown语法的基本操作markdown 标题 方法:#(几个)+空格+内容 三级标题 四级标题 字体 方法:加粗(2个星号 内容 2个星号) 斜体(1个星号 内容 1个星号) 加粗斜体(3个星号 内容 3个星号) 删除线(2个波浪 内容 2个波浪) hello world hello world …

在线教育项目【前端路由和Ajax实现分析与后端连接分析】

目录 1&#xff0c;前端路由实现分析 1.1&#xff1a;入口文件中调用路由 1.2&#xff1a;定义路由模块 1.3&#xff1a;编写路由模块文件 1.3.1&#xff1a;配置一个或者多个子路由 1.3.2&#xff1a;编写教师路由对应的文件 2&#xff0c;后端接口分析&#xff08;与后…

查询数字的最邻近

这道题目要用二分+桶排的方式解决 函数: l~r找v c:靠左/右(‘l’/‘r’) 靠左和靠右用STL函数二分就行,这里讲一下思路,二分出最靠左/右的v值(but二维,在but[v][0~len]区间二分)再判断是否在区间内在区间内输出but[v][a](a为二分的答案)否则输出-1。 最后再考虑一下需要…

注解Annotation

注解是一种引用数据类型,重点掌握Deprecated(表示已过时),Override(表示重写)。 元注解是用来标注注解类型的注解如Target(用来标注注解可以出现在哪些位置)、Retention(用来标注最终保存到哪里)。 package com.javastudy.example13;import java.lang.annotation.Ann…

计算机毕业设计php+vue基于微信小程序的员工宿舍报修系统

项目介绍 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时…

神奇的卡尔曼滤波,目标追踪的福音

前言 卡尔曼滤波算法由匈牙利数学家Kalman提出&#xff0c;主要基于线性系统提出。这里我们将其用于汽车跟踪&#xff0c;并对其基本原理进行介绍。 神奇的卡尔曼滤波&#xff0c;目标追踪的福音 1. 背景知识 1.1 时间序列模型 1.2. 滤波 1.3. 线性动态系统 2. 卡尔曼滤波…

python生成PDF报告

如何使用Python制作pdf文档&#xff1f; PDF报告生成软件开发&#xff08;学习记录&#xff09; Python生成图文并茂的PDF报告 官方用户手册 字体下载注册问题 在windows找到字体文件&#xff1a;C:\Windows\Fonts 在你的python环境引入字体 D:\devementtool\Anaconda3-202…

Java并发 JUC工具类:Semaphore详解

文章目录Semaphore源码分析类的继承关系类的内部类类的内部类 - Sync类类的内部类 - NonfairSync类类的内部类 - FairSync类类的属性类的构造函数核心函数分析 - acquire函数核心函数分析 - release函数Semaphore 示例更深入理解单独使用Semaphore是不会使用到AQS的条件队列的场…

USB4 V2.0即将发布,速度高达80Gbps

关注星标公众号&#xff0c;不错过精彩内容作者 | strongerHuang微信公众号 | strongerHuang2019年3月初&#xff0c;USB-IF组织官方宣布了下一代 USB4.2019年9月3日&#xff0c;USB-IF组织正式发布 USB4(现在称USB4 V1.0)规范。最近&#xff0c;也就是2022年9月1日&#xff0c…

推荐系统中的特征工程

摘要&#xff1a;深度学习时期&#xff0c;与CV、语音、NLP领域不同&#xff0c;搜推广场景下特征工程仍然对业务效果具有很大的影响&#xff0c;并且占据了算法工程师的很多精力。数据决定了效果的上限&#xff0c;算法只能决定逼近上限的程度&#xff0c;而特征工程则是数据与…

uniapp 之 获取底部安全距离,状态栏高度等

特定样式注意点固定底部按钮自定义顶部导航栏其他工作中我们常常需要设置一些特定样式&#xff1a; 固定底部按钮自定义顶部导航栏…… 固定底部按钮 这里需要注意的是&#xff0c;真机运行时底部时IOS是存在安全距离的&#xff0c;这个时候就需要我们处理一下 .u-fixed-b …

Echarts y轴相关配置

目录1 简介2 y轴配置2.1 y轴主要属性2.2 y轴刻度设置3.总结1 简介 本篇介绍我们在使用Echarts画图时常用的一些y轴坐标设置&#xff0c;如y轴位置&#xff0c;y轴偏移量、y轴刻度、y轴最大最小值等&#xff1b; 2 y轴配置 2.1 y轴主要属性 只有一个纵坐标的情况下&#xff0…

TLM通信总结1

事务级建模 (TLM) 用于模块之间的通信。 TLM 是实现基于事务的方法的概念,这些方法可用于模块之间的通信。 UVM TLM UVM 为 TLM 库提供事务级接口,ports,exports,imp ports,and analysis ports。所有这些 TLM 元素都需要发送事务、接收事务以及从一个组件传输到另一个组件…

STM32物联网项目-程序框架思想

程序框架思想 一、程序框架的构想 1、STM32cubeMX生成的代码与添加的应用代码分离; 2、利用STM32cubeMX重新生成代码&#xff0c;不影响应用代码; 3、应用代码的添加&#xff0c;移除与修改&#xff0c;不影响cube生成的代码; 4、代码架构方便阅读&#xff0c;编辑&#x…

领域最全!多传感器融合方法综述!(Camera/Lidar/Radar等多源异构数据)

点击进入→自动驾驶之心技术交流群 后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文! 自动驾驶中的多传感器融合 原文:Multi-Sensor Fusion in Automated Driving: A Survey 自动驾驶正成为影响未来行业的关键技术,传感器是自动驾驶系统中感知外部世界的关键,其协作…

Java 开发中的 Lombok 是什么?

一. 血案 今天有个学生告诉我&#xff0c;他在项目中使用Mybatis框架查询时报错&#xff0c;提示无法创建对象。但自己仔细地检查了代码都没有发现错误&#xff0c;于是他就半夜拼命地给我发消息求救。 我起床拿手机&#xff0c;还差点摔倒闪了我的老腰&#xff0c;我老婆看我…

猿创征文|工作中遇到技术盲区后的自我成长

猿创征文&#xff5c;工作中遇到技术盲区后的自我成长 1、立场 我是一名python后端开发程序员&#xff0c;在一家创业公司中兢兢业业工作快两年了&#xff0c;从软件架构、开发、测试、部署、运维一手经办&#xff0c;到开发文档、API接口、开发周期、设备交付、安装完成全程…

面向对象编程原则(03)——单一职责原则

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 参考资料 《大话设计模式》 作者&#xff1a;程杰《Java设计模式》 作者&#xff1a;刘伟《图解设计模式》 作者&#xff1a;结城浩《重学Java设计模式》 作者&#xff1a;…