关键词:Java; 面试;笔试;数据类型;基础数据类型
Basic
类型 | 比特数 | 最大值 | 最小值 |
---|---|---|---|
byte | 8bit | 127 | -128 |
short | 16bit | 32767 | -32768 |
int | 32bit | 2147483647 | -2147483648 |
long | 64bit | 9223372036854775807 | -9223372036854775808 |
float | 32bit | 3.4028235E38 | 1.4E-45 |
double | 64bit | 1.7976931348623157E308 | 4.9E-324 |
char | 16位unicode | - | - |
boolean | 没有size属性 | - | - |
More I need to know
1. final
- 存放位置是放在栈里面,不需要用到堆,存储比较快。
- 不可变,包括包装类都是不可变的(全部是final)。
- 不可变的意思是说内存里面的值一旦被设置后就不会改变,如果要改变就会另外开辟一个位置存放新的值,但旧的值还在。
如
int i1 = 1;
int i2 = 1;
i2 = 2;
第1,2行里面,i1和i2是一样的值,他们实际是指向同一个内存空间(虽然2个变量,实际一个空间),第2行i2修改成其他值的时候,i2就指向了一个新的内存空间,里面是2。
2. double与float
java中所有浮点类型默认情况下都是double,不能将double 类型的值赋给float类型的变量,即便该double类型的值处于float类型的范围内。
例如:
double a=1.2;
System.out.println(a);
输出为:1.2
float a=1.2;
System.out.println(a);
不能正确输出
解决:
法一、强制类型转换,将double类型的值强制转换为float类型
float a=(float)1.2
System.out.println("a");
法二、
float=1.2F;
System.out.println("a");