首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2023秋招大厂-嵌入式开发经典笔试面试题目大整理

第三章网络编程 1 、TCP、UDP的区别 2 、TCP、UDP的优缺点 3 、TCP UDP适用场景 4、 TCP为什么是可靠连接 5、OSI典型网络模型,简单说说有哪些; 6、三次握手、四次挥手 第四章常见算法...(讨论编程习惯的问题,一般是在.h文件中声明函数,不会做变量定义;另外,编程中每一个模块都会有对应的.c和.h文件,最终的总程序自己定义一个comm.c和comm.h去调用各个模块,这样的习惯觉得还行...或运算的话,当然不会,因为 0|1=1,中断了 10、IIC、SPI、UART通信协议的作用和区别,以及为什么这个不用另外一个进行通信 11、用变量a给出下面的定义 8、C语言编程中,单片机平台,一般有...(讨论编程习惯的问题,一般是在.h文件中声明函数,不会做变量定义;另外,编程中每一个模块都会有对应的.c和.h文件,最终的总程序自己定义一个comm.c和comm.h去调用各个模块,这样的习惯觉得还行...或运算的话,当然不会,因为 0|1=1,中断了 10、IIC、SPI、UART通信协议的作用和区别,以及为什么这个不用另外一个进行通信 11、用变量a给出下面的定义 a) 一个整型数; b)一个指向整型数的指针

1.2K10

编程内功心法:如何写代码?

个人是非常不愿意与这种代码风格恶劣的人合作的。 参考规范 关于编码风格的问题,本文说命名和注释这两个方面。关于缩进、空格、断行、空行等其他方面的问题,可以参考本节给出的参考规范。...此外异常堆栈也会携带很多信息。 日志 谈到日志,首先要搞清楚一个问题,日志是干嘛用的?用来记录运行时的错误信息啊!是啊。好像大家都知道日志是干什么用的,但是为什么写起代码来就会忘记初衷呢!...比如指针、除零异常等。这种情况下,很难一眼看出引发这个异常的根源是参数传错了。需要对你的代码进行一番调试才行!...什么时候需要进行参数校验 认为一个方法或者函数在满足以下条件时有必要进行参数校验: 方法或者函数是对外公开的,不是私有的。 参数有可能为指针的时候。...如果这个时候自己也有可能会犯某些错(比如没注意边界,没注意是否可),那么这个时候是必须要做校验的。对于一些已经在其他层做过处理不太可能有错误的的情况,可以不做校验。

1.5K130
您找到你想要的搜索结果了吗?
是的
没有找到

神级程序员教你如何写代码——十年编程内功心法

个人是非常不愿意与这种代码风格恶劣的人合作的。 参考规范 关于编码风格的问题,本文说命名和注释这两个方面。关于缩进、空格、断行、空行等其他方面的问题,可以参考本节给出的参考规范。...为什么是 而不是 logger.debug(""); ? 为什么是 1 、 2 而不是一些更明确的文字信息呢? 在这里,合理的方式是下面这样。...比如指针、除零异常等。 这种情况下,很难一眼看出引发这个异常的根源是参数传错了。需要对你的代码进行一番调试才行!...什么时候需要进行参数校验 认为一个方法或者函数在满足以下条件时有必要进行参数校验: 方法或者函数是对外公开的,不是私有的。 参数有可能为指针的时候。...如果这个时候自己也有可能会犯某些错(比如没注意边界,没注意是否可),那么这个时候是必须要做校验的。对于一些已经在其他层做过处理不太可能有错误的的情况,可以不做校验。

2.7K50

数据结构【第二篇】线性表之链表的实现与讲解

找人)遍历的时候,需要多跑好多路,浪费好多时间,先不说这个,体院馆又不行了,你们这么个摆法,这小馆可放不下,这也就意味着空间复杂度增加了很多 我们刚才所围绕的都是在 "排队" 的基本前提下的,但我们能想到的方法并不是很理想...这是因为它含有一个地址域,这是什么意思呢?...,来存储它的后继元素的存储地址,这个存储元素信息的域叫做指针域或地址域,指针域中储存的信息也叫作指针或者链, 我们用一张图 看一下他的结构 ?...,也可以作为监视哨,或用于存放线性表的长度等附加信息 指针域中存放首元结点的地址 首元结点:存储第一个元素的节点 为什么要附设一个头结点 我们来解释一下: 链表如果为的情况下,如果单链表没有头结点,那么头指针就会指向...NULL,如果加上头结点,无论单链表是否为,头指针都会指向头结点,这样使得空链表与非链表处理一致 使首元结点前插入或删除元素的时候,与后面操作相同,不需要产生额外的判断分支,使得算法更加简单 ?

50400

腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)

