Java中数据类型分为两大类——8个基本数据类型(原生数据类型)、3个引用数据类型(对象数据类型);
一、整数类型
1 概念
包括byte、short、int、long类型;
2 整数常量有4种表示形式
(1)二进制整数
以0B或0b开头(Java7新特性);
如int a = 0B00000000_00000101;(下划线无意义,只为程序员能分清,Java7新特性)
(2)八进制整数
以0开头;
如int b = 012;
(3)十进制整数
(4)十六进制整数
以0X或0x开头;
如int = 0X325;
注:
Java中整型常量默认是int类型;
声明long类型变量时需要(不是必须)在整型常量后加上l或L,建议使用大写L,便于分辨;
二、浮点类型
1 概念
包括float、double类型;
又小数类型,float表示单精度类型,double表示双精度类型,但两者都不能表示精确的小数;(BigDecimal类型表示任意精度的数据)
2 浮点类型有2种表现类型
(1)十进制形式
如.325;
(2)科学计算法形式
如3.14e2、3.14E-2;
注:
Java中浮点常量默认是double类型;
声明float类型变量时必须在浮点常量后加上f或F,double类型可加可不加;
Java中只有浮点类型变量才可接受科学计算式结果;
三、字符类型
1 概念
表示16位的无符号整数或Unicode字符;
注:
char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复;
Java对字符采用Unicode字符编码;
Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式,Java字符占2B,可表示一个汉字;
计算机只能表示0和1两个数,于是规定是用一个数字表示一个特定字符,如a使用97表示;
2 char常量有3种表现形式
(1)直接使用单个字符指定字符常量
如'Y'、'5';(这里是单引号,若是双引号,则变成字符串)
(2)直接作为十进制整数数值使用
数据范围在[0, 65535],但打印出来的值依然是ASCII码表对应的符号;
(3)使用十六进制整数数值
格式'\uXXXX',其中XXXX表示十六进制整数(必须是4位),如97的十六进制是61,则表示为'\u0061';
四、布尔类型
通常用于逻辑运算和程序流程控制(条件选择/循环);
取值只能是true或false,默认值是false;
不可用0或非0整数代替false或true;
五、最常用的引用类型——String
除8中基本数据类型,其他都是引用数据类型,包括类、接口、数组;
引用数据类型默认值是null;
String是一个类,表示字符串,即一串字符,由N(0个或多个)个字符连接在一起;
字符串使用双引号""括起来;
字符串连接:字符串之间使用加号+进行连接;字符串和任意数据类型相连接,其结果都是字符串类型;
如下字符串连接,其结果不同取决于加号运算符是自左向右运算:
System.out.println(8+7+"twc"); //15twc
System.out.println("twc"+7+8); //twc78
System.out.println(7+"twc"+8); //7twc8
String str1 = 15 + "twc"; // 组成一个新的字符串"15twc"
String str2 = 15; // 编译错误:不可转换的类型