每日一记--java细节之问01

现在越来越觉得java基础细节的重要性了,这样才有交流的价值。

1、静态变量与非静态变量的区别?

①分配的空间:

静态变量存在于虚拟机的方法区中,并且只有一份这样的内存空间。

非静态变量需要通过new出类实例才能够存在,且分配于堆内存空间中,每new出一份类实例便存在一份变量。

②使用的方法上:

静态变量的使用可以通过类名.变量进行调用。

非静态变量需要先创建类实例,然后通过类实例.变量进行调用。

③生命周期

静态变量的生命周期伴随程序的整个阶段。

非静态变量的生命周期伴随着类实例存在的生命周期。

2、数组与链表的区别

①内存空间的分配

数组在内存空间的分配上是连续的,且具有固定的长度。

链表在内存的空间的分配不需要连续的内存空间,且长度不受限制。

②性能上

数组的查找性能相之较好。

链表在插入和删除上性能较好。

3、数组和链表的应用场景

数组:数据较少,需要做运算或者经常性的查询。

链表:线性表的长度或者规模难以估计,插入和删除的动作较多。

原文地址:https://www.cnblogs.com/ZNwithLC/p/9490197.html