变量和数据类型的学习
计算机内存
内存的作用
内存的作用主要是用来平衡CPU的处理速度和硬盘的读取速度。 一块正常的机械硬盘连续读取速度是100Ms。而CPU的处理速度远远超过这个速度。所以如果没有内存的参与,可能会产生硬盘全力读取,CPU却一直空闲的状态。
内存的工作原理
内存的工作原理可以分为读取和写入两个方面。 当需要读取数据时,内存会向CPU发送请求,CPU会查找存储单元并将数据发送回内存。当需要写入数据时,内存会向内存发送请求,CPU会查找存储单元并将数据存储在该存储单元中。内存的速度和容量也很重要。内存可以分为随机存取存储器和只读存储器。RAM是一种易失性存储器,ROM是一种非易失性存储器。
Java内存
堆里是主要数据存储空间大量的数据本体会被存储在这里空间内,同时这个区域的空间是动态的,当需要空间时进行申请,堆C会分配一块区球给你,用完之后再归还玲堆。它像一条管道一样,先进先出
但由于堆的特性,导致数据在存入堆后检索速度受限,所以栈是一种对堆的使用方法。我们主要用它来存储Java中的标识符,也就是给放在堆里的数据做个标记,让我们能通过栈更快速的定位到数据在堆里的位置。它像是一个桶一样,先进后出。
变量
什么是变量
内存中的一个存储区域,该区域有数据类型、名称和存储的值。
- 声明:由于堆的特性,我们在使用内存时需要先向内存堆申请一块空间,这块空间的申请必须注明数据类型。
- 标识:由于栈的特性,我们需要首先定义一个标识符,表示我们通过这个标识去寻找这块空间。
- 赋值:内存堆的使用必须有意义,无效的内存堆空间(null)是一种浪费,不被内存所认可,所以必须申请空间后进行赋值。
- 使用:前三步已经完成了对内存的使用,接下来就是通过标识符来使用它。
变量的存储方式
1、全局(静态)存储区
2、栈
3、堆
4、自由存储区(和堆类似)
5、常量区
变量和内存的关系
在Jaca中,变量和内存之间有着密切的关系。当我们在Java程序中定义一个变量时,实际上就是在内存中分配一块存储空间来存储该变量的值。
Java中的变量类型包括基本数据类型和引用数据类型。对于基本数据类型的变量,其值直接存储在分配的存储空间中;而对于引用数据类型的变量,则是存储了一个指向对象内存地址的引用。因此,当我们在Java程序中创建一个对象时,实际上是在内存中分配一块对象所需的存储空间,并将该对象的内存地址存储在引用类型的变量中。
此外,在Java中,内存空间的管理是由JVM负责的。当我们在程序中使用变量时,JVM会自动管理该变量所需的内存空间的分配和回收,以确保程序运行的效率和安全性
使用变量
使用变量时,在已经声明了变量后,因为有标识符的存在,所以什么地方需要使用只需要写标识符即可。
变量的命名规范
变量的命名规则:
1. 变量一般用英文单词表示,首字母小写,遵循驼峰命名规范(变量的名称可以包含字母、数字、下划线、美元符号,但不能以数字开头)。
2. 不能用java的关键字做变量名,idea里面有颜色的一般都是关键字 (变量的名称不能是Java中的关键字和保留字,但可以包含关键字和保留字。)
3. 变量的名称是严格区分大小写的。
4. 变量的名称尽量做到见名知意。
常用关键字
- 用于定义数据类型的关键子:
Class , Interface , Byte , Short
Int , long ,double , char , boolean void - 用于定义数据类型值的关键字:
true , false , null - 用于定以流程控制的关键字:
if , else , switch , case ,default ,while
do, for , break , continue , return
不经常使用但需要熟悉认识:
用于定义访问权限修饰符的关键字
private , protected , public
用于定义类承数,变量修饰符的关键字
abstract , final , static ,synchronized
用于定义类与类之间关系的关键空
extends ,implements
用于定义建立实例及引用实例…判断实例的关键字
new , this , super , instanceof
用无异常处理的关键字
try, catch , finally , throw , throws
用于包的关键字
package , import
其他修饰符关键字
native , strictfp , transient , volatile , assert
数据类型
数据形式
计算机是个“傻子”,它根本不认识任何的数据,但我们通常希望计算机能帮助我们记录数据。而计算机是通电运行的,所以理所当然我们用电流来表达数据。通常情况下,在计算机大部分硬件中,通电表示1,断电表示0。这样就形成了大量的01组合,也就产生了数据。
数据类型的分类
计算机有很多数据类型,为不同类型的数据所准备,也就是说不同类型的数据存放在内存所对应类型的空间中。
Java中的数据类型:
基本数据类型:整数(byte、short、int、long)
小数(float、double)
引用数据类型:接口(interface)
类(class)
数组(array)
数据类型详解
计算机要存储数据,就必须将数据进行合理分类,不同类型的数据对应使用不同的方式进行处理,计算机要存储数据,就必须将数据进行合理分类,不同类型的数据对应使用不同的方式进行处理
类型转换
二进制是硬件最原始的数据记录方式,但由于二进制会产生大量01组合,记录的数据越大数位越长,很难阅读和理解。所以根据不同的情况,会使用不同的进制。
二进制:01,逢二进一
八进制:01234567,逢八进一
十进制:0123456789,逢十进一
十六进制:0123456789ABCDEF,逢十六进一
运算符
赋值运算符
赋值运算符: = 的左边是变量, =的右边是数据 (将右边的值赋值给左边的变量)。
算数运算符
+、-、、/、%,++ 、 – 、+=、-=、=、/=、%=java
public static void main(String[] args) {
int a = 100;
int b = 50;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
public static void main(String[] args) {
int a = 100;
int b = 50;
int c = 10;
int d = 20;
System.out.println(a++);
System.out.println(b--);
System.out.println(a+=c);
System.out.println(a-=c);
System.out.println(a*=b);
System.out.println(a%=d);
System.out.println(d/=a);
System.out.println(a);
逻辑运算符
逻辑运算符有&、|、&&、||
&&按位或&,要依次判断前后表达式结果,||逻辑或,左边为true就为true
|按位与||,要依次判断前后表达式结果,&&逻辑与,左边为false就为false
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = 7;
if (a > b && a < c) {
System.out.println("a大于b且小于c");
}
if (a > b || a < c) {
System.out.println("a大于b或小于c");
}
if (!(a > b)) {
System.out.println("a不大于b");
}
}
比较运算符
、<、>=、<=、==、!=、equals