先立几个flag:1. 一周要至少更新一篇随笔,博客复述是对学习过程的记录,也考验自己对技术的理解。2.等秋招尘埃落定,写一篇面经。3.牛客网的在线编程题不许停。
今天遇到的技术盲点:
1.DNS
将域名转成IP地址
2.虚拟内存
操作系统把一部分硬盘当成内存来用,避免运行的程序过大的时候内存崩掉。它的大小是由CPU的寻址空间以及物理盘的剩余空间决定的。例如32位的系统,寻址空间即32位,最大支持4G(2的32次方)的虚拟空间,64位的系统最大支持8G的虚拟内存空间。
3.ArrayList 和vector的扩容
当存储空间不足时,ArrayList默认增加原始空间的50%,vector默认增加两倍(即*2)。
ArrayList无参构造是,分配的空间是0,带参构造时直接分配内存。ArrayList list = new ArrayList<>(20); 构造的时候就分配了20个内存空间,没有经过扩容。
4.volatile关键字
一般和synchronized比较。
volatile 是变量修饰符,synchronized可以修饰类、变量、代码段;
volatile只能保证修改可见性,synchronized保证修改可见性及变量的原子性(即同一时刻只允许一个线程修改该变量)。
volatile不会造成线程的阻塞,synchronized有可能造成线程的阻塞。
5.实现hashmap的put、get方法
hashmap的实现需要数组和链表。hash地址对应数组的下标。

数组里存的是Entry对象,当出现冲突的时候结点的next指针指向冲突的结点。
6.对象的内存分配
new出来的内存全都在堆上分配。