1.变量
分类
变量大体可分为 成员变量和局部变量。其中局部变量可分为如下3类。
- 形参:在方法签名中定义的局部变量,由方法调用者负责为其赋值,随方法的结束而消亡。
- 方法内的局部变量:在方法内定义的局部变量,必须在方法内对其进行显示初始化。这种类型的局部变量从初始化完成后开始生效,随方法的结束而消亡。
- 代码块的局部变量:在代码块内定义的局部变量,必须在代码块内对其进行显式初始化,这种类型的局部变量从初始化完成后开始生效,随代码的结束而消亡。
成员变量分为静态变量和实力变量
- 静态变量:在类中定义static修饰的变量属于类本身 一个类中只有一份,属于对象共有,在准备阶段分配内存赋值为默认,第一次使用类时完成初始化赋值为自定义值,存储在静态存储区,经常被声明为常量
- 实例变量:类中定义无static修饰的变量属于对象,成员变量存储在堆内存的对象中,所以也叫对象的特有数据。 数值型变量默认值为0,布尔型默认值为false,引用类型默认值为null;
类型
类型分为基本类型和引用类型
基本数据类型
数值类型:
整数类型:byte,short,int,long
浮点类型:float,double
字符类型:char
布尔类型:boolean
整数类型 | 宽度 | 取值范围 |
---|---|---|
byte | 1个字节(8位) | -128~127 |
short | 2个字节(16位) | -215~215-1 |
int | 4个字节(32位) | -231~231-1 |
long | 8个字节(64位) | -263~263-1 |
计算机是二进制的,以byte来看,8位二进制数可以表示2的八次方位数字,由于数值都是从0开始的且有正负,所以PC中将二进制0开头代表正数,1开头代表负数,所以取值范围是11111111-011111111->-127-127但是因为00000000已经表示为0了,所以10000000应该表示为-128.最终取值范围是-128~127
正数 00001110 源码,反码,补码都是本身
负数 10001110 复制的反码除了符号位其余都取反 补码 = 反码+1
计算机中保持数据的都是补码的形式保存,如PC中存储10000001,计算机中保存的是11111111;
浮点类型 | 宽度 |
---|---|
float | 4个字节(32位) |
double | 8个字节(64位) |
float表示:需要在数值后面加上f或F
字符类型char
字符类型使用单引号括起来。默认值\u0000;
字符类型占2个字节16位,并且采用Unicode编码,所以可用十六进制(无符号的)编码形式表示,如‘A’可以用‘\u0041’表示。取值范围为\u0000~\uFFFF。
布尔类型
关键字:boolean
取值:true和false
数值之间转换
自动类型转换:范围小的类型转为范围大的类型
强制类型转换:范围大的类型转为范围小的类型,但是可能会出现精度缺失的情况
char类型比较特殊,char自动转为int,long,float,double,但是byte,short,不能自动转为char,char也不能转为byte和short.
引用数据类型
包含:类,接口,数组
引用类型变量中指向对象的内存地址
基本数据类型的默认值
系统在分配元素的初值时,按一下规则:
如元素为基本类型中的整型,默认值为 0;
如是基本类型中的浮点型,默认值为 0.0;
如实基本类型中的字符型,默认值为 ‘\u0000’;
如实基本类型中的布尔型,默认值为 false;
如是引用类型,默认值为 null;
数组
基本特性:一致性,有序性,不可变性。
静态初始化
int[] intArray;
intArray = {21,56,33,24};
已知数值中的元素时使用静态初始化
动态初始化
int[] intArray = new int[4];
intArray[0]=1;
intArray[1]=1;
intArray[2]=1;
intArray[3]=1;
编程时不知道元素有元素的内容时使用动态初始化