java中的队列不完全等于C语言中的队列,java中的队列更似一种固定的工具,当其功能实现不同的部分时,还可以当做不同的数据结构类型。
队列的出现,我想可能是因为数组一些方面的缺陷。
1.数组的优点和缺点
优点:
(方便的存取)数组是一种线性的数据结构,在内存中的存储空间是连续的存储空间,所以我们再访问数组中的数据或者设置数组中数据时,可以直接通过数组的下标进行定位。
所以数组是数据结构中访问和设置数据最快的一种数据结构。
缺点:
(确定的大小)你要存储的数据不确定时,而数组在定义时必须要指定数组中的长度。
如果数组长度太大了,但是数据很少,这样就会浪费空间
如果数组长度不够存储数据,就会引发数组下标越界的异常 ArrayIndexOutOfBoundsException
(确定的类型)你要使用的数据类型不确定的情况,而数组在定义时必须要指定数组的数据类型。
如果定义了某一种类型,那么就只能存储这一类型的数据
如果定义是可以存储任意类型,那么什么数据都可以存储
2.数组队列的实现原理
(通过不断生成长度比原数组长1个单位的数组)
你要存储的数据不确定时,而数组在定义时必须要指定数组中的长度。
格式:数据类型 [] 数组名 = new 数据类型[长度];
数组名中存储的是什么?
数组名中存储数组对象在内存中的首地址。
int[] a = new int[0];
int[] a1 = new int[a.length+1];
a = a1;
int[] a2 = new int[a.length+1];
a = a2;
你要使用的数据类型不确定的情况,而数组在定义时必须要指定数组的数据类型。
泛型:已知的表示符号有(E、K、V)
泛型不是Java中任何一种数据类型;它是一种符号,用来泛指Java所有的引用数据类型(class,interface,abstract class定义的类,接口,抽象类)。
所有类的父类是Object。
3.数组队列实现(部分功能)
public interface MyArrayList<E> {
void add(E e);
boolean add(int index,E e);
E remove(int index);
boolean remove(E e);
boolean update(int index ,E e);
E get(int index);
int size();
}
参考Java提供的ArrayList
课余时间,受胡总启发,细查也一下CPU的运算机制
如大家所见,市场上有32位操作系统和64位操作系统之分,顾名思义64位强于32位,但是究竟强在那呢?
1、运算能力
32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。
32(64)位计算机的CPU一次最多能处理32(64)位数据。
位数:也叫“字长”,是指处理器一次运算所能处理的二进制数的位数。(二进制数即零一串,如:1001、 1、 110100.....)
Bit——比特 1B=8 Bit
TB——太字节
-
GHz是主频的单位,2.0GHz表明该CPU的主频为2.0GHz;运算次数为CPU的运算速度是2000 000 000次/秒
-
CPU的主频是CPU的外频和倍频的乘积;
-
主频是CPU的运算速度;
-
主频的单位为MHz和GHz。换算关系如下:1GHz=1000MHz=1000 000KHz=1000 000 000Hz