常量:
常量在程序运行过程中,不能再次改变的值
作用:
①固定的值,代表计算过程中经常用到的值
便于程序计算
②用来代表一个含义
如1、2、3、4代表四个方向
什么样的值算是常量??
①
固定不变的值算作常量
1,4,‘a’,true
可认为所有基本类型的值 固定不变 是常量
②特殊的常量
’abc’——->String
String是一个引用数据类型,他的值很特殊,可以视为简单的常量
③自己创建的空间,存储一个值,把他固定起来,不能改变
final int a = 1;
变量
变量指的是 程序执行过程中可以改变的
变量是一个内存空间
变量空间在创建(声明)时的时候,必须指定数据类型 变量空间的名字
变量空间 里面只能存储一个内容
变量空间 里面只能存储一个内容(值 引用)
变量空间的内容可以改变
变量如何声明/创建?
数据类型 变量名字;
int a;
变量名
:首字母小写,两个以上的单词,之后的首字母大写
superPerson
所有名字见名知义
需要注意
:
变量时一个空间,可以只创建空间,里面不存放内容
变量空间创建后是没有默认的内容,空的
空的变量空间不能拿来使用,编译错误
byte a; //声明一个名为a的变量空间,存储类型是byte
a = 100;//将1赋值给a
计算机底层做了什么??
1.x是什么? 变量空间 存在哪儿?———>栈内存内
2.1是什么? 1是常量 存在哪儿?———->常量缓冲区
3.= 是什么? =是赋值 做了什么?
计算机的硬件组成
主板 CPU 声卡 显卡 网卡 电源 内存 硬盘
1.硬盘上创建了一个文件 Test.java
2.文件中的内容是我们编写的源代码(跟计算机发送指令)
public class Test{
public static void main(String[] args){
byte x ;
x = 1;
}
}
3.将Test.java源文件——->编译——–>Test.class
内容我们看不懂,字节码,留给计算机识别
4.执行——>内存中执行
将硬盘上的Test.class内容 加载到内存里
内存:
栈内存:所有的执行都在栈内存
(先进后出,后进先出)
堆内存(仓库):开辟的空间
方法区:所有的元素只有一份,不能改变
常量缓冲区(常量池)、方法区(存储类模板)、静态元素区(static)
字符(char–>基本数据类型,’a’)
字符(String—->引用数据类型,“a”,”abc”,null,””) (羊肉串)
=============================================================================
float a = 3.4F
从double转化为float会有损失
3.4是存储在常量缓冲区的常量值,常量值以二进制的形式存储
long b = 2147483648L;
-2147483648 -2147483647是int的取值范围
如果创建的常量值超过了以上范围,程序编译检测的时候会认为 数字过大