现在越来越觉得java基础细节的重要性了,这样才有交流的价值。
1、静态变量与非静态变量的区别?
①分配的空间:
静态变量存在于虚拟机的方法区中,并且只有一份这样的内存空间。
非静态变量需要通过new出类实例才能够存在,且分配于堆内存空间中,每new出一份类实例便存在一份变量。
②使用的方法上:
静态变量的使用可以通过类名.变量进行调用。
非静态变量需要先创建类实例,然后通过类实例.变量进行调用。
③生命周期
静态变量的生命周期伴随程序的整个阶段。
非静态变量的生命周期伴随着类实例存在的生命周期。
2、数组与链表的区别
①内存空间的分配
数组在内存空间的分配上是连续的,且具有固定的长度。
链表在内存的空间的分配不需要连续的内存空间,且长度不受限制。
②性能上
数组的查找性能相之较好。
链表在插入和删除上性能较好。
3、数组和链表的应用场景
数组:数据较少,需要做运算或者经常性的查询。
链表:线性表的长度或者规模难以估计,插入和删除的动作较多。