Java面试题总结-Day1

Java面试题总结-Day1

0.1 心情

今天第一次电话面试,被面试官问了几个很简单的问题,原理答得很迷糊,算法部分还算说得明白,但是语言表达能力稍有欠缺,而且对面试题不熟悉,让我在这次面试中发挥不好吧.有点担忧,又有点激动,毕竟是第一次电话面试, 发现了自己很多的不足吧,基础也很薄弱.因为这些缘故,现在每天要坚持写面试题的汇总,并对各种面试题进行深入了解和分析,坚持吧,加油!写给以后的自己.

1 今天自己面试遇到的题目

1.1 请说说cookie与session的区别

  1. cookie采用的是客户端的会话状态的一种储存机制。它是服务器在本地机器上存储的小段文本或者是内存中的一段数据,并随每一个请求发送至同一个服务器。
  2. session是一种服务器端的信息管理机制,它把这些文件信息以文件的形式存放在服务器的硬盘空间上(这是默认情况,可以用memcache把这种数据放到内存里面)当客户端向服务器发出请求时,要求服务器端产生一个session时,服务器端会先检查一下,客户端的cookie里面有没有 session_id ,是否过期。如果有这样的 session_id 的话,服务器端会根据cookie里的 session_id 把服务器的session检索出来。如果没有这样的 session_id 的话,服务器端会重新建立一个。PHPSESSID是一串加了密的字符串,它的生成按照一定的规则来执行。同一客户端启动二次 session_start 的话, session_id 是不一样的。
  3. 区别:Cookie保存在客户端浏览器中,而Session保存在服务器上。Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

1.2 ArrayList扩容的原理

  1. ArrayList底层使用数组实现,默认初始容量为10,当超出后,会自动扩容为原来的1.5倍,实现原理是通过 新容量=旧容量+旧容量>>1,然后将旧数组的内容拷贝(Arrays.copyOf为浅拷贝)到新数组中,代码如下
private void grow(int minCapacity) {
    // overflow-conscious code
    int oldCapacity = elementData.length;
    int newCapacity = oldCapacity + (oldCapacity >> 1);
    if (newCapacity - minCapacity < 0)
        newCapacity = minCapacity;
    if (newCapacity - MAX_ARRAY_SIZE > 0)
        newCapacity = hugeCapacity(minCapacity);
    // minCapacity is usually close to size, so this is a win:
    elementData = Arrays.copyOf(elementData, newCapacity);
}

2 网上学习的面试题

Date: 2018-10-30 23:11

Author: devinkin

Created: 2018-10-30 二 23:57

Validate

猜你喜欢

转载自www.cnblogs.com/devinkin/p/9880320.html