目录
本章节我们接续上章的内容,介绍
java数据类型
Java数据类型
程序中对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间.
以上为数据类型的分类,接下来我们将对基本数据类型进行一一学习
一.整数型
Java 各整数类型有固定的表数范围和字段长度,其不受具体操作系统的 影响,以保证Java程序的可移植性。
System.out.println(Integer.MAX_VALUE);//可以查询integer型能表示的最大数值
System.out.println(Integer.MIN_VALUE);//可以查询integer型能表示的最小数值
同理,也可以用以上形式查询其他类型数据所能表示的范围
Java语言的整型常量默认为int型,声明long型常量可以后加"L"或"l"(当值超过了int的存储范围,就必须添加,否则无法输出)
此部分涉及到计算机储存单位的关系,我们进行简单的介绍:
位(bit):是数据存储的最小单位.二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8bit就称为一个字节.
字节(byte):是计算机计量存储容量的基本单位,一个字节等于8 bit .
转换关系:
8 bit = 1 Byte1024 Byte = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB
整数的其他表示形式
int x=12;//12是十进制表示形式
int m=0b111;//0b开头 二进制表示
int n=011;//0开头 表示八进制
int y=0x11;//0x开头 表示十六进制
二.浮点类型
与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台 影 响。 Java 浮点类型有两种表示形式
十进制数形式: 例:3.14 314.0
科学计数法形式: 例:3.14e2 3.14E2
浮点类型的字面常量是double类型,当需要表示一个float字面常量时,在字面常量后面加"F"或"f"
float:单精度,可以精确到8位有效数字。(很多情况下,精度很难满足需求)
double:双精度,精度是float的两倍。
注意:当我们运行以下代码时:
System.out.println(0.1+0.2==0.3);
输出的结果为:
这是由于有的小数在底层存储时,不能做到精确储存,(小数部分无限循环)只能做到近似值,所以就会出现上述现象,故,涉及到金额等数据时,我们不能使用float或double型,而使用BigDecimal型来解决
三.逻辑(布尔)类型[boolean]
布尔类型适用于逻辑运算,一般用于程序流程控制
java语言中boolean 类型数据只允许取值 true 或 false,(逻辑运算,比较运算之后的值,也只能是false,true)
注意:不可以0或非 0 的整数替代false和true,这点和C语言不同
四.字符型[char]
char型数据用来表示一个单个字符(表示的字符需要用单引号括起来)
char ch='a';
char w='中';
由于java底层使用unicode编码,所以可以涵盖世界上所有书面语的字符
char运算:
char类型可以进行算数运算,运算时用的是字符在编码表中的整数编号计算的(char类型是可以运算的因为char在字符编码表中有对应的数值).
在JAVA中,对char类型字符运行时,直接当做对应编码表的整数来对待。
char c=‘a’+1; 先将’a’提升为int,计算结果98
上面提到了编码表,现进行简单阐述
Java中使用Unico编码(万国码)容纳了全球各个国家的文字字符(其他编码表都兼容了Ascll码表中的那部分内容)
五.Java中的字符串[String]
C语言中无单独字符串类型,所以C语言中的字符串表示用的是字符数组储存
Java中提供[String]类来表示字符串(Java中字符串可连接)
[String]不是基本数据类型,属于引用数据类型
使用一对""来表示一个字符串,内部可以包含0个、1个或多个字符
//java中的字符串
String s="abcd";
String name="wzc";
String adress="陕西 西安";
String 变量名 = "字符串值"
运算规则
1.任意八种基本数据类型的数据与String类型只能进行连接“+”运算,且结果一定 也是String类型
2.String类型不能转为其他的基本类型