由于最近比较赶,也没做什么准备。
1对1技术面:
看见了时间,自我介绍。
1、我简历上有博客,让我用电脑打开我的博客,然后说下主要包括什么内容(有啥说啥就好了)
2、Array和ArrayList有什么不同
Array:容量大小固定,无法动态改变,利用下标访问,查询效率高
ArrayList: ArrayList内部封装了一个Object类型的数组,容量可以动态增长,但牺牲了部分性能
(数组扩容是对ArrayList效率影响比较大的一个因素。每当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。)
3、Java下的Map有哪些(我面试的时候应该听成HashMap了。把HashMap的原理讲了一遍)
常用的有四种:HashMap Hashtable LinkedHashMap 和TreeMap
HashMap:根据键的HashCode值存储数据,根据键值可以直接对应value,拥有很快的访问速度;但遍历时,访问数据的顺序是随机的;最多只允许一条记录的键为Null;允许多条记录的值为 Null;线程不安全即可以多个线程同时访问
HashTable:不允许记录的Key或者value为空;线程安全即任一时刻只有一个线程能写Hashtable,但也导致了在写入时速度较慢
LinkedHashMap :HashMap的一个子类,保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先插入的记录先得到
TreeMap:实现SortMap接口,记录安key排序,默认是按key的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。
4、索引的作用及数据结构是怎么样的(数据结构没怎么注意,想不起来)
作用:
1、加快查询效率,(建立索引的情况下,我们查询数据时,是一对一的针对查询,否则每次都要整个表从头查起,数据量大的情况下可想而知)
2、改进表之间的链接操作,(where、join) 3、简化聚合数据操作 4、数据完整性
数据结构嘛 B-、B+、R-、散列 。想深入了解的推荐看这个,很详细https://www.cnblogs.com/tgycoder/p/5410057.html
5、红黑树(平衡二叉树)有什么优点
6、讲解一下你理解的spring
7、TCP三次握手过程
8、Http协议(无状态、无连接的基于报文的超文本传输协议)
内容!!!
请求: 1.请求方法-URL-协议/版本 2.请求头 3.请求正文
响应: 1.状态行 2.响应头 3.响应正文
不熟悉的推荐看这里https://blog.youkuaiyun.com/qq_38959715/article/details/90510332
9、鼠标点击网页访问的过程
1.浏览器首先会查询本机的系统,获取与主机名对应的IP地址
2.若主机查询不到对应的IP地址,则会发起DNS请求,获取主机名对应的Ip地址
3.使用查询到的IP地址,直接访问目标服务器。
4.浏览器发送HTTP请求。(请求行,消息报头,请求正文)
服务器
5.从请求消息中获取客户想访问的主机名
6.从请求消息中获取客户想访问的web应用或者资源
7.读取到对应的web应用或资源
8.发送HTTP响应 (状态行、消息报头、响应正文)
9.浏览器解析送回资源,渲染页面,显示页面(先解析静态资源,加载到HTML,将HTML转化为DOM,同时绘制DOM节点树,最后绘制渲染)
10、DNS解析过程
1.首先会查找本地的DNS缓存和hosts文件信息,确认其中是否有与域名对应的IP地址,找到的话直接访问IP地址对应的域名服务器
2.找不到的情况下。把浏览器的解析请求发送给本地主机所指定的DNS服务器 LDNS,重复一遍1.
3.若还是没有,则从从DNS系统的根(.)开始请求对域名的解析,顶级域名->父级->..->j解析 (.com-> baidu.com ->解析)
对应的域名服务器(baidu.com)就会把域名(www.baidu.com)的IP地址解析出来,然后发给LDNS
4.LDNS把解析出来的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应的地址缓存到cache中。
5.客户端浏览器收到后,也会将其域名以及对应的IP地址缓存的到DNS缓存和hosts文件中。
11.讲解一下JVM
由堆内存、方法区、栈组成,(各自的作用讲一遍)
12.开发过程遇到的印象最深的事情
(讲完一件,说下什么问题,然后问还有吗?再讲一件)
13.学校成绩
可以,这几天会有电话找你的,结束