货拉拉--前端开发实习--面试分享

视频面试:
自我介绍就不用说了,必不可少的。
首先,是根据我填写的信息资料,对我进行提问。因为,我有一个可视化的项目,所以就先看项目了,边看项目便介绍自己的项目作品,然后就根据项目来进行询问我,我在项目中主要担任的什么职位?主要做的那些方面等等。我在项目开发中主要做的数据库连接处理的事情,所以面试官先问我的是一些后端的问题。我们的项目的后端用的是jsp语言,所以面试官就问我了java问题。

  • 什么是Java继承性?
    答:子类继承父类的属性,操作。同时可以设置权限例如private,public,protected,通过权限来保护安全性。用extends关键字来定义继承。在java中是单一继承。

  • 什么是接口?
    答:接口就是一个规范,类似硬件上的接口,便于统一管理。在java中使用接口来体现多态性,同时弥补java的单一继承性,也就是类可以实现多个接口。在java中,使用interface定义接口,使用implements实现接口。同时注意接口中的方法,都没有方法体。

  • 什么是线程?
    答:线程是轻量级的进程,是被系统独立调度和分派的基本单位,线程没有独立的地址空间(不拥有系统资源),只有一个在运行必不可少的资源,但它可与同属一个进程的其他线程共享所拥有的全部资源。线程由进程创建,一个进程可以拥有多个线程,同一进程中的多个线程可以并发执行。线程的使用,在java中一个类当作线程来使用,方法一,通过Thread类,并重写run函数;方法二,实现Runnable接口,并重写run函数。

  • java中同步关键字?(没听明白,反正也不会)
    答:synchronizedhttps://www.cnblogs.com/jiansen/p/7351872.html

  • div/css布局使用,优点?(也没太明白,就随便说了说,然后自己提到了css盒模型)
    答:首先,是将数据和样式进行了分离;符合W3C标准,顺应潮流;搜索引擎更加友好;代码简洁;

  • 什么是盒模型?
    答:就是一个对于HTML文档布局所占空间遵寻规定的矩形元素框,将这个模型形象的比喻为一个盒子。包括内容,内边距,边框,外边距。分为IE标准和W3C标准。例如:在W3C标准中,实际的宽度=左右内边距+左右边框+左右外边距+内容。(按照我自己理解说的,详细的大家可以自己找找,我觉得有的时候,可以在说说自己的理解更好)

  • 什么是DOM?
    答:是用于XML和HTML通信的API接口。将整个文档抽象为逻辑上的节点对象,然后DOM中定义了访问和操作这些文档的方法,通过这些方法来对节点进行使用操作。

  • http和https的区别?
    答:1.http协议以明文的方式传输;https是以ssl(secure sockets layer安全套接字层)加密传输。2.http和https使用的完全不同的连接方式,用的端口不同;http是80,https是443。3.http的连接很简单,是无状态的;https是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比http协议安全。4.https需要到CA认证,一般需要购买。详细https://www.cnblogs.com/wqhwe/p/5407468.html
    http完整的一次传输过程:
    货拉拉--前端开发实习--面试分享_第1张图片
    https传输过程:
    货拉拉--前端开发实习--面试分享_第2张图片

  • tcp协议传输过程?
    答:tcp是传输控制协议,是一种面向连接的,可靠的,基于字节流的传输层协议。tcp是通过三次握手建立连接,四次挥手释放连接,从而达到面向连接的通信,因此,只能用于端到端的通信。tcp采用“来重传的确当”技术实现可靠传输,采用滑动窗口的方式进行流量控制,窗口表示实际接收能力,用以限制发送方的速度,提供可靠传输。三次握手具体过程:第一次握手,建立连接时,客户端发送syn(同步序列编号)包到服务器,等待服务器确认;第一次握手,服务器收到syn包,确定客户端的syn,同时,发送一个syn包;即发送一个syn和ack包;第三次握手,客户端收到服务器发送的syn+ack包,向服务器发送确认包ack,该包发送完后,客户端和服务器端就进入连接成功状态,可以进行数据传输。四次挥手:第一次挥手:客户端关闭与服务器的连接,客户端先发送一个FIN,用来关闭客户向服务器的数据传送;第二次挥手:服务器收到客户端的FIN,发回一个ACK,确认序号为收到序号加1;第三次挥手:服务器关闭与客户端的连接,发送一个FIN给客户端;第四次挥手:客户端发回ACK确认。详细:https://www.jianshu.com/p/0a070e06d979

  • 快排算法?
    答:快排采用一种分治的策略。首先,对于待排序的序列,任选一个记录作为基准,通常是第一个,将小于基准的元素放在基准的左边,将大于基准的元素放在基准的右边。其次,再对左右的两个集合进行递归调用,直到每个集合中只有两个或者三个元素,可以简单的通过位置交换的时候,将其排序。最后,对已经排序的左右子集和基准,按照顺序返回。但是快排受数据有序影响,因此,选基准很重要,可以通过一个随机函数产生0~n之间的随机数k,用第k个数作为基准,从而再进行排序,这种方法一般称为随机的快速排序。https://blog.csdn.net/weixin_42917994/article/details/90707558

  • 如何查找单链表倒数第k个元素?
    答:就是设置两个指针,一个指向第k个元素,一个指向单链表头。当指向第k个元素的指针到达单链表的尾的时候,指向单链表头的指针,此时,指向的元素就是倒数第k个元素。见:https://blog.csdn.net/weixin_42917994/article/details/89456498

  • 心得体会: 如果有项目的话,务必把自己的做的那一部分介绍的很清楚,自己是怎么做的弄清楚,描述的时候顺畅一些。其次,前端主流框架必须要会,主流编译工具,git仓库等,我在boss找的时候很多直接问会不会vue,不会就连面试的机会都没有了。还有,就是自己会的东西一定要表达的清楚干净,有条理,最好还可以拓展一些,但拓展的风险就是面试官接着问(然后你不会)。最后,就是多学习多练习吧。一起加油吧!

另外,在啰嗦一点,不管你以后做前端还是后端,算法还是大数据,人工智能,数据结构这门课程一定要好好学。

你可能感兴趣的:(面试准备,面试)