【面试经验包】面试被吊打经验总结(一)

服务器最大端口数:65535

      数组和链表的区别
1、链表是链式存储结构,数组是顺序存储结构
2、链表通过指针连接元素与元素,而数组则是把所有元素按顺序进行存储
3、链表的插入和删除元素比较简单,不需要移动元素,且较为容易实现长度的扩充,但是查询元素比较困难,数组是查询比较快,但是删除和增加会比较麻烦。

数组和ArrayList的本质区别

  • 在于前者是类型安全的,而后者是类型不安全的.
  • ArrayList为了兼容所有类型对象,使用了Object数组,在使用元素的时候会有装箱和拆箱的操作,降低了程序的性能.
  • ArrayList会动态扩充容量,容量为原来的2倍.
  • ArrayList只有把元素添加进去之后才可以通过下标访问相应的元素.
  • 数组在创建的时候就已经确定了数据类型,并且它的长度是固定的,只能通过下标改变各个元素的值和访问.

arraylist和linkedlist的区别

1、数据结构不同
ArrayList是Array(动态数组)的数据结构,LinkedList是Link(链表)的数据结构。
2、效率不同
当随机访问List (get和set操作)时,ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。当对数据进行增加和删除的操作(add和remove操作)时,LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。
3、自由行不同
ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。
4、主要控件开销不同
ArrayList主要控件开销在于需要在List列表预留一定空间;而LinkList主要控件开销在于需要存储节点信息以及节点指针信息。

html默认的请求方法是get

post和get方法的区别
1.get请求一般是去取获取数据(其实也可以提交,但常见的是获取数据);
post请求一般是去提交数据。
2.get因为参数会放在url中,所以隐私性,安全性较差,请求的数据长度是有限制的,
不同的浏览器和服务器不同,一般限制在 2~8K 之间,更加常见的是 1k 以内;
post请求是没有的长度限制,请求数据是放在body中;
3.get请求刷新服务器或者回退没有影响,post请求回退时会重新提交数据请求。
4.get请求可以被缓存,post请求不会被缓存。
5.get请求会被保存在浏览器历史记录当中,post不会。get请求可以被收藏为书签,因为参数就是url中,但post不能。它的参数不在url中。
6.get请求只能进行url编码(appliacation-x-www-form-urlencoded),post请求支持多种(multipart/form-data等)。
深入理解
1…GET 和 POST都是http请求方式, 底层都是 TCP/IP协议;通常GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包(但firefox是发送一个数据包),
2.对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200
(返回数据)表示成功;
而对于 POST,浏览器先发送 header,服务器响应 100, 浏览器再继续发送 data,服
务器响应 200 (返回数据)。

重写(Override)和重载(Overload)的简单理解

面试官原话是:override注解是什么意思?
我:重写
面试官:”那他的近似注解和区别?“
这里我很懵逼,不知道他想问啥,后来想想应该是想问重写和重载。如果直接问确实能答出来,但是放在spring这框架下把知识点挑出我确实懵了,太可恶了后来发现问题这么简单我没答出来。面试官有点水平,要是直接问或许我能答上来。

Override(重写):发生在Java的继承中,当子类需要使用和父类方法名相同,但实现过程不同的方法时,就会用到重写。需要注意的是重写的方法的参数列表必须与父类的被重写的方法的参数列表完全一致,但返回值类型可以是父类被重写方法返回值类型的衍生类或是相同类。

Overload(重载):重载发生在同一个类中,同一个类中需要用相同的方法名但实现过程不同的时候用到重载。重载是相同方法名但参数列表不同,即可实现重载。常用的例如类的构造方法的重载。
1,目的
overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其超级类已经提供的方法的特定实现。
2,范围
overload 在相同的类范围内内执行。 override发生在两类具有继承(继承)的关系。
3, 参数
overload参数必须不同。 override参数必须相同。
4,多态性
overload 静态多态,调用的函数在编译时被选中。 override 是运行时多态性的。
5,返回类型
overload中可以相同或不同。但你必须改变参数。 override必须是相同的或协变的。

mysql索引问题

普通索引
这是最基本的索引,它没有任何限制。
唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

自动化运维工具和自动化测试工具这里应该大部分人不会,我也答不上来,因为面试要求上没写,不然绝对去了解。
这是要求,我认真准备了nodejs部分,主要因为面试题少,结果没问,可能是我自己把一股脑会的全说出来了,引以为戒,自闭。
在这里插入图片描述
秒杀部分(针对本人项目)主要讲的是前后端的优化,具体项目整理完成后再贴
参考这个:https://blog.csdn.net/weixin_35681869/article/details/107587749
之后问的是一个偏应用的问题,就是如何把excel表中的数据分类放入web页面中,并且不能重复。这里容许我想一下,到时候把源码放这。

      因为前面表现并不出色,但还是过了,然后是二面。
新来的面试官偏向硬件,上来就问计算机网络和操作系统原理,其实这两门课我学得一言难尽啊,分数估计还是实验报告写得好加上去的。

计算机网络

计算机网络体系结构
在这里插入图片描述
还问各层的作用,本来就勉强答上来还针对问,这真没办法。

五层协议

1.应用层
应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。
不同的网络应用需要不同的协议,如万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等
2.运输层
运输层的任务是负责为两个主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层 报文。
所谓通用,是指并不针对某个特定网络的应用。而是多种应用可以使用同一个运输层服务。
运输层主要使用以下两种协议:
传输控制协议TCP (提供面向连接的,可靠的数据传输服务,数据传输的单位是报文段)
用户数据报协议UDP(提供无连接的,尽最大努力交付,其数据传输的单位是用户数据报)
3.网络层
网络层为分组交换网上不同主机提供通信服务。网络层将运输层产生的报文段或用户数据报封装成分组和包进行传送。
4.数据链路层
两台主机间的数据传输,总是一段一段在数据链路上传送的,这就需要使用专门的链路层协议。在两个相邻节点间的链路上传送帧,每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)三个基本问题:封装成帧,透明传输,差错检测
5.物理层
在物理层上所传数据单位是比特。

为什么会有TCP/IP协议

在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。

但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生。TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。

TCP/IP模型

应用层:
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。

传输层:
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。

网络层 :
负责相邻计算机之间的通信。其功能包括三方面。
一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
二、处理输入数据报:首先检查其合法性,然后进行寻径–假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
三、处理路径、流控、拥塞等问题。
网络接口层:
这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。

进程和线程问题

线程和进程的区别有:
1、定义不一样,进程是执行中的一段程序,而一个进程中执行中的每个任务即为一个线程。
2、一个线程只可以属于一个进程,但一个进程能包含多个线程。
3、线程无地址空间,它包括在进程的地址空间里。
4、线程的开销或代价比进程的小。

进程崩溃是否会影响其他进程

一个进程崩溃不会影响到其他进程,一个线程崩溃会导致整个进程崩溃。

这一块由于没准备回答稀烂
接下来是一份数据结构,不是排序,不是查找,是ip地址归类。这个稍后完成源码。

HTTP 与 HTTPS 区别

  • HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign
    等。
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。 HTTPS 其实就是建构在SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值