计算机内存
内存作用
内存的作用主要是用来平衡CPU的处理速度和硬盘的读取速度。一块正常的机械硬盘连续读取速度是100M/s。而CPU的处理速度远远超过这个速度。所以如果没有内存的参与,可能会产生硬盘全力读取,CPU却一直空闲的状态。
内存如何存储数据
- 数据分类
不同类型的数据进行存储要提前分类,内存要确保自己存储的信息能被认知 - 数据存储
将大量0、1组成的数据在内存中用元器件的通电与断电形式进行存储,所以内存只能临时存储数据 - 数据形式
既然要存储数据,到底什么是数据?在计算机中其实没有数据的概念,只有0、1 - 进制
数据是由0、1组成的,不同的情况有不同的使用,那必须有不同的进制
数据形式
在计算机中其实没有数据的概念,只有0、1。也就是电信号,0表示断电,1表示通电
数据进制
二进制:01,逢二进一
八进制:01234567,逢八进一
十进制:0123456789,逢十进一
十六进制:0123456789ABCDEF,逢十六进一
二进制是硬件最原始的数据记录方式,但由于二进制会产生大量01组合,记录的数据越大数位越长,很难阅读和理解。所以根据不同的情况,会使用不同的进制。
数据分类
类型 | 占用空间 | 取值范围 | 默认值 |
---|---|---|---|
byte | 1字节 | -128~127 | 0 |
short | 2字节 | -215~215 -1 | 0 |
int | 4字节 | -231 ~231 -1 | 0 |
long | 8字节 | -263 ~263-1 | 0L |
float | 4字节 | -3.403E38~3.403E38 | 0.0F |
double | 8字节 | -1.798E308~1.798E308 | 0.0D |
char | 2字节 | 0~65535 | \u0000 |
类型 | 取值范围 |
---|---|
boolean | true、false |
数据存储
数据的存储绝不是一窝蜂往内存里堆,而是按照数据的类型,有序的将数据进行合理的存储
java内存
【堆里是主要数据存储空间,大量的数据本体会被存储在这里空间内,同时这个区域的空间是动态的,当需要空间时进行申请,堆就会分配一块区域给你,用完之后再归还给堆。它像一条管道一样,先进先出。】
【但由于堆的特性,导致数据在存入堆后检索速度受限,所以栈是一种对堆的使用方法。我们主要用它来存储Java中的标识符,也就是给放在堆里的数据做个标记,让我们能通过栈更快速的定位到数据在堆里的位置。它像是一个桶一样,先进后出。】
使用内存
标识
由于栈的特性,我们需要首先定义一个标识符,表示我们通过这个标识去寻找这块空间
使用
前三步已经完成了对内存的使用,接下来就是通过标识符来使用它
声明
由于堆的特性,我们在使用内存时需要先向内存堆申请一块空间,这块空间的申请必须注明数据类型
赋值
内存堆的使用必须有意义,无效的内存堆空间(null)是一种浪费,不被内存所认可,所以必须申请空间后进行赋值
数据类型
声明变量
int num ;
赋值
int num;
num = 10;
使用变量
int num ;
num = 10;
system.out.printin(num);
string str;
str = "欣知";
system.out.printin(str);
File file;
file = new File();
system.out.printin(file);
double[ ] nums;
num = double[5];
system.out.printin(nums);
变量的命名规则:
1、 变量一般用英文单词表示,首字母小写,遵循驼峰命名规范(变量的名称可 以包含字母、数字、下划线、美元符号,但不能以数字开头)。
2、不能用java的关键字做变量名,idea里面有颜色的一般都是关键字 (变量的名称不能是Java中的关键字和保留字,但可以包含关键字和保留字。)
3、变量的名称是严格区分大小写的。
4、变量的名称尽量做到见名知意。
java中常见的关键字
运算符
(+、-、、/、%、++、–、+=、-=、=、/=、%= )
int num1 = 10;
int num2 = 5;
System.out.println(num1+num2);
String str1 = “欣知”;
String str2 = “大数据”;
System.out.println(str1+str2);
+比较特殊,在几个数字的运算中,+扮演了“加”的角色。
在字符串中却扮演了“连接”的角色。
int num1 = 5;
int num2 = 2;
System.out.println(num1/num2)