华为面试优推4篇
【路引】由阿拉题库网美丽的网友为您整理分享的“华为面试优推4篇”文档资料,以供您学习参考之用,希望这篇范文对您有所帮助,喜欢就复制下载支持吧!
华为面试自我介绍【第一篇】
面试官您好,我叫xx,来自xx大学,是即将17年毕业的硕士研究生,研究生期间主要做图像处理、机器视觉方面的工作,所以我的求职意向是媒体算法。我的本科也是在xx大学理学院读的,专业是信息与计算科学,主要学一些数学和计算机方面的课程,所以我相信自己有比较不错的编程基础。自己比较喜欢编程,对机器视觉和大数据开发这些这些人工只能领域很感兴趣,所以自己业余时间自学了Linux、shell脚本、python语言,并且研究生期间有一个课题是在ARM平台中做的,所以我对ARM平台的交叉编译也有一定的了解。在学校做的三个项目都是关于目标检测识别的,都是基于C++和计算机视觉库OpenCV做的。所以我相信自己能熟练的运用C++及OpenCV做一些图像处理方面的工作。以上就是我的相关介绍,很荣幸能参加这个面试。谢谢!
对华为的了解:
首先众所周知华为是一个大的平台,经营范围很广,并在业内都处于领先的地位,主要经营电信网络设备,已经成为电信设备商的老大。同时华为也有自己的手机品牌和芯片研究。我用的手机就是华为荣耀,感觉相当好用,并且手机用的是华为自己生研究生产的海思芯片,说明华为的技术很牛,是一个优秀的企业。
并且觉我从在华为工作的同学那了解到,华为的氛围相对比较更像大学,非常单纯,同事之间的关系相对比较简单,并且公司有良好的人才培养体系,在里边,新员工可以快速成长,有很多学习和锻炼的机会,有机会接触到业界的核心技术和最前沿的技术理论。总而言之,华为是我向往的公司,希望自己能有机会到里边工作。谢谢!
华为技术面试【第二篇】
1,++i和i++ 区别
++i 先自增再参与运算,i++先参与运算再自增
2,makefile文件代码,写代码
test : gcc test : gcc-c : gcc-c
3,隐藏与重写的区别
隐藏是指当父类和子类有相同名字的属性的时候,父类的同名变量形式上不可见了。但是实际还是存在的。
譬如a有int变量a = 10,父类b有变量a = 5;当b b = new a()得时候,若用 那么父类的5就被隐藏了,此时 = 子类的10。在子类里面访问得时候只能得到子类的值
重写是针对方法的,通常是父类的方法在子类中重新写过。当执行子类的实例得时候,实际运行的是子类的方法。()来显式的访问。
4,linux 基本命令使用
如:如何查询帮助文档(man),如何查处文件(fiind),常用命令
5,进程间通信有几种,效率如何
# 管道(pipe):
管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
# 有名管道(named pipe):
有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
# 信号量(semophore):
信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
# 消息队列(message queue):
消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
# 信号(sinal):
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
# 共享内存(shared memory):
共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 ipc 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
# 套接字(socket):
套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
6,tcp/ip 有几层
tcp/ip层次模型共分为四层:应用层、传输层、网络层、数据链路层。
应用层—应用层是所有用户所面向的应用程序的统称。icp/ip协议族在这一层面有着很多协议来支持不同的应用,许多大家所熟悉的基于internet的应用的实现就离不开这些协议。如我们进行万维网(访问用到了http协议、文件传输用ftp协议、电子邮件发送用smtp、域名的解析用dns协议、远程登录用telnet协议等等,都是属于tcp/ip应用层的;就用户而言,看到的是由一个个软件所构筑的大多为图形化的操作界面,而实际后台运行的便是上述协议。
* 传输层—这一层的的功能主要是提供应用程序间的通信,tcp/ip协议族在这一层的协议有tcp和udp。
* 网络层—是tcp/ip协议族中非常关键的一层,主要定义了ip地址格式,从而能够使得不同应用类型的数据在internet上通畅地传输,ip协议就是一个网络层协议。
* 网络接口层—这是tcp/ip软件的最低层,负责接收ip数据包并通过网络发送之,或者从网络上接收物理帧,抽出ip数据报,交给ip层
7,p2p 和smtp分别在哪层
p2p(点对点传输协议)在传输层
smtp(邮件传输协议)在应用层 8,多态概念(父类引用子类参数)对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
java中实现多态的机制是什么? 1.方法的重写overriding和重载overloading是java多态性的不同表现。重写overriding是父类与子类之间多态性的一种表现,重载overloading是一个类中多态性的一种表现。
9,java 写1+n的和
10,数据结构与算法
如 排序,二叉树 11,mvc概念(为什么有dao层,什么作用)
mvc(model-view-controller,模型-视图-控制器模式)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型(model)、视图(view)和控制器(controller)。三层架构是最基本的项目分层结果,而mvc则是三层架构的一个变体,mvc是一种好的开发模式。首先你要明白mvc分别代表的是什么意思。m 即model(模型层),主要负责出来业务逻辑以及数据库的交互 v 即view(视图层),主要用于显示数据和提交数据
c 即controller(控制器),主要是用作捕获请求并控制请求转发
三层:ui 界面层 bll 业务逻辑层,dal数据访问层,model 实体层
mvc中的的m 不是三层中的model(实体层),他其实包括三层中的 bll,dal,model,这是非常要注意的,这也是他们之间的区别的关键所在
其有点有如下: 低耦合性
高重用性和可适用性 较低的生命周期成本 快速的部署 可维护性
有利于软件工程化管理
当然优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大 mvc设计模式… 三层架构…
他们细分之后得到的是:view(ui)、biz(bll)、dao(dal)、entity(model)、controller mvc把 biz(bll)、dao(dal)、model(entity)统一称之为 模型(model),得到:view、controller、模型(model)
三层 在我使用中 暂未体会到控制器的存在,完全是:ui、dao、bll
他们相同的设计理念就是:把视图设计与数据持久化进行分离,从而降低耦合性,易于扩展,提高团队开发效率。
12,gc回收机制
java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收
1.垃圾回收具有以下优点: i.把程序从复杂的内存跟踪、监测和释放等的工作中解放出来,减轻程序员进行内存管理的负担。ii.防止系统内存被非法释放,从而使系统更加健壮和稳定。2.垃圾回收具有以下特点: i.只有当对象不再被程序中的任何引用变量引用时,它的内存才可能被释放。ii.程序无法迫使垃圾回收器立即执行垃圾回收操作。iii.当垃圾回收器将要回收无用对象的内存时,先调用该对象的finalize()方法,该方法有可能使对象复活,导致垃圾回收器取消回收该对象的内存
13,android项目 自述
14,java 的进程与线程维护
15,n*n 打印出来的样子是(例如 n=4)
13 14
16 15 解答: 1 #define n 15 int s[n][n];void main(){ int k = 0, i = 0, j = 0;int a = 1;
for(;k <(n+1)/2;k++){ while(j < n-k)s[i][j++] = a++;i++;j--;while(i < n-k)s[i++][j] = a++;i--;j--;while(j > k-1)s[i][j--] = a++;i--;j++;while(i > k)
s[i--][j] = a++;i++;j++;} for(i = 0;i < n;i++){ for(j = 0;j < n;j++)cout << s[i][j] << 't';cout << endl;} } 2 define max_n 100 int matrix[max_n][max_n];/* *(x,y):第一个元素的坐标
* start:第一个元素的值
* n:矩阵的大小
*/ void setmatrix(int x, int y, int start, int n){
int i, j;
if(n <= 0)
//递归结束条件
return;
if(n == 1){ //矩阵大小为1时
matrix[x][y] = start;
return;
}
for(i = x;i < x + n-1;i++)
//矩阵上部
matrix[y][i] = start++;
for(j = y;j < y + n-1;j++)
//右部
matrix[j][x+n-1] = start++;
for(i = x+n-1;i > x;i--)
//底部
matrix[y+n-1][i] = start++;
for(j = y+n-1;j > y;j--)
//左部
matrix[j][x] = start++;
setmatrix(x+1, y+1, start, n-2);
//递归 }
void main(){
int i, j;
int n;
scanf(“%d”, &n);
setmatrix(0, 0, 1, n);
//打印螺旋矩阵
for(i = 0;i < n;i++){
for(j = 0;j < n;j++)printf(“%4d”, matrix[i][j]);
printf(“n”);
} }
16,linux 末行,输入,命令三个模式
vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要: 命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。
输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--insert--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。
末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。17,android 四层架构分别的作用(android系统框图)架构框架以此从上到下:
ations(应用程序(应用层));
ation framework(应用程序扩展层(框架));
d runtime libraries(android 系统运行库);
kernel(android 系统最底层核心系统 liunx)
18,android四大组件,生命周期,onpause()与onstop()的区别
activity service broadcast receiver content provider content provider
创建 oncreate-启动onstart – 恢复 onresume – 暂停 onpause – 结束 onend – 销毁ondestroy
onpause 用于由一个activity转到另一个actividy,此时用于第一个activity onstop 用于不可见的activity
19,umi建模概念
基软件工程的umi,建模技术分析 uml这三个字母的全称是unified modeling language,即统一建模语言,简单地说就是一种有特殊用途的语言。其实有很多内容文字是无法表达的。比如建筑界有一套标准来描述,来辅助表达清楚建筑的设计,就是建筑设计图纸。同样的情况在软件开发过程中,特别是当前的数据库看软件工程方面,也需要一套标准来辅助软件开发工作。uml就是其中的一种标准,(注意并不是唯一标准。只是!jml是比较推崇的一种标准)虽然uml并不是官方的标准,也没有法律规定在软件开发中一定要用uml,但是通过妥善使用uml在内的各种标准,往往能够提高软件开发的水平。uml可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,它是一种定义良好、易于表达、功能强大且普遍适用的建模语言。现代的软柞开发采用面向对象的观点进行建模。按照这种方法,所有软件系统都用对象或类作为其主要构造块。
对象通常是从问题空间或解空间的词汇中抽取出来的东西;类是对具有共同性质的一组对象(从建模者的视角)的描述。而uml正式这种面向对象统一建模的方法。uml合并了许多面向对象方法中被普遍接受的概念,对每一种概念它都给出了清晰的定义、表示法和有关术语。使用u呱可以对己有的用各种方法建立的模型进行描述,并比原来的方法描述得更好。20.说出arraylist,vector, linkedlist的存储性能和特性 ist和vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,vector由于使用了synchronized方法(线程安全),通常性能上较arraylist差,而linkedlist使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
华为面试自我介绍【第三篇】
大家下午好!我是来自上XX大学市场营销专业的丘志仁。我喜欢读书看报,因为它能丰富我的知识;我喜欢跑步,因为它可以磨砺我的意志,我到底是个什么样的人呢?我是一个活泼开朗、热情、执着、有坚强意志的人。既然今天竞聘的是营销经理一职,我想谈谈自己对营销的理解。营销不等同于推销,但推销是营销的重要组成部分。要想做好营销工作,首先就要做好自我推销。让一个陌生人信任自己是有一定难度的,但只有客户相信可以,才会相信自己的产品,才能更好的将产品推入市场。我想“做人,做事,做生意”大概就是这个意思吧!
我觉得作为一名营销经理,除了应该具备一定的营销知识外,还应具有良好的沟通、协调能力,能够吃苦耐劳,具有良好的团队合作精神,讲究职业道德。身为班长的我,在三年的时间里,组织了班级各种各样的活动。通过组织这些活动,提高了自己的组织协调能力,加强了团队合作意识。同时也让我充分认识到,个人的能力毕竟很有限,只有通过团队合作,集思广益,取长补短,才能更好的完成工作。如果这次我有幸竞聘上营销经理,我想打造一个平台,让自己的同事在一种轻松却不失严谨的氛围中工作,大家相互合作,具有良好的团队精神。
同时我认为,营销也是一种服务。既然是一种服务,就应该做到让大家满意,用热情和真心去做。激情,工作中不可或缺的要素,是推动我们在工作中不断创新,全身心投入工作的动力。激情加上挑战自我的意识,我相信我能胜任这份工作。
华为技术面试【第四篇】
oracle面试:
数据仓库都了解多少? 数据库建模懂不懂?
以前项目中是怎么样设计数据库的? oracle笔试:
同第一次的面试一样的题。
java面试题:
使用三层框架开发时的开发流程,数据是怎么传送的? 介绍最近的一个项目。jsp内置对象? 加班有没有问题?