虚函数的运行依赖于虚函数指针,而虚函数指针在构造函数中进程初始化,让它指向正确的虚函数表,而在对象构造期间,虚函数指针还未构造完成。 Q2. 网络字节序是大端序还是小端序? A:大端序。 Q3....(说这么多,后来的同学建议说下红黑树的五个特点) Q13. c++类的sizeof大小 A:c++类的大小为1,如果含有虚函数的话,大小为指针的大小。32位系统指针大小是4。...c++要求即使是类,对象也要有存储空间。含有虚函数的类则是因为对象由虚函数指针。 Q14....这部分给出题目。答案都总结在文档里,题目不分先后。 1、Linux互斥锁里面递归锁和非递归锁的使用方式,返回。...此外,就是介绍产品的软件架构图,以及自己负责的模块等等。很多同学遇到类似的问题,会说,自己负责一个部分,不知道产品的整体架构。

7.7K11

厌倦了指针异常?考虑使用Java SE 8的Optional!

---- 使您的代码更可读,并保护它免受指针异常。...为了给出一些历史背景,计算机科学巨人托尼·霍尔(Tony Hoare)写道:“称之为十亿美元的错误,这是1965年发明的无效参考。无法抗拒放弃的诱惑一个null引用,只是因为它很容易实现。...它是一个封装可选的类,如下面的清单2和图1所示。您可以将其Optional视为包含或不包含的单容器(它被称为“”) ,如图2所示。 ?...简而言之,Optional该类包括明确处理存在或不存在的情况的方法。然而,与引用相比的优点是,Optional当该不存在时,该类迫使您考虑该情况。因此,您可以防止意外的指针异常。...我们从编写痛苦的嵌套空白检查到编写能够组合,可读和更好地保护指针异常的声明性代码已经走了很长的路。

1.3K31

【干货】如何写代码 -编程内功心法

个人是非常不愿意与这种代码风格恶劣的人合作的。 参考规范 关于编码风格的问题,本文说命名和注释这两个方面。关于缩进、空格、断行、空行等其他方面的问题,可以参考本节给出的参考规范。...为什么是System.out.println("");而不是logger.debug("");? 为什么是1、2而不是一些更明确的文字信息呢? 在这里,合理的方式是下面这样。...而且那种情况下,抛出的异常可能就会有各种各样的了。比如指针、除零异常等。 这种情况下,很难一眼看出引发这个异常的根源是参数传错了。 需要对你的代码进行一番调试才行!...什么时候需要进行参数校验 认为一个方法或者函数在满足以下条件时有必要进行参数校验: 方法或者函数是对外公开的,不是私有的。 参数有可能为指针的时候。...如果这个时候自己也有可能会犯某些错(比如没注意边界,没注意是否可),那么这个时候是必须要做校验的。 对于一些已经在其他层做过处理不太可能有错误的的情况,可以不做校验。

82280

Java中有关Null的9件事

时常会受到指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为什么要保留null呢?...越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针、操作符重载、多继承实现的原因,null却与此正好相反。...为什么在Java中需要学习null?因为如果你对null不注意,Java将使你遭受指针异常的痛苦,并且你也会得到一个沉痛的教训。精力充沛的编程是一门艺术,你的团队、客户和用户将会更加欣赏你。...5) 任何含有null的包装类在Java拆箱生成基本数据类型时候都会抛出一个指针异常。...它将会抛出指针异常,但是你可能不知道,你可以使用静态方法来使用一个为null的引用类型变量。因为静态方法使用静态绑定,不会抛出指针异常

65220

如何写代码 — 编程内功心法

个人是非常不愿意与这种代码风格恶劣的人合作的。 爱 参考规范 关于编码风格的问题,本文说命名和注释这两个方面。关于缩进、空格、断行、空行等其他方面的问题,可以参考本节给出的参考规范。...为什么是System.out.println("");而不是logger.debug("");? 为什么是1、2而不是一些更明确的文字信息呢? 在这里,合理的方式是下面这样。...而且那种情况下,抛出的异常可能就会有各种各样的了。比如指针、除零异常等。 这种情况下,很难一眼看出引发这个异常的根源是参数传错了。需要对你的代码进行一番调试才行!...什么时候需要进行参数校验 认为一个方法或者函数在满足以下条件时有必要进行参数校验: 方法或者函数是对外公开的,不是私有的。 参数有可能为指针的时候。...如果这个时候自己也有可能会犯某些错(比如没注意边界,没注意是否可),那么这个时候是必须要做校验的。对于一些已经在其他层做过处理不太可能有错误的的情况,可以不做校验。

49230

Java中有关Null的9问题

