2018 秋招 百度一面
2017-09-18 20:17
183 查看
百度一面
面试地点很豪华,星级酒店包了很多层楼。先集体到5楼等待,再单独分配到不同的楼层不同的房间去面试。每个面试官单独在一个房间,很安静,可以专心思考问题。面试官说话超级和气,交流很随心,不用半点约束。总的来说,整个面试还算顺利吧,也很荣幸,来面试的实在太多太多了,期望能过一面吧。(PS:后面真的过了….)1.HTTP和HTTPS区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
2.HTTP有哪些请求方式?说说GET和POST的区别
HTTP请求的方法:HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式
1、OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2、HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET
向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
4、POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5、PUT
向指定资源位置上传其最新内容
6、DELETE
请求服务器删除Request-URL所标识的资源
7、TRACE
回显服务器收到的请求,主要用于测试或诊断
8、CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。
3.冒泡排序,优化,手写
public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { boolean flag = true;//设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已然完成。 for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr,j,j+1); flag = false; } } if (flag) { break; } } }
4.打印出2-100的所有素数,优化,手写
5.安卓四大组件简单介绍
5.1 Activity-活动:
(1)、Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件,如单击、触摸事件。在界面上呈现形式为全屏窗体、非全屏悬浮窗体的对话框。(2)、Activities是可执行的代码块,由用户或者操作系统来进行初始实例化,并在他们被需求时致以运行。
(3)、Activities可以与用户、请求数据或者其他Activity、Service的服务通过query或Intent进行交互。
(4)、对于一个Android应用程序而言,可以有一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户已经正常启动此Activity。当Activity不积极运行时,可以被Android系统终止已节省内存。
5.2 Service-服务:
(1)、Service用于没有用户界面,但需要长时间在后台运行的应用。Service有点类似于桌面应用或者服务器操作系统上的服务和守护进程。(2)、Service是在后台运行的可执行的代码块,从它被初始化一直运行到此程序关闭。
(3)、Service最经典的一个例子是音乐播放器,尽管用户已经使用了其它的应用程序,但仍然需要持续播放音乐,比如在你听歌的时候,有人打个电话进来,此时音乐播放器的服务仍然子啊后台运行着,等你电话接完,音乐又会重新播放,在你接电话的时候是无音乐播放器的界面的,而程序一直执行Service来实现后台任务。
5.3 BroadcastReceiver-广播接收器
(1)、Broadcast和Intent Receivers对从其他的应用程序的服务请求做出一个全系统广播的响应,这些广播响应可能来自于Android系统本身或者是任何在其系统上运行的程序。(2)、BroadcaseReceiver是用来接受并响应广播消息的组件。
(3)、BroadcaseReceiver不包含任何用户界面,但可以通过启动Activity或者Notification消息通知栏通知用户接收到重要信息。
(4)、Activity或Service通过执行一个IntentReceiver 为其他应用程序提供了访问其功能的功能。Intent Receiver是一段可执行代码块,对其他Activity的数据或服务请求做出响应。请求的Activity(客户端)生成一个Intent,把其添加至Android Framework中,来指出哪些应用程序(目标程序)接收并对其做出响应。
(5)、Intent是Android的主要构成元素之一,它从现有的应用程序中创造新的应用程序。Intent实现了应用程序和其他的应用程序和服务交换所需信息的功能。
5.4 ContentProvider-内容提供器:
(1)、ContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider来访问其他应用程序的私有数据(私有数据可以是存储在文件系统中的文件,也可以是SQLite中的数据库)。(2)、Android系统内部也提供一些内置的ContentProvider,能够为应用程序提供重要的数据信息。
6. ContentProvider底层是怎么实现的?
7. 进程和线程区别
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
2.关系
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
3.区别
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
2) 线程的划分尺度小于进程,使得多线程程序的并发性高。
3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
4.优缺点
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
8.安卓下如何新建一个进程,如何新建一个线程,有几种方式?
9.咦,听说你有博客和github,地址拿出来,我看看。看的同时叫我自我介绍。
10.听说你写过几个小项目,简单说说。
答案参考链接:链接1
相关文章推荐
- 2018百度秋招一面/二面/三面
- 2018PHP春招面试--百度一面(电面)总结
- 2018阿里菜鸟无人仓一面面经
- 百度暑期实习一面
- 百度一面
- 2018百度测试开发面经(已拿offer)
- 2018秋招前端面试回顾(阿里、百度、网易、迅雷、美团等)
- 百度 一面 心得
- 百度一面,字符串翻转
- 百度 一面 面试题 移动端 2015
- 百度一面的经典题目(memcopy 反转链表)
- 2018.1.9百度一面
- 【优先队列】百度2018校招编程题—序列合并
- 百度基础技术测试部一面2015/10/15 实习生
- 2008百度一面
- 2012.10.20 百度笔试 及 一面, 二面, 第二次二面(三面)
- 百度实习生 一面
- 我的百度2015校招前端一面,泪...
- 百度商搜研发一面
- 百度一面