Java 基本数据类型【基础篇】








Java 数据类型


Java 语言支持的数据类型分为两种:基本数据类型引用数据类型。其数据类型结构如下图所示:


故屿




基本数据类型


基本数据类型共八种,可分为六种数字类型(四个整数型,两个浮点型),整体又可分为四大类:

i. 整数类型(byte、short、int、long)
ii. 浮点类型(float、double)
iii. 布尔类型(boolean)
iiii. 字符类型(char)

Java 的基本数据类型取值范围如下表:
  double > long > float > int > short > byte > char


类型名称关键字包装类默认值占用内存/位数取值范围
字节型byteByte0一个字节/8位-27 ~ 27-1 ( -128~127)
短整型shortShort0两个字节/16位-215 ~ 215-1 (-32768~32767)
整型intInteger0四个字节/32位-231 ~ 231-1 (-2147483648~2147483647)
长整型longLong0L八个字节/64位-263 ~ 263-1 (-9223372036854775808L~9223372036854775807L)
单精度浮点型floatFloat0.0f四个字节/6~7个有效位+/-3.4E+38F
双精度浮点型doubleDouble0.0d八个字节/15个有效位+/-1.8E+308
字符型charCharacter‘u0000’两个字节/16位 Unicode 字符最小值: \u0000(十进制等效值为0)、最大值是 \uffff(即为 65535)
布尔型booleanBooleanfalse一个字节(非规范强制)true 或 false



整数类型【byte、short、int、long】

对于整数类型,Java 只定义了带符号的整型,因此,最高位的 bit 表示符号位(0表示正数,1表示负数)。 Java 四种整数类型变量说明如下:


①byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。

了解计算机内存的基本结构:

a. 计算机内存的最小存储单元是字节(byte),一个字节就是一个 8 位二进制数,即 8 个 bit。
b. 它的二进制表示范围从 00000000 ~ 11111111,换算成十进制是 0 ~ 255,换算成十六进制是 00 ~ ff。
c. 内存单元从0开始编号,称为内存地址。

一个字节是 1byte,1024字节是 1K,1024K是 1M,1024M是 1G,1024G是 1T。一个拥有 4T 内存的计算机的字节数量如下:

4T = 4 x 1024G
= 4 x 1024 x 1024M
= 4 x 1024 x 1024 x 1024K
= 4 x 1024 x 1024 x 1024 x 1024
= 4398046511104

②short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。

③int 类型是最常使用的一种整数类型。

④对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型。


  • 示例如下

public static void main(String[] args) {

	int i1 = 0xff0000; // 十六进制表示:16711680
    int i2 = 0b1000000000; // 二进制表示:512
    long l1 = 9000000000000000000L; // long型的结尾需要加L
    long l2 = 900; // 没有加L,此处 900 为 int,但 int 类型可以赋值给 long
    int i3 = 900L; // 错误:不能把 long 类型赋值给 int

    byte a = 20; // 声明一个 byte类型的变量 a 并赋予初始值为 20
    short b = 10; // 声明一个 short类型的变量并赋予初始值为 10
    int c = 30; // 声明一个 int类型的变量并赋予初始值为 30
    long d = 40; // 声明一个 long 类型的变量并赋予初始值为 40
    long sum = a + b + c + d;
    
    // 打印输出的最终结果:20+10+30+40=100
    System.out.println("20+10+30+40=" + sum);
}



  • 如上示例:在 Java 中,变量必须先定义后使用,在定义变量的时候,可以给它一个初始值;当不写初始值,就相当于给它指定其默认值为 0。
  • 例如: int c = 30;该语句定义了一个整型 int 类型的变量,名称为 c,初始值为 30;
  • 注:等号 “=” 是赋值语句,不是数学意义上的相等;整数类型计算可以使用 “+” 相加,而非字符串之间的连接。



浮点类型【float、double】

注意:在声明 float 类型的变量时,需要在数值后添加 “F” 或 “f”。
若不带 f 结尾的则是 double 类型,不能赋值给 float

Java 默认的浮点型是 double,例如,3.14 和 3.1415d 都是 double 型数值。如果要说明一个 float 类型数值,就需要在其后追加字母 f 或 F,如 3.14f 和 3.1415F 都是 float 类型的常数。


  • 示例如下

float price = 65.7f;  // 定义 float 类型的变量并赋予初始值
float f2 = 3.14e38f; // 科学计数法表示为:3.14x10^38
float f3 = 1.0; // 错误:不带 f 结尾的是 double 类型,不能赋值给 float

double price = 12.254d; // 定义 double 类型的变量并赋予初始值,此类型数值后默认可以不写 “d”
double d2 = -1.79e308; // 科学计数法表示为:-1.79x10^308




布尔类型【boolean】

boolean:布尔型,那 boolean 到底占用几个字节

占1个字节,查看 Java 官方 doc 教程上显示:boolean 的字节数是不确定,布尔数据类型只有两个可能的值:true 和 false。将此数据类型用于跟踪真/假条件的简单标志。这种数据类型表示一位信息,但它的 “大小” 并不是精确定义的;
也有说 boolean 一般占4个字节,因为 32 位 CPU 一次读4个字节,会直接把 boolean 当作 int 处理;但是 boolean[] 数组反而会按1字节算,原因是省内存;

总之,boolean 实际上并不一定是1个字节,JVM 规范并没有明确规定,其字节数其实是不确定的。

布尔类型:用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。
Java 中用保留字 true 和 false 来代表逻辑运算中的“真”和“假”。因此,一个 boolean 类型的变量或表达式只能是取 true 和 false 这两个值中的一个。


  • 示例如下

boolean isable;    // 声明 boolean 类型的变量 isable
boolean b = false;    // 声明 boolean 类型的变量 b,并赋予初值为 false

boolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 计算结果为 true

int age = 10;
boolean isAdult = age >= 15; // 计算结果为 false




字符类型【char】

char(字符型):单个字符,两个字节,16位,即一个单一的 16 位 Unicode 字符;
由 ASCII 码表:

48 ~ 57 为 0 ~ 9;
65 ~ 90 为 A ~ Z;
97~ 122 为 a ~ z;

最大值:\uffff 即为 65535,
最小值:\u0000 即 十进制等效值为 0;

注意:在Java中,字符类型是以 Unicode 码表示的。


  • 示例如下

char letter = 'D'; // char 字符型变量的类型用来表示单个的字符,单引号表示
char numChar = '5'; 
char c = 'c'; // 在 ASCII 码表中'D' 对应表示:68;'5' 对应表示:53;'c' 对应表示:99



  • 注:
      long 和 double 都不需要添加 " "
      char 单引号表字符一个 ‘ ’
      string 双引号表示字符串多个 " ",String字符串是引用类型!


自定义变量声明数据类型参考举例:
byte(double)score; // 分数
int(short) age; // 年龄
int sumScore; // 总分
int type; // 类型
long fileSize; // 文件大小
double height; // 高度
double balance; // 余额
boolean isContinue; // 是否继续
String name; // 名字
String code;// 编码






引用数据类型


引用数据类型是建立在基本数据类型的基础上,包括:数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。



  • 注意:空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个 null 值赋给基本数据类型的变量。













Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
知者,感谢您在茫茫人海中阅读了我的文章
没有个性 哪来的签名!
详情请关注点我
持续更新中

扫一扫 有惊喜!
© 2024 06 - Guyu.com | 【版权所有 侵权必究】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值