时常会受到指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为什么要保留null呢?...越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针、操作符重载、多继承实现的原因,null却与此正好相反。...为什么在Java中需要学习null?因为如果你对null不注意,Java将使你遭受指针异常的痛苦,并且你也会得到一个沉痛的教训。精力充沛的编程是一门艺术,你的团队、客户和用户将会更加欣赏你。...5) 任何含有null的包装类在Java拆箱生成基本数据类型时候都会抛出一个指针异常。...它将会抛出指针异常,但是你可能不知道,你可以使用静态方法来使用一个为null的引用类型变量。因为静态方法使用静态绑定,不会抛出指针异常

1.1K50

Java常见异常类型及原因分析

0x1 NullPointerException异常 顾名思义,NullPointerException 是指针异常。但是在 Java 中没有指针,怎么会有 指针异常呢?...所以这里的 NullPointerException 虽然不是真正的指针异常,但本质上差不多,是 因为引用没有指向具体的实例,所以当访问这个引用的方法的时候就会产生这种异常。...比较多见的是下面的两种情况: a)把调用某个方法的返回直接赋值给某个引用,然后调用这个引用的方法。在这种情况下,如果返回的是null,必然会产生NullPointerException异常。...说明:这个时候你的 p 就出现指针异常,因为你只是声明了这个 People 类型的对象并没有创建对象,所以它的堆里面没有地址引用,切记你要用对象调用方法的时候一定要先创建对象。...从这些提示信息中可以获取如下信息: 1)错误发生在 93 行 2)发生错误的时候,下标的2 接下来分析为什么下标值是 2 为什么不可以就可以解决了。

3.3K40

Java函数式开发——优雅的Optional指针处理

那些年困扰着我们的null 在Java江湖流传着这样一个传说:直到真正了解了指针异常,才能算一名合格的Java开发人员。...按照这个惯性思维我们的代码逻辑就是:你调用的接口,按照你给我的参数返回对应的“”,如果这条件没法找到对应的“”,那我当然返回一个null给你表示没有“任何东西”了。...因为在1965那个计算机的蛮荒时代,引用太容易实现,让哥根本经不住诱惑发明了指针这玩意。”)。 然后,我们再看看null还会引入什么问题。 看看下面这个代码: ?...orElseGet会因为出现null抛出指针异常,而orElseThrow会在出现null时,抛出一个使用者自定义的异常。可以查看API文档来了解所有方法的细节。...但是非常鼓励大家都学习和了解函数式编程的思路。尤其是过去侵淫在Java这一门语言、到现在还不清楚Java8会带来什么改变的开发人员,Java8是一个良好的契机。

1.5K10

Java中有关Null的9件事

越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针、操作符重载、多继承实现的原因,null却与此正好相 反。...为什么在Java中需要学习null?因为如果你对null不注意,Java将使你遭受指针异常的痛苦,并且你也会得到一个沉痛的教训。精力充沛的编程是一门艺术,你的团队、客户和用户将会更加欣赏你。...5)任何含有null的包装类在Java拆箱生成基本数据类型时候都会抛出一个指针异常。...它将会抛出指针异常,但是你可能不知道,你可以使用静态方法来使用一个为null的引用类型变量。因为静态方法使用静态绑定,不会抛出指针异常。...通过Java编程的一些经验和使用简单的技巧来避免指针异常, 你可以使你的代码变得null安全。因为null经常作为或者未初始化的,它是困惑的源头。

54920

关于nullptr这篇文章你一定要看

主要规定指针常量需要被转化成指针类型,同时这个转化为指针类型的还不能和其它的对象指针或者函数指针相同。两个指针常量的还需要相等。...主要就是说C中的指针常量是整型0被强转成了void*,这就可以确保这个指针与其它对象或函数指针不相等。...一个原因是可以让整形0放下重担,0表示一件事情,它只是一个整数类型0,没有任何其它语义,指针的活就安排给其它员工,这个员工就是nullptr关键字。...指针应该有什么特性吗? 1. 它应该有一个自己的名字,它应该是一个保留关键字。 2. 指针不能够被用于算数表达式中,不能被赋值给整型,也不能用于和指针类型外的类型做比较。 3....nullptr是有类型的: typdef decltype(nullptr) nullptr_t; 当空指针用nullptr表示时,指针就终于有类型了,当有异常需要抛出时,就可以抛出nullptr。

50930

代码洁癖系列(六):处理错误

