Java数据类型和局部变量
1.基本数据类型
-
数值类型
-
整数类型(根据不同的数据类型可以划分内存的存储空间的大小,不同的类型就是不同的数据类型)
1.字节类型(byte,1个字节)
-
0 1 2 3 4 5 6 7 0 1 0 2 0 0 1 1 然后将这个二进制数字转化为十进制,第一位表示正负符号,后面7位表示数字大小
-
八位二进制位组成一个字节(byte),一个字节表示的范围为:-128到127
- 短整形(short,2个字节,最大值为2的七次方-1,最小值为-2的七次方)
-
-
-
整形(int,4个字节,最常用,默认为int)
- 长整型(long,8个字节,其次,在数字的最后面可以加上字母l或者L,必须得加,如果数字的大小很大,超过前面的int之类的数值类型)
-
小数类型
-
单精度类型(float,4个字节,由于其存储结构和整数类型不同,所以表示的数字范围比整数形式更大,最大值为2的128次方,最小值为-2的128次方)
- float,注意float类型后面的值要加上f或者F,例如:
float price = 12.5f
,默认值为0.0f,不能用来表示精确的值,比如货币
- float,注意float类型后面的值要加上f或者F,例如:
-
双精度类型(8个字节,存储结构不同,所以表示的数字范围是最大的,最大值为2的1024次方-1,最小值为-2的1024次方)
-
double,一个数后面不加f默认为double类型,在最后面也可以加上d或者为D,也可以不加,默认值为0.0d,不能用来表示精确的值,比如货币
double price = 45.6
-
-
-
布尔类型(只有两个值,分别为true和false),例如:
boolean bool = true
-
字符类型(占两个字节,可以为空格字符串),例如:
char space = " "
2.引用数据类型
-
类(class)
-
接口(interface)
-
数组([])
-
引用数据类型可能发生空指向的问题。引用数据类型可以赋值成null,这就代表空指向
int[] arr = null
3.局部变量
-
同一个作用域内变量名不能重复
class Demo1{ public static void main(String[] args){ int a = 10; int a = 18; System.out.println(a); } }
最后得出来的结果会报错,这点和Js不一样,Js的值一个会覆盖上一个的值
-
变量的作用范围,起作用范围是根据大括号来划分,定义的变量只在当前的大括号内有效(包括子括号),也就是内部可以用外部,外部不能使用内部,同级别的也不能使用,这种变量也成为局部变量
class Demo1{ public static void main(String[] args){ int a = 10; } public void method(){ System.out.println(a); //结果是错误。 } }