第二节 变量
计算机内存
内存的作用
内存的作用主要是用来平衡CPU的处理速度和硬盘的读取速度。一块正常的机械硬盘连续读取速度是100M/s。而CPU的处理速度远远超过这个速度。所以如果没有内存的参与,可能会产生硬盘全力读取,CPU却一直空闲的状态。
内存的工作原理
内存其实是个大网,像一张表格一样充满了行和列,行列交错也就产生了单元格,每个单元格存储1位信息,通常每段信息的第一个单元格被称为”内存起始地址”,用来记录数据在内存中的位置。
java内存
堆
堆里是主要数据存储空间,大量的数据本体会被存储在这里空间内,同时这个区域的空间是动态的,当需要空间时进行申请,堆就会分配一块区域给你,用完之后再归还给堆。它像一条管道一样,先进先出。
栈
但由于堆的特性,导致数据在存入堆后检索速度受限,所以栈是一种对堆的使用方法。我们主要用它来存储Java中的标识符,也就是给放在堆里的数据做个标记,让我们能通过栈更快速的定位到数据在堆里的位置。它像是一个桶一样,先进后出。
数据类型
什么是数据类型![在这里插入图片描述](https://img-blog.csdnimg.cn/9e8138a5d0ff4509b741d5b9184217f2.png)
数据类型详解
类型转换
自动类型转换
自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
强制类型转换
自动类型转换是编译器根据代码的上下文环境自行判断的结果,有时候并不是那么“智能”,不能满足所有的需求。如果需要,程序员也可以自己在代码中明确地提出要进行类型转换,这称为强制类型转换。
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99;
char c=(char)i;
System.out.println(“output:” c);
变量
通过声明、标识、赋值、使用,成功完成了对内存的使用,并得到一块有数据的空间→变量
声明变量
int num;
这段代码中,int表示要存储的数据类型是整数类型,num表示标识符。
赋值
int num;
num = 10;