但是,如果由最顶层的代码去处理异常,整个程序看上去是会整洁一些,但当我们需要修改某个底层代码抛出的异常时会发生什么呢?我们需要找到往上抛的每一个方法去修改它的签名,抛出新的异常,并重新发布。...对于我们自己抛出的异常,也应该给出异常发生的环境,例如列出调用栈,给出请求参数等等。 远离null 我们在读、写代码时,一定有被好多层的指针判断折磨的经历。...一不小心漏掉一个判断,那么程序就会出现指针异常这个异常要么被上层的catch捕获,要么直接抛出。很明显,这两种结果都不是我们想要的。怎么远离指针异常呢? 首先,代码的返回不要返回null。...可以选择直接抛出一个异常,或者返回一个特定的,比如对象等。 其次,代码调用时,参数不要传null,因为一旦传null,那么在方法体中就需要对这个参数进行非判断。...最后得到的就是我们希望看到的整洁而健壮的代码。如果觉得文章不错的话,欢迎帮忙点赞或转发。 ? —END—

39120

C++后台研发工程师2018年BAT华为网易等面经总结

修饰的变量会如何处理、一个对象的大小是多少、函数重载时编译器是如何工作的、内存对齐的原则  分布式系统中CAP原则,给出具体的场景  用过哪些分布式的系统,解决了什么问题  B+树和红黑树的特点,为什么红黑树能保持较好的平衡性...  你论文里面解决的问题用了哪些算法  马尔科夫链介绍一下  你平常会学习什么算法(老哥别问了,知道你肯定是做算法的了。。) ...看你用的是苹果手机,你用过它的延时摄影(现在叫慢动作)的功能吗,它为什么在几年前就可以处理4k 60fps画面产生的巨大数据流(没用过谢谢)  3.百度-AI芯片算法  一面:  扣简历项目细节 ...常量指针指针常量  STL vector和map的底层结构  链表排序,如何直接在链表上实现快排,如果元素类型任意呢? ...写个最长公共子序列的题  以上几家公司问过的问题基本上是这些,大家如果有什么问题觉得没说清楚的可以留言或者私信我,如果后面还面了其他公司还会回来补充的。

1K30

Java 8 开始新增的 Optional 类

如果你写过一些 Java 代码的话,你应该知道 Java 中最常见的就是指针异常错误。 这个错误的原因就是你对一个为的对象进行操作了。...比如说,你有一个 List,但是这个 List 是对象,如果你要向这个 List 中添加元素或者删除元素的话,你铁定会遇到对象的异常。 Optional 类是一个可以为 NULL 的容器对象。...Optional提供很多有用的方法,这样我们就不用显式进行检测。 Optional 类的引入很好的解决指针异常。 概述 在本指南中,我们针对 Optional 来进行一些探讨。...Optional 这个类最新是从 Java 8 中引入的,其主要目的如上面我们介绍的,就是为了解决 Java 中广受诟病的异常。...同时我们也对如何从 Optional 中获得进行了一些说明,同时对如果是 null ,应该如何设置默认使用的 orElse() 和 orElseGet() 方法进行了一些阐述。

22450

剑指offer | 认识面试

笔者在面试的时候,通常给出的答案是**:现在的工作做了一段时间,已经没有太多的激情了,因此希望寻找一份更有挑战的工作。然后具体论述为什么有些厌倦现在的职位,以及面试的职位为什么会有兴趣。...少数对算法很重视的公司比如谷歌或者百度,还会要求应聘者熟练掌握动态规划和贪婪算法。如果应聘者对动态规划算法很熟悉,那么他就能很轻松地解决面试题31 "连续子数组的最大和”。...当把这个问题的方方面面都考虑到的时候,我们就不会再认为这道题简单了。 除了问题考虑不全面之外,还有一个面试官不能容忍的错误就是程序不够鲁棒。以前面的那段代码为例,只要输入-一个指针,程序立即崩溃。...在这个数据容器中,我们希望能够快速地找到最大并且能快速地替换其中的数字。经过权衡,我们发现二叉树比如最大堆或者红黑树都是实现这个数据容器的不错选择。 要想优化代码的效率,我们也要熟练掌握常用的算法。...如果此时内存不足导致new char抛出异常, mpData将是一个指针,这样非常容易导致程序崩溃。

29910

Java 8 开始新增的 Optional 类

如果你写过一些 Java 代码的话,你应该知道 Java 中最常见的就是指针异常错误。 这个错误的原因就是你对一个为的对象进行操作了。...比如说,你有一个 List,但是这个 List 是对象,如果你要向这个 List 中添加元素或者删除元素的话,你铁定会遇到对象的异常。 Optional 类是一个可以为 NULL 的容器对象。...Optional提供很多有用的方法,这样我们就不用显式进行检测。 Optional 类的引入很好的解决指针异常。 概述 在本指南中,我们针对 Optional 来进行一些探讨。...Optional 这个类最新是从 Java 8 中引入的,其主要目的如上面我们介绍的,就是为了解决 Java 中广受诟病的异常。...同时我们也对如何从 Optional 中获得进行了一些说明,同时对如果是 null ,应该如何设置默认使用的 orElse() 和 orElseGet() 方法进行了一些阐述。

29310
领券