第一章 :变量

第二章 :数据类型


目录

第二章 : Java数据类型

前言

一、数据类型分类

二、基本类型

1.数值型

1.1整数类型

1.2浮点数类型

2.非数值型

2.1布尔类型

2.2字符类型

三、引用类型

总结


前言

在本系列中上一篇文章中我们讲到了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中的数据类型,详细介绍了基本数据类型,而关于引用数据类型后续将会继续讨论,关于本篇文章若有不足之处,劳请大家指正!

Logo

2万人民币佣金等你来拿,中德社区发起者X.Lab,联合德国优秀企业对接开发项目,领取项目得佣金!!!

更多推荐