【JAVASE】数据类型与变量(二)

简介: 【JAVASE】数据类型与变量

3.2.4 字节型变量

byte a=10;//由byte定义的字节型变量

byte型变量所能表示的范围:


public class Num_type {
    public static void main(String[] args) {
        System.out.println(Byte.MIN_VALUE);
        System.out.println(Byte.MAX_VALUE);
    }
}

6058891525daf619faac95fb5bd1d3d0_3ac654e773b746bea9e614caf25a8c68.png


注:


  • byte在任何系统下都占1个字节
  • byte的范围是:-128 ~ 127
  • 字节的包装类型为Byte


3.3 浮点型变量

浮点型变量,即小数型。


3.3.1 单精度浮点型

//定义方式:
float a=1.0f;
float b=2.0F;

例如:打印变量 a

120474540766455fee2c4595ca57955f_c51408ddfcb44cacbead8b3a23bd6a1e.png



float 类型在 Java 中占四个字节,同样遵守 IEEE 754 标准。

由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double,不太推荐使用float 。

float 的包装类型为 Float 。


float型变量所能表示的范围:


public class Num_type {
    public static void main(String[] args) {
        System.out.println(Float.MIN_VALUE);
        System.out.println(Float.MAX_VALUE);
    }
}

d4038ac1e93f83657b60938a3b281ab2_43becfaad2f143acb27d351f9e348dc8.png

1.4E-45=1.4x10^(-45)


3.3.2 双精度浮点型

//定义方式
double a=3.14;

double型变量所能表示的范围:


public class Num_type {
    public static void main(String[] args) {
        System.out.println(Double.MIN_VALUE);
        System.out.println(Double.MAX_VALUE);
    }
}

c28381b7a222d10e1beb58ef15b851db_19a6f2af4cf840f6b3db848b3bbab844.png

大家看看这段代码的输出结果会是多少?


//代码1
public class Num_type {
    public static void main(String[] args) {
        int a=1;
        int b=2;
        System.out.println(a/b);
    }
}   

没错,答案是 0


在 Java 中,int 除以 int 的值仍然是 int (会直接舍弃小数部分)。

如果想得到 0.5,需要使用 float 或 double 类型计算:

6327436aa9325dcdcdb281212fc034e8_0f8a1ed768c24acd89fc8efe03b9afcc.png


也可以这样计算:

89ec0b99d0b02e09a4d3db626bc420d4_0d74c36e0ed34b2e864cdf9713ab64e6.png



//代码2
public class Num_type {
    public static void main(String[] args) {
        double n=1.1;
        System.out.println(n*n);
  }
}

你的结果是1.21吗?

2ba35a6c55fae7c604d75b25ae097d87_2a05545ec01e4e40bc0233de2fe53eb4.png


这是因为小数并没有一个非常精确的数字,只能说是精确到小数点后几位。


注:


  • double在任何系统下都占8个字节
  • 浮点数与整数在内存中的存储方式不同,不能单纯使用 的形式来计算
  • double的包装类型为Double
  • double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值


3.4 字符型变量

public class Num_type {
    public static void main(String[] args) {
        char a = 'A';//char定义的字符型变量
        char b = '1';
        char c = '张';//java中的字符可以存放整形
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}

输出结果:

a853d6786d005c49fca298fddbe37120_b80916b3036b42eab4744525586d9af3.png



注:


  • Java 中使用 单引号 + 单个字母 的形式表示字符字面值
  • 计算机中的字符本质上是一个整数,在 C 语言中使用 ASCII 表示字符,而 Java 中使用 Unicode 表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文
  • char的包装类型为Character


3.5 布尔型变量

布尔类型常用来表示真假,在现实生活中也是经常出现的。


public class Num_type {
    public static void main(String[] args) {
        boolean b = true;//boolean定义的布尔类型变量
        System.out.println(b);
        b = false;
    }
}

输出结果:


9088474f851b4fdb8113acc9ff630c1c.png


注:


  • boolean 类型的变量只有两种取值,true 表示真, false 表示假
  • Java 的 boolean 类型和 int 不能相互转换,不存在 1 表示 true,0 表示 false 这样的用法
  • Java虚拟机规范中,并没有明确规定 boolean 占几个字节,也没有专门用来处理boolean的字节码指令,在Oracle公司的虚拟机实现中,boolean占1个字节
  • boolean的包装类型为Boolean


错误代码:

boolean a = true;
System.out.println(a + 1);

第一个类型是 boolean 型,第二个是 int 型,两个并不能做运算。

bd7cd70a5c3f4542af1b525173133d8b.png


3.6 类型转换

Java 作为一个强类型编程语言,当不同类型之间的变量相互赋值的时候,会有严格的校验。


观察下面代码:


int a=10;
long b=100L;
a=b;//编译失败 a 是整型,b 是长整型
b=a;//可以通过编译

运行结果:

34e0eb054f294d05988067bbf7f9eb10.png


这是因为 long 型的变量值范围对比 int 大,所以在由大到小转换的时候,可能会有损失。

而由小类型到大类型转换并没有影响。


29587f7436b54bc5802dc454fd64f7b6.png


在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式) 和 强制类型转换(显式)。


相关文章
|
12月前
|
Java 编译器
【JAVASE】数据类型与变量(三)
【JAVASE】数据类型与变量
【JAVASE】数据类型与变量(三)
|
12月前
|
存储 Java 编译器
【JAVASE】数据类型与变量(一)
【JAVASE】数据类型与变量
|
存储 Java
Java变量、数据类型和运算符 2
Java变量、数据类型和运算符
56 0
|
10月前
|
存储 Oracle Java
【JavaSE语法】数据类型与变量
【JavaSE语法】数据类型与变量
43 0
|
存储 Java
java变量、数据类型和运算符-3
事实上,自动类型转换并非所有情况下都有效。如果不满足上述条件,当必须将double类型变量的值赋给一个int类型变量时,该如何进行转换呢?这时系统就不会完成自动类型转换了。
77 0
|
存储 Oracle Java
【javaSE】 数据类型与变量
【javaSE】 数据类型与变量
|
Java 编译器
【JavaSE】解读数据类型与变量
解读数据类型与变量的介绍
66 0
|
存储 Java 大数据
【JavaSE】数据类型和运算符
Java中一共有8中基本数据类型,此外还有很多引用数据
|
存储 Oracle Java
【JavaSE】数据类型
本文讲解:Java中的数据类型
|
安全 Java
Java 变量之变量数据类型
Java 变量之变量数据类型
81 0
Java 变量之变量数据类型