目录
一、基本数据类型
1.1 整型
1.1.1 byte
1.1.2 short
1.1.3 int
1.1.4 long
1.2 浮点型
1.2.1 float
1.2.2 double
1.3 字符型
1.4 布尔型
二、变量
2.1 变量的概念
2.2 语法格式
2.3 整型变量
2.3.1 整型变量
2.3.2 长整型变量
2.3.3 短整型变量
2.3.4 字节型变量
2.4 浮点型变量
2.4.1 双精度浮点数
2.4.2 单精度浮点数
2.5 字符型变量
2.6 布尔型变量
大家好!从今天开始,小编将带着大家一起进行Java语言的学习。本篇小编将带着大家认识一下数据类型,以及结合变量和大家一起深入学习数据类型。
Java中的数据类型分为基本数据类型和引用数据类型。其中基本数据类型有四大类,共八种。引用数据类型包括字符串String、数组、类、接口等等,这些在后序学习中会慢慢讲解.
一、基本数据类型
基本数据类型有四大类,八种类型分别是
第一类:整型:byte、short、int、long
第二类:浮点型:float、double
第三类:字符型:char
第四类:布尔型: boolean
1.1 整型
Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,补码=源码取反 + 1
1.1.1 byte
数据类型:字节型
内存占用:1字节(8个bit位)
范围:-2^7~2^7-1(-128~127)
1.1.2 short
数据类型:短整型
内存占用:2字节(16个bit位)
范围:-2^15~2^15-1(-32768~32767)
1.1.3 int
数据类型:整型
内存占用:4字节(32个bit位)
范围:-2^31~2^31-1(-2,147,483,648~2,147,483,647)
1.1.4 long
数据类型:长整型
内存占用:8字节(64个bit位)
范围:-2^63~2^63-1(-9,233,372,036,854,775,808~9,233,372,036,854,775,807)
1.2 浮点型
ava中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准。详情可点击这里👉 深度刨析数据在内存中的存储
1.2.1 float
数据类型:单精度浮点数
内存占用:4字节(32个bit位)
范围:不关注
默认值:0.0f
1.2.2 double
数据类型:双精度浮点数
内存占用:8字节(64个bit位)
范围:不关注
默认值:0.0
1.3 字符型
char类型是一个单一的16位Unicode字符。
数据类型:字符型
内存占用:2字节
范围:0 ~ 65535
1.4 布尔型
在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组会被编译成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit。
数据类型:boolean
内存占用:没有明确规定
范围:true和false
注意:
✳不论是在 16 位系统还是 32 位系统, int 都占用 4 个字节, long 都占 8 个字节✳整形和浮点型都是带有符号的✳整型默认为int 型,浮点型默认为 double✳字符串属于引用类型,该中类型后序介绍
二、变量
2.1 变量的概念
2.2 语法格式
定义变量的语法格式为:
数据类型 变量名 = 初始值;
比如:
int a = 10;//定义整型变量a,a是变量名,也称为标识符,该变量放置的值为10
double d = 3.14;
char c = 'A';
boolean b = true;
//注意,可以一行定义多个相同类型的变量
int a = 10,b=20,c =30;
2.3 整型变量
2.3.1 整型变量
// 方式一:在定义时给出初始值int a = 10 ;System . Out . println ( a );// 方式二:在定义时没有给初始值,但使用前必须设置初值int b ;b = 10 ;System . Out . println ( b );// 使用方式二定义后,在使用前如果没有赋值,则编译期间会报错int c ;System . Out . println ( c );c = 100 ;// int 型变量所能表示的范围:System . Out . println ( Integer . MIN_VALUE );System . Out . println ( Integer . MAX_VALUE );// 注意:在定义 int 性变量时,所赋值不能超过 int 的范围int d = 12345678901234 ; // 编译时报错,初值超过了 int 的范围
注意:
2.3.2 长整型变量
int a = 10 ;long b = 10 ; // long 定义的长整型变量long c = 10L ; // 为了区分 int 和 long 类型,一般建议: long 类型变量的初始值之后加 L 或者 llong d = 10l ; // 一般更加以加大写 L ,因为小写 l 与 1 不好区分// long 型变量所能表示的范围:这个数据范围远超过 int 的表示范围 . 足够绝大部分的工程场景使用 .System . Out . println ( Long . MIN_VALUE );System . Out . println ( Long . MAX_VALUE )
注意:
① 长整型变量的初始值后加L或者l,推荐加L
② 长整型不论在那个系统下都占8个字节
2.3.3 短整型变量
short a = 10 ;System . Out . println ( a );// short 型变量所能表示的范围:System . Out . println ( Short . MIN_VALUE );System . Out . println ( Short . MAX_VALUE );
注意:
①short在任何系统下都占2个字节
②使用时注意不要超过范围(一般使用比较少)
2.3.4 字节型变量
byte b = 10 ;System . Out . println ( b );// byte 型变量所能表示的范围:System . Out . println ( Byte . MIN_VALUE );System . Out . println ( Byte . MAX_VALUE );
注意:
①byte在任何系统下都占1个字节
② byte的范围是:-128 ~ 127
2.4 浮点型变量
2.4.1 双精度浮点数
double d = 3.14 ;System . Out . println ( d );
思考下面代码会出现怎样结果:
int a = 1 ;int b = 2 ;System . out . println ( a / b ); // 输出 0.5 吗?
结果显然不是0.5,在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 0.5, 需要使用 double 类型计算。
double a = 1.0;
double b = 2.0;
System . out . println ( a / b ); // 输出 0.5
double num = 1.1 ;System . out . println ( num * num ); // 输出 1.21 吗?// 执行结果1.2100000000000002
注意:
① double在任何系统下都占8个字节
② 浮点数与整数在内存中的存储方式不同,不能单纯使用的形式来计算
③ double的包装类型为Double
④ double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。
2.4.2 单精度浮点数
float num = 1.0f ; // 写作 1.0F 也可以System . out . println ( num );
注意:
float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准.。由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float.,float的包装类型为Float。
2.5 字符型变量
char c1 = 'A' ; // 大写字母char c2 = '1' ; // 数字字符System . out . println ( c1 );System . out . println ( c2 );// 注意: java 中的字符可以存放整形char c3 = ' 帅 ' ;System . out . println ( c3 );
2.6 布尔型变量
boolean b = true ;System . out . println ( b );b = false ;System . out . println ( b );
注意:
① boolean 类型的变量只有两种取值, true 表示真, false 表示假。
② Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。
③ Java虚拟机规范中,并没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码指令,在Oracle公司的虚拟机实现中,boolean占1个字节。