- 前言
- 一、变量的定义
- 二、变量命名规则
- 1、规则
- 2、行业标准
- 三、基本数据类型
- 四、引用类型
- 五、类型转换
- 1、低精度向高精度转换
- 2、高精度向低精度转换
- 六、作用域
- 七、final 和 static
- final
- static
- static 和 final一起用
- 总结
变量这一模块介绍的是java的基本数据类型、变量的命名、类型转换、关键字final和static
一、变量的定义
变量 用来命名一个数据的标识符,变量是变化的量。
它存储在内存中(大小范围固定的区域),给该区域起的名称叫做变量名,对应空间大小由数据类型决定,可以将数据类型对应的值存储在该区域中。
Java是强类型语言,每个变量都必须声明其类型。
int a = 10; int 是数据类型 a 是标识符 =号是赋值操作符 ;表示结束
在内存中开辟了一块叫a的空间,这个空间里面存的值是10.
常量 初始化以后就不会变的量,只有唯一一次赋值机会。
这样的常量我们一般使用大写的变量名,这样的常量我们会将它定义为成员变量、或定义在枚举中来使用。
二、变量命名规则 1、规则
变量命名只能使用字母 数字 $ _
变量命名不能以数字开头
变量命名不能与关键字重复
关键字:
package、import、const、goto、return、void、true、false、null、try、catch、finally、throw、throws
new、extends、implements、class、instanceof、this、super、if、else、switch、case、default
do、while、for、break、continue、byte、short、int、long、float、double、char、boolean
private、protected、friendly、public、static、final、abstract、synchronized、transient、volatile、strictfp
- 帕斯卡命名:类名使用,所有单词首字母大写 例如 FileInputStream
- 驼峰命名:方法名和变量名使用,除第一个单词首字母小写外其他单词首字母大写 例如 toString
三、基本数据类型
四类八种,除基本数据类型之外的都是引用类型
| 大类 | 种类 | 长度 | 取值范围 |
|---|---|---|---|
| 整形 | byte short int long | 1个字节(8位) 2个字节(16位) 4个字节(32位) 8个字节(64位) | -28~28-1 -216~216-1 -232~232-1 -264~264-1 |
| 字符型 | char | 2个字节(16位) | 0~65535 |
| 浮点型 | 单精度float 双精度double | 4个字节(32位) 8个字节(64位) | 由指数的位数决定 |
| 布尔型 | boolean | 1个字节(8位) | true或false |
注意:float和double的范围以及精度float和double的范围由指数的位数决定。 float的指数位为8位,double的指数位为11位,分布如下:
- float:1位(符号位) 8bits (指数位23bits (尾数位) ) )
- double: 1位(符号位) 11位(指数位) 52位(尾数位) )
封闭性:java中变量的值在固定数据类型以后取值范围是固定的。
byte b=127;
b+=(byte)10; 这里b的值是-119
同样的
byte b=-128;
b-=(byte)10; 这里b的值是118
除了基本数据类型外的都是引用类型
引用类型有:
- 类 class (如String 、Date)
- 接口 interface
- 数组
- 枚举 enum
- 注解 Annotation
五、类型转换 1、低精度向高精度转换
低精度向高精度转换是自动转换
大的容器能放下小的容器里面的东西
short s=16450;
long l =s; l等于16450
强行转换,可能会造成精度丢失。
大的容器里面的东西放到小的容器里面,要先经过切割,才能放进去
long l=71319618;
short s=(short)l; s等于16450
六、作用域
当我们在不同的位置定义变量时候,这个变量名称不一样,作用域也不一样
- 在类下面定义的变量 称字段、属性、成员变量 例如 class Test{ private String name;} 这里的name就是成员变量
- 在方法名后面的()中设置的变量 称参数; 例如 int sum(int a , int b) {} 这里的 a和b 就是参数
- 在方法内定义的变量,称局部变量 例如 int sum(int a , int b) {int temp=a+b;} 这里的temp就是局部变量
成员变量整个类中都可以使用,参数和局部变量只有在本方法中才可以使用
七、final 和 static final- final修饰的变量为常量,一旦赋值就不能修改
- final修改的方法为最终方法,不能被重写
- final修饰的类是最终类,不能被继承
- static修饰的变量和方法,放在内存堆的常量池和方法区中,为该整个类及其类的对象所共享。
- static修饰的代码块为静态代码块,在类加载的时候就会执行
- 用来修饰成员变量和成员方法,可简单理解为“静态常量”
- 对于成员变量,表示一旦给值就不可修改,并且通过类名就可以访问。
- 对于方法,不能被重写,并且可以通过类名直接访问。
java变量和常量是相反的,变量会发生改变,常量初始化后不会改变;
java基本数据类型是四类八种,除了基本数据类型以外的都是引用类型(例如 String 、Integer、Enum等等);
java的类型转换要看精度,低精度转高精度没有问题,如果是高精度转低精度要注意可能造成精度丢失,这样变量的值可能会发生改变;
java的变量定义的地方不一样,作用的地方也不一样,范围:类变量(成员变量)>参数> 局部变量 ;



