bit (位):位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为“0”或“1”。
byte (字节):字节是计算机存储容量的基本单位,一个字节由8位二进制数组成。在计算机内部,一个字节可以表示一个数据或者一个英文字母,但是一个汉字需要两个字节表示。
- 1byte=8bit
- 1kb=1024byte
- 1mb=1024kb
数据类型
在java源代码中,每个变量都必须声明一种类型(type)。Java数据类型(type)可以分为两大类:基本类型(primitive types)和引用类型(reference types)。Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
八种基本数据类型
整型
整型包含四种类型:byte,short,int和long。
注意事项:
- 浮点型默认是double类型,如果给float赋值,值的后面要加f/F
- 整数的默认类型为int
- 整数常量有3中表示方式:十进制、8进制和16进制。与C/C++相同,10进制前啥也不加,8进制前加0,16进制前加0x。
byte by = 1;
short sh = 1;
int in = 99;
long lo = 1L;
//十进制逢十进一 ,二进制逢二进一 (11表示3)
System.out.println(11);// 1+1*10 == 1+1*2 == 1+1*8
System.out.println(0B11);//二进制
System.out.println(011);//八进制
System.out.println(0X11);//十六进制
字符型
Java字符是单括号括起来的单个字符,不管是中文还是英文只能有一个。
Java包含C/C++的128个ASCII码,使用方法与C/C++完全相同。更厉害之处在于,在Java中字符型常量也可以采用16进制编码方式来表示,范围是\u0000-\uFFFF,一共可以表示65535个字符。汉字用16进制编码的范围为0x4E00-0x9FA5,一共20902个汉字。
//单引号括起来单个字符
char ch1 = 'c';
char ch2 = '中';
char ch3 = '\n';//换行转义字符
布尔型
只有两个值,true,false.常用语逻辑条件里,只占一位。
基本数据类型转换
基本数据类型转换主要分为自动转换和强制转换:
自动类型转换(隐式数据类型转换):表数范围小的可以自动转化为表数范围大的
强制类型转换(显式数据类型转换):表数范围大的转换为表数范围小的,需要加强制类型转化符,有可能发生数据溢出或者精度丢失
基本数据类型中类型的自动提升
数值类型在内存中直接存储其本身的值,对于不同的数值类型,内存中会分配相应的大小去存储。如:byte类型的变量占用8位,int类型变量占用32位等。相应的,不同的数值类型会有与其存储空间相匹配的取值范围。具体如下所示:
// 1.自动转换(隐式转换):表数范围小的可以自动转化为表数范围大的
int in = 10;
long lo = in;
short sh = 10;
int in1 = sh;
System.out.println("====强制类型转换====");
int in2 = 128;
byte num = (byte)in2;
System.out.println(num);
System.out.println("========");
//2.强制转换 表数范围大的转换为表数范围小的,需要加强制类型转化符
//有可能发生数据溢出或者精度丢失
int in3 = 1000;
byte by = (byte) in3;
System.out.println(by);
boolean和其他基本数据类型之间不能相互转换