为什么要学习数据类型?
Java是一种强类型语言,每个变量都必须声明其类型。软件的本质就是处理数据。
数据类型的种类?
Java的数据类型分为两大类:
- 基本类型(primitive type)基本数据类型是Java语言中内置的类型,分别是整数类型、小数类型、字符类型、布尔类型。这四类基本类型是最简单、最基础的类型。
- 引用类型 (reference type) 引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!
基本数据类型又分为以下几种:
逻辑型:boolean 有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false
文本型: charchar 字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。 占两个字节,是无符号数据,取值范围0-65536
数值型
注意:其中一位表示正负号,整数比负数少1,因为有一个表示0
- byte 占1个字节, 范围 -2^7 ~ 2^7-1(-128~127)
- short 占2个字节, 范围 -2^15 ~ 2^15-1(-32768~32767)
- int 占4个字节。范围-2^31 ~ 2^31-1 (-2147483648~2147483647)约21亿
- long 占8个字节, 范围-2^63 ~ 2^63-1
- float 占4个字节,范围-3.403E38~3.403E38
- double 占8个字节,范围 -1.798E308~1.798E308
注意:
数据范围不一定和与占用的字节数有关
1 public class DataType {
2
3
4 public static void main(String[] args) {
5
6 // 定义byte类型变量,不能超过取值范围,否则会报错
7 byte b = 22;
8 // 定义short类型变量
9 short s = 54;
10
11 // 定义整型变量
12 int a = 10;
13 // long 类型变量,注意最后要加L,表示这个是long型数据,整型默认为int类型
14 long l = 654562656565656L;
15 // 定义float变量,后面必须加F,浮点数默认为double类型
16 float f = 3.14F;
17 // 定义double变量
18 double d = 3.14;
19 // 定义字符变量
20 char c = 'z';
21 // 定义 Boolean类型变量
22 boolean B = true;
23 // 定义引用类型String变量
24 String S = "i love java";
25 // 重新赋值 变量名a 的指向改变
26 a = 20;
27 System.out.println(a);// 输出结果 20
28 System.out.println(b);// 输出结果 22
29 System.out.println(s);// 输出结果 54
30 System.out.println(l);// 输出结果 654562656565656
31 System.out.println(f);// 输出结果 3.14
32 System.out.println(d);// 输出结果 3.14
33 System.out.println(c);// 输出结果 z
34 System.out.println(B);// 输出结果 true
35 System.out.println(S);// 输出结果 i love java
36
37 }
38
39 }
Java 语言整型常数的三种表示形式:
- 十进制整数,如:99, -500, 0。
- 八进制整数,要求以 0 开头,如:015。
- 十六进制数,要求 0x 或 0X 开头,如:0x15 。
注意:
- Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ 。
- float类型又被称作单精度类型,尾数可以精确到7位有效数字,而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,浮点型常量默认类型也是double。
- 浮点类型float,double的数据不能比较大小。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
- char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
- boolean 类型用来判断逻辑条件,一般用于程序流程控制 。
- Java中没有无符号类型