面试准备
jing_nnn
这个作者很懒,什么都没留下…
展开
-
研发面试准备
1. c++从编译到执行的过程c++从编译到执行要经历以下过程:源代码–>预处理–>编译–>优化–>汇编–>链接–>目标程序1.1 预处理过程要进行第一步,预处理过程,要干的事情有哪些呢, 要处理预编处理宏定义,条件编译指令,条件包含指令,特殊符号.对于宏定义指令,会将宏定义变量替换成对应的部分.对条件编译指令,预处理过程按照程序定义过滤掉不必要的部分. 对条件包含指令,预编译程序会把它通通加入到目标文件当中. 对于一些特殊符号,预编译程序会识别出来并用合适的值原创 2020-08-28 21:02:23 · 211 阅读 · 0 评论 -
大疆面试--可视化工程师
群面,三个面试官,分别负责qt、C++ 知识的询问。1.大疆知识的问答1.1 对大疆的认识2. 对自动驾驶的认识2. QT知识的问答2.1qt信号槽机制是否线程安全?相关回答:Qt信号槽机制的优势(1)类型安全。需要关联的信号和槽的签名必须是等同的,即信号的参数类型和参数个数同接收该信号的槽的参数类型和参数个数相同。不过,一个槽的参数个数是可以少于信号的参数个数的,但缺少的参数必须是信号参数的最后一个或几个参数。如果信号和槽的签名不符,编译器就会报错。(2)松散耦合。信号和槽机制减弱了Qt原创 2020-08-19 21:57:33 · 591 阅读 · 5 评论 -
八大排序之基数排序(桶排序)
基数排序(桶排序)https://www.cnblogs.com/bqwzx/p/11029264.html转载 2020-08-14 12:00:12 · 109 阅读 · 0 评论 -
操作系统常见面试题
1. 进程和线程进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。(关键词:资源调度分配的独立单位)线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。(关键词:CPU调度分派的基本单位)一个进程可以有多个线程(至少一个主线程),多个线程也可以并发执行。进程作为资源(如内存)分配的基本单位,作为其下属的线程都是可以享用其被分配到的资源的,而且线程可以共享同一块被分配的资源。而进程之间是一般不能分享彼此的资源的,进程原创 2020-08-12 20:45:24 · 264 阅读 · 0 评论 -
腾讯PC客户端开发
8.10日电话面试自我介绍,简历项目介绍TCP/UDP传输(MRUDP的窗口机制、TCP速率控制、拥塞控制机制详细解释、TCP保证可靠的机制、TCP time_wai状态为什么?)计算机网络(什么是计算机网络?分层?每一层的内容和协议?)操作系统()c++11 新特性(智能指针有哪几种、各有什么特点,shared_ptr如何避免内存泄漏,底层实现机制;c++11的函数对象、lambda函数、匿名函数)进程地址空间?进程与线程的区别,线程同步与线程互斥的区别内存分配的方式。内存碎片如何避免原创 2020-08-10 17:07:25 · 1660 阅读 · 0 评论 -
Windows消息机制
Windows消息机制是由消息队列、消息循环、消息处理(窗口处理过程)三部分组成1. 什么是消息MSG?消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序的消息队列(下面会讲到)中,然后应用程序再从消息队列中取出消息并进行相应的响应。在这个处理的过程中,操作系统也会给应用程原创 2020-08-10 11:20:51 · 260 阅读 · 0 评论 -
c++之深拷贝与浅拷贝
一.浅拷贝(缺省拷贝构造函数、位拷贝)在对象拷贝过程中,如果没有自定义拷贝构造函数,系统会提供一个缺省的拷贝构造函数,缺省的拷贝构造函数对于基本类型的成员变量,按字节复制,对于类类型成员变量,调用其相应类型的拷贝构造函数。阅读《高质量的c c++编程》,第9章有这样一段话,类似的话在《c++primer》《effective C++》都有所提及,那就是拷贝构造函数问题,这个是类编写者的一个基础问题。位拷贝(浅拷贝)举例,a指向b,b的改变其实会影响a的改变,同时a原本指向的空间发生泄漏。然后这种原创 2020-08-07 16:33:39 · 399 阅读 · 0 评论 -
c++之 NULL nullptr null的区别
nullptr是c++11中的关键字,表示空指针NULL要区分nullptr和NULL,首先要明白NULL的含义:NULL是一个宏定义,在c和c++中的定义不同,c中NULL为(void*)0,而c++中NULL为整数0//C语言中NULL定义#define NULL (void*)0 //c语言中NULL为void类型的指针,但允许将NULL定义为0//c++中NULL的定义#ifndef NULL#ifdef _cpluscplus原创 2020-08-06 15:40:45 · 293 阅读 · 0 评论 -
STL详解--阅读笔记
1. STL六大组件–功能与运用容器(containers):各种数据结构:如vector、list、deque、map、set用来存放数据。算法(algorithms):各种常用算法:sort、search、copy、erase、等迭代器(iterator):扮演容器和算法之间的胶合剂,是所谓的泛型指针仿函数(functor)配接器(adapters)配置器(allocators)六大组件之间的交互关系:container 通过allocator取得数据存储空间,algorithm通过it原创 2020-08-03 21:26:16 · 148 阅读 · 0 评论 -
函数指针
参考:https://zhuanlan.zhihu.com/p/22437704在C语言中,函数名就是表示函数的首地址,函数指针就是指向函数首地址的指针。1. 函数地址的获取因为函数地址就是bit数等于int的数据而已,所以有多种方法可以取得函数地址指向int 的指针(int *)int * p_function = (int *)print_something;其语句完整的写法应该为:int * p_function = (int *) &print_something;原创 2020-07-23 10:03:51 · 157 阅读 · 0 评论 -
c++之 sizeof()
1. c++中sizeof()sizeof是一个操作符(operator)。其作用是返回一个对象或类型所占的内存字节数。2. 语法sizeof有三种语法形式:1) sizeof (object); //sizeof (对象)2) sizeof object; //sizeof 对象3) sizeof (type_name); //sizeof (类型)对象可以是各种类型的变量,以及表达式(一般sizeof不会对表达式进行计算)。sizeof对对象求内存大小,最终都是转换为对对原创 2020-07-18 20:14:06 · 540 阅读 · 0 评论 -
动态规划
1. 动态规化解题的一般思路(标准官方):https://blog.csdn.net/ailaojie/article/details/83014821将原问题分解为子问题(开头已经介绍了怎么分解) (注意:1,子问题与原问题形式相同或类似,只是问题规模变小了,从而变简单了; 2,子问题一旦求出就要保存下来,保证每个子问题只求解一遍)确定状态(状态:在动规解题中,我们将和子问题相关的各个变量的一组取值,称之为一个"状态",一个状态对应一个或多个子问题所谓的在某个状态的值,这个就是状态所对应的子问题的原创 2020-07-05 14:59:10 · 125 阅读 · 0 评论 -
二叉搜索树
1…什么是二叉搜索树二叉搜索树就是左子树所有结点都小于根结点,右子树所有结点都打于根节点。当然这个定义递归的,它的左右子树也满足这个特点例如:2. 定义结构typedef int BSTDataType;//定义二叉搜索树结点类型typedef struct BSTreeNode{ BSTDataType _data; struct BSTreeNode* _left; struct BSTreeNode* _right;}BSTreeNode3. 在搜索二叉树原创 2020-07-04 11:13:25 · 154 阅读 · 0 评论 -
招银网络科技电话面试
1. 关于项目的负责内容还是非常有必要熟悉应急–天基的基础传输模块的,基本面试中都会觉得只界面模块很单薄应急—基础传输模块、无人机网络协议、 速率控制模块、界面模块天基—基础传输模块、 MRUDP、界面模块2. TCP长连接问:如何在TCP长连接和UDP改进之间进行取舍?首先暴露出来,我对socket连接的常见面试问题非常不了解,腾讯也曾问过长连接的问题,首先解决长连接与MRUDP 的理解问题,然后对socket常见的面试问题做了解记录。TCP长连接与短链接,项目中是使用的什么?TCP长原创 2020-06-29 16:34:54 · 7281 阅读 · 0 评论 -
c++ new 和 malloc的区别
malloc是标准库函数,支持覆盖。new是运算符,支持重载malloc和free仅仅分配和回收空间,而new和delete除了分配回收空间,还会调用构造函数和析构函数malloc返回的是void类型指针,必须进行类型转换。new返回的是具体类型指针...原创 2020-06-26 12:40:04 · 286 阅读 · 0 评论 -
c++基础之 结构体 联合体的区别
1. 结构体结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体-------自定义数据类型 struct _s{ char a; //1字节 int b; //4字节 long c; //8字节 void* d; //8字节 int e; //4字节 char* f; //8字节 }s;2. 联合体联合体用途:使原创 2020-06-26 11:29:51 · 259 阅读 · 0 评论 -
c++之 智能指针
1. 智能指针在c++内存中,除了静态内存和栈之外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delete:指向一个动态独享的指针,销毁对象,并释放与之关联的内存。动态内存管理经常会出现两种问题:一种是忘记释放内存,会造成内存泄漏;一种是尚有指针原创 2020-06-26 11:13:28 · 217 阅读 · 0 评论 -
为什么在.h文件中使用#ifndef CLASS_H和#define CLASS_H?
一般在.h文件中都会看到#ifndef FILE_H#define FILE_H /* ... Declarations etc here ... */ #endif那么为什么要在.h文件中这么声明呢?这是一种防止头文件被多次包含的预处理技术,防止出现因头文件多次加载而出现的编译错误或编译速度降低。在编译项目时,编译每个.cpp文件(通常)。简单来说,这意味着编译器会把你的.cpp文件,打开任何文件#included,将它们全部连接成一个海量文本文件,然后执行语法分析,最后将它转换成一些原创 2020-06-26 00:01:56 · 906 阅读 · 0 评论 -
数据库SQL语句学习
1. SQL简介SQL 是用于访问和处理数据库的标准的计算机语言。全称是 Structured Query Language。2. mySql 的语法结构https://www.runoob.com/sql/sql-top.html3. 自我总结基本功能语句包括数据库的增删改查等操作。3.1 创建表CREATE TABLE 语句用于创建数据库中的表。表由行和列组成,每个表都必须有个表名。CREATE TABLE table_name(column_name1 data_type(si原创 2020-06-24 17:16:53 · 213 阅读 · 0 评论 -
面试准备之 --- 最长不重复字串长度
描述:给定一个字符串,找到最长子串的长度,而不重复字符。例子:给定"abcabcbb"的答案是"abc",长度是3。给定"bbbbb"的答案是"b",长度为1。给定"pwwkew"的答案是"wke",长度为3.请注意,答案必须是子字符串,"pwke"是子序列,而不是子字符串算法思想:滑动窗口思想:如果确定子串s[i,j](假设表示字符串的第i个字符到第j-1个字符表示的子串),那么只需要比较s[j]是否与子串s[i,j]重复即可若重复:记录此时滑动窗口大小,并与最大滑动窗口比较,赋值。然后滑原创 2020-05-19 17:23:31 · 87 阅读 · 0 评论 -
字节跳动面试记录
面试字节跳动Android岗,共面三次,前两面技术面,最后一面boss面。面试过程记录如下:一面(注重基础,计算机网络、操作系统、数据结构、算法、简历项目)算法题:刚开始面试官出“生产者消费者模型”,但本科不太熟悉算法类,所以先开始问基础计算机网络:TCP\UDP的特点阐述、TCP的拥塞控制策略数据结构:熟悉的数据结构有哪些以及它们的特点阐述(答:链表、数组、队列、栈、树、图)链表采用指针相连,在内存中地址不连续。数组是内存分配的一整块,元素位置相连、队列是先进先出的、栈是先进后出、原创 2020-05-19 16:58:41 · 1332 阅读 · 0 评论 -
字节跳动面试--算法题
字节跳动面试题:快速排序反转单链表求最长不重复字串的长度判断一个字符串是否是合法的IP地址昨天晚上的leetcde今晚两道leetcode原创 2020-05-18 16:10:27 · 604 阅读 · 0 评论 -
面试准备之 --http DNS
1. http2. DNS2.1 DNSDNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。使用分布式集群的工作方式2.2 DNS解析过程...原创 2020-05-14 14:47:01 · 196 阅读 · 0 评论 -
面试准备之--Android
面试问题:1. Android四大组件Android四大组件分别为activity1)一个Activity通常就是一个单独的屏幕(窗口)。2)Activity之间通过Intent进行通信。3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。serviceservice用于在后台完成用户指定的操作。service分为两种:(a)started(启动):当应用程序组件(如activity)原创 2020-05-13 11:05:10 · 331 阅读 · 0 评论 -
面试准备之--Top K算法的实现
1. 问题描述给定一个数字数组,求其中前K大的数字2. 解题思路快排—将所有数据排序,返回其中前K大的数字堆排序 — 维护一个容量为k的堆保存topk的数组,然后对每个数字比较一遍。思路也很简单,复杂度是O(nlogn)3. 快排思路及代码1.1 算法思路这里假设你对快排已经熟悉。我们知道快排是随机找个标识,然后用此标识进行排序。我们进行降序排序的方式,第一次进行排序后,就能获得在序列中的大小位置。如果它正好是第k大,那么它左边的数组就是题目要求的top k(当然,这是很幸运的情况,我们原创 2020-05-12 21:29:34 · 353 阅读 · 0 评论 -
c++基础之---STL
1. c++ STLC++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等原创 2020-05-11 15:02:51 · 146 阅读 · 0 评论 -
c++基础之---线程和进程
1. 进程1.1 何为进程进程是一个应用程序被操作系统拉起来加载到内存之后从开始执行到执行结束的这样一个过程。简单来说,进程是程序(应用程序,可执行文件)的一次执行。进程通常由程序、数据和进程控制块(PCB)组成。比如双击打开一个桌面应用软件就是开启了一个进程。传统的进程有两个基本属性:可拥有资源的独立单位;可独立调度和分配的基本单位。对于这句话我的理解是:进程可以获取操作系统分配的资源,如内存等;进程可以参与操作系统的调度,参与CPU的 竞争,得到分配的时间片,获得处理机(CPU)运行。进程在创原创 2020-05-11 12:05:56 · 1011 阅读 · 0 评论 -
c++基础之--- 多态
1. 多态1.1 介绍c++面向对象的三大特征:封装数据与具体操作实现的代码都放在某个对象的内部,使这些代码的具体细节不被外界发现,只留下一些接口供外部来使用,而不能一任何的形式来对象内部的实现。使用封装能够隐藏具体的实现的细节,使代码更加易于维护并且保证了系统的安全性。继承继承机制是面向对象程序设计使代码进行复用的最重要的手段,他允许程序员在保证类原有类特性的基础上进行扩展来增加功能。这样新产生的类就被称为派生类,继承就可以表现面向对象机制的的层次结构。多态定义:“一个接口,多种方法”转载 2020-05-11 11:21:38 · 287 阅读 · 0 评论 -
c++基础之--指针、引用、指针传递与引用传递、inline
inline指针与引用的区别多态线程和进程(以及僵尸线程等c++容器https://www.cnblogs.com/LUO77/p/5771237.html原创 2020-05-10 20:20:34 · 173 阅读 · 0 评论 -
c++基础之 ----c++内存
1. c++内存1. 种类堆(malloc),通过new、malloc、realloc分配的内存块,编译器不会负责它们的释放工作,需要用程序区释放。分配方式类似于数据结构中的链表。栈(如局部变量、函数参数),由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内存量有限,比如iOS中栈区的大小是2M。程序代码区(存放二进制代码)全局/静态存储区(全局变量、static变量)程序结束后,由系统释放。常量存储区原创 2020-05-10 20:17:48 · 107 阅读 · 0 评论 -
面试基础c++之static与const、常量定义define与const
1. static 与 constQ:static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗?static 修饰成员变量与成员函数分别有什么作用?static的作用:局部变量:在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。1)内存中的位置:静态存储区2)初始化:局部的静态变量只能被初始化一次,且C中不可以用变量对其初始化,而C++可以用变量对其初始化。(详见:http://www.cnblogs.com/novice-dxx/p原创 2020-05-10 20:01:36 · 336 阅读 · 0 评论 -
c++基础语法梳理
1. 常量1.1 解释常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。1.2 定义方式#define预处理器#define LENGTH 10 #define WIDTH 5#define NEWLINE '\n'const修饰const int LENGTH = 10;const int WIDTH = 5;const char NEWLINE = '\n';1.3 注意一般将常量定义为大写。2. 存储类2.1 解释存储类定义 C+原创 2020-05-10 19:03:21 · 208 阅读 · 0 评论