跳转至

Java 数据类型

变量


在 Java 中,申请变量的格式如下:

数据类型 变量名 = 初值;
数据类型 变量名;

Java 的变量主要分为两种:

  • 基本类型的变量 int id = 1;

  • 引用类型的变量 String name = "JRNitre;

常见关键字


 这是一种事先定义好的,有特定意义的标识符,也叫做保留字。

 对于 Java 编译器有着特殊意义,用来表示一种数据类型,或者表示程序的结构等。此外,关键字不能用作变量名、方法名、类名、包名和参数名。常见的关键字可以分为如下几类,具体的关键字如下所示:

错误处理 程序控制 访问控制 基本类型 变量引用 类、方法及变量修饰符 包相关 保留字
try break private boolean super abstract package goto
catch continue protected byte this class import const
finally return public short void interface
throw do int new
throws while long
for char implements
if float native
else double final
case true static
switch false synchronized
default null transient
instanceof volatile

数据类型


 Java 中,共有 8 种基本数据类型,由 Java 语言预定好的,每个数据类型都属于关键字,而且每种基本变量都有其对应的封装类,这 8 种基本数据类型分别是:

  • 整型(4 种)
  • 浮点型(2 种)
  • 字符型(1 种)
  • 布尔型(1 种)

 Java 中,这 8 种类型所占用的空间和数字范围如下表所示:

数据类型 bit 字节 封装类 数据范围 默认值
byte 8 1 Byte $ -2^7 \sim 2^7 - 1 $ 0
short 16 2 Short $ -2^15 \sim 2^15 - 1 $ 0
char 16 2 Character \u0000 ~ \uffff (0 ~ 65535) u0000
int 32 4 Integer $ -2^31 \sim 2^31 - 1 $ 0
long 64 8 Long $ -2^63 \sim 2^63 - 1 $ 0L
float 32 4 Float $ 1.4e^-45 \sim 3.4e^38 $ 0.0f
double 64 8 Double $ 4.9e^-324 \sim 1.8e^308 $ 0.0D
boolean 1 不确定 Boolean TrueFalse false

[PS]

  • boolean 一般用 1 bit 来存储,但是具体大小并未规定,JVM 在编译期将 boolean 类型转换为 int,此时 1 代表 true,0 代表 false。此外,JVM 还指出boolean 数组,但底层是通过 byte 数组来实现。

  • 使用 long 类型时,需要在后边加上 L/l,否则将其作为整型解析,可能会导致越界。

  • 浮点数如果没有明确指定 float 还是 double,统一按 double 处理。

  • char 是用 单引号 '' 将内容括起来,只能存放一个字符,相当于一个整型值(ASCII 值),能够参加表达式运算;而 String 是用 双引号 "" 将内容括起来,代表的是一个地址值。

  • Java 在内存中是采用 Unicode 表示,所以无论是一个中文字符还是英文字符,都能用 char 来表示。

如何给一个基本类型变量赋值:

 在 Java 中,基本数据类型属于 Java 的一种内置的特殊数据类型,不属于任何类,所以可以直接对其进行赋值;给基本类型的变量赋值的方式就叫做 字面值;

float score = 89.0f;
int age = 26;

引用数据类型

Java 中常见的数据类型如下表

数据类型 默认值
数组 null
null
接口 null

而对于引用数据类型,常用 new 关键字来进行赋值,但是引用类型中的接口是不能被实例化的,我们需要对其进行实现。

// 初始化一个对象 dog
Pet dog = new Pet();
// 初始化一个数组
int[] array = new int[10];

String

 对于引用数据类型中的 String,需要特别关注。

 String 不同于 char,它属于引用类型,而 char 属于基本数据类型。用双引号 "" 括起来表示字符串,一个字符串能够保存 0 个到任意个字符,它一旦创建就不能被改变。

 而针对字符串,如果要打印一些特殊的字符,比如字符串本来就包含 ",这个时候就需要借助于转义字符 \,最常见的转义字符主要有:

转义字符 含义
\" 字符:"
\' 字符:'
\\ 字符:**
\n 换行符
\t' 制表符:Tab
\r' 回车符
  • 连接多个字符串或者其它数据类型

Java 编译器中,对于字符串和其他数据类型之间,可以使用 + 进行连接,编译器会自动将其他数据类型自动转换为字符串,然后再进行连接;

  • String 的应用

    • 由于 String 的 hash 值被频繁使用,它的不可变性使得 hash 值也不可变,此时只需要进行一次计算;
  • 字符串常量池(String Pool)的需要

    • 如果一个 String 对象已经被创建过,那么就会优先从字符串常量池中获取其引用,其不可变性确保了不同引用指向同一 String 对象;
  • 安全性

    • 我们经常用 String 作为我们方法的参数,其不变性能够保证参数不可变;
  • 线程安全

    • String 的不可变性让它天生 具备线程安全,能够在多个线程中方便使用而不用考虑线程安全问题

数据类型转换