目录
大家好!从今天开始,小编将带着大家一起进行Java语言的学习。本篇小编将带着大家认识一下数据类型,以及结合变量和大家一起深入学习数据类型。
Java中的数据类型分为基本数据类型和引用数据类型。其中基本数据类型有四大类,共八种。引用数据类型包括字符串String、数组、类、接口等等,这些在后序学习中会慢慢讲解.
基本数据类型有四大类,八种类型分别是
第一类:整型:byte、short、int、long
第二类:浮点型:float、double
第三类:字符型:char
第四类:布尔型: boolean
Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,补码=源码取反 + 1
数据类型:字节型
内存占用:1字节(8个bit位)
范围:-2^7~2^7-1(-128~127)
数据类型:短整型
内存占用:2字节(16个bit位)
范围:-2^15~2^15-1(-32768~32767)
数据类型:整型
内存占用:4字节(32个bit位)
范围:-2^31~2^31-1(-2,147,483,648~2,147,483,647)
数据类型:长整型
内存占用:8字节(64个bit位)
范围:-2^63~2^63-1(-9,233,372,036,854,775,808~9,233,372,036,854,775,807)
ava中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准。详情可点击这里👉 深度刨析数据在内存中的存储
数据类型:单精度浮点数
内存占用:4字节(32个bit位)
范围:不关注
默认值:0.0f
数据类型:双精度浮点数
内存占用:8字节(64个bit位)
范围:不关注
默认值:0.0
char类型是一个单一的16位Unicode字符。
数据类型:字符型
内存占用:2字节
范围:0 ~ 65535
在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✳字符串属于引用类型,该中类型后序介绍
定义变量的语法格式为:
数据类型 变量名 = 初始值;
比如:
int a = 10;//定义整型变量a,a是变量名,也称为标识符,该变量放置的值为10
double d = 3.14;
char c = 'A';
boolean b = true;
//注意,可以一行定义多个相同类型的变量
int a = 10,b=20,c =30;
// 方式一:在定义时给出初始值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 的范围
注意:
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个字节
short a = 10 ;System . Out . println ( a );// short 型变量所能表示的范围:System . Out . println ( Short . MIN_VALUE );System . Out . println ( Short . MAX_VALUE );
注意:
①short在任何系统下都占2个字节
②使用时注意不要超过范围(一般使用比较少)
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
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语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。
float num = 1.0f ; // 写作 1.0F 也可以System . out . println ( num );
注意:
float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准.。由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float.,float的包装类型为Float。
char c1 = 'A' ; // 大写字母char c2 = '1' ; // 数字字符System . out . println ( c1 );System . out . println ( c2 );// 注意: java 中的字符可以存放整形char c3 = ' 帅 ' ;System . out . println ( c3 );
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个字节。