Java语言基础篇——数据类型
第一章 :变量
第二章 :数据类型
目录
前言
在本系列中上一篇文章中我们讲到了Java变量的相关知识,接下来我们要学习Java中的数据类型。当我们在定义一个变量时,我们需要声明一下变量的类型,这个类型就是所谓的数据类型。
一、数据类型分类
在这里我们将数据类型分为“基本类型”和“引用类型”,下图是一个大概的分支图,接下来我将为大家详细介绍

二、基本类型
基本数据类型是CPU可以直接进行运算的数据类型,在JVM的栈中分配内存空间。在Java中定义了8种基本数据类型:
●数值型
整数类型:byte,short,int,long
浮点数类型:float,double
●非数值型
字符类型:char
布尔类型:boolean
不同的数据类型占用的字节数不一样,Java基本数据类型占用的字节数,如下图所示:
Java中8种基本数据类型的内存大小:
┌───┐
byte │ │ 1个字节
└───┘
┌───┬───┐
short │ │ │ 2个字节
└───┴───┘
┌───┬───┬───┬───┐
int │ │ │ │ │ 4个字节
└───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐
long │ │ │ │ │ │ │ │ │ 8个字节
└───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┬───┬───┐
float │ │ │ │ │ 4个字节
└───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐
double │ │ │ │ │ │ │ │ │ 8个字节
└───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┐
char │ │ │ 2个字节
└───┴───┘
1.数值型
1.1整数类型
对于整数类型,Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)
各种整型能表示的最大范围:
●byte:-128 ~ +127
●short : -32768 ~ +32767
●int : -2147483648 ~ +2147483647(-231 ~ +231-1)
●long : -9223372036854775808 ~ +9223372036854775807(-263 ~ +263-1)
定义整型变量:
public class Main {
public static void main(String[] args) {
int i1 = 2147483647;
int i2 = -2147483648;
int i3 = 2_000_000_000; // 加下划线更容易识别
int i4 = 0xff0000; // 十六进制表示的16711680
int i5 = 0b1000000000; // 二进制表示的512
long l = 9000000000000000000L; // long型的结尾需要加L
}
}
注意:对于long类型,需要加上l或L后缀,由于l与数字1相近似,所以一般都采用L后缀,同一个整数,使用不同进制表示,完全相同。例如:15 = 0xf = 0b1111。
1.2浮点数类型
浮点类型的数值就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的。例如:1234.5可以表示成12.345 x 10^2,也可以表示成1.2345 x 10^3,所以称为浮点数。
定义浮点型变量:
float f1 = 3.14f;
float f2 = 3.14e38f; // 科学计数法表示的3.14x10^38
double d1 = 1.79e308;
double d2 = -1.79e308;
double d3 = 4.9e-324; // 科学计数法表示的4.9x10^-324
注意:对于float类型,需要加上f或F后缀,浮点数可表示的范围非常大,float类型可最大表示3.4 x 10^38,而double类型可最大表示1.79 x 10^308
2.非数值型
2.1布尔类型
布尔类型boolean只有true和false两个值,布尔类型通常是关系运算的计算结果。
定义布尔类型变量:
boolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 计算结果为true
int age = 12;
boolean isAdult = age >= 18; // 计算结果为false
注意:Java语言对布尔类型的存储并没有做规定。在 Java 虚拟机里采用8位二进制数表示布尔值, 00000001 表示 true ,00000000 表示 false。但是通常HotSpotJVM内部使用4字节int类型整数来存储boolean值。
2.2字符类型
字符类型char表示一个字符。Java的char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符。
定义字符类型变量:
public class Main {
public static void main(String[] args) {
// 直接保存字符
char a = 'A';
char zh = '中';
System.out.println(a);
System.out.println(zh);
// 保存字符的Unicode码
// 89代表"Y"的ASCII码
a = 89;
System.out.println(a);
// 22825代表"天"的Unicode码
zh = 22825;
System.out.println(zh);
}
}
注意:char类型使用单引号' ',且仅有一个字符。这点要和使用双引号" "的字符串类型区分开。
三、引用类型
引用类型在JVM的“堆”中分配内存空间。除了上述8种基本数据类型以外,其余类型均为“引用数据类型”。基本上每一个“基本数据类型”都会对应一个“引用数据类型”:
●数值型
整数类型:Byte,Short,Integer,Long
浮点数类型:Float,Double
●非数值型
字符类型:Character
字符串类型:String
布尔类型:Boolean
其中最常见的引用数据类型是String字符串,用于保存若干个字符。
String str1 = "空山新雨后";
str1 = "天气晚来秋";
System.out.println(str1.charAt(0)); // 第1个字符
str1 = "竹喧归浣女";
System.out.println(str1.charAt(1)); // 第2个字符
注意:
●引用类型的变量类似于C语言的指针,它内部存储一个“地址”,该地址指向某个“数据”在内存的位置,后续介绍类的概念时会详细讨论。
●引用类型往往会提供一系列“方法”,对当前存储的数据进行某种逻辑上的处理。这是基本数据类型不具备的。
总结
以上就是今天要讲的内容,本文章为大家介绍了Java中的数据类型,详细介绍了基本数据类型,而关于引用数据类型后续将会继续讨论,关于本篇文章若有不足之处,劳请大家指正!
更多推荐



所有评论(0)