JAVA 数据类型

本页面更新日期: 2016年06月06日

前言

JAVA语言是强类型语言, 这有两方面含义:

  • 所有变量必需先声明再使用.
  • 指定类型的变量只能接受 类型与之匹配 的值.

这意味着每个变量和表达式都有一个在编译时就确定的类型.
类型限制了一个变量能被 赋予的值.
限制了一个表达式可以 产生的值.
限制了在这些值上可以进行的 操作.

强类型语言可以在编译时进行 严格的语法检查. 从而减少编程时的错误.

声明变量的语法如下, 制定 变量的类型变量名 即可创造一个变量.

type varName = 初始值;
  • type 类型
  • varName 变量名
  • 初始值: 给变量赋值

什么是变量? 变量有什么用?
编程的本质, 就是对 内存中的数据 访问和修改.
程序所用的数据都会保存在 内存中.
程序员需要一种机制来 访问或修改 内存中的数据.
这种机制就是 变量.
每个变量都代表了某一小块内存, 而且变量是有名字的.
程序对变量赋值, 实际上就是把 数据装入该变量所代表的内存区的 过程.
程序读取变量的值, 实际上就是从该变量所代表的内存区 取值的过程.
形象一点的化, 变量相当于一个有名字的容器, 该容器用于装各种不同类型的数据.

延伸: 我们玩电脑游戏时, 用的修改器或者外挂, 其实就是对内存数据的 读取和修改.

JAVA对变量类型的支持有:

  • 基本数据类型
    • boolean(布尔值: true 或 flase)类型, 它只有这两个值.
    • 数值类型
      • 整数类型
        • byte
        • short
        • int
        • long
      • 字符类型
        • char (取值范围: 0-65535) (2个字节)
      • 浮点类型
        • float (4个字节)
        • double (8个字节)
        • 它们俩都是用于表示小数的, 但是小数位精度不同, 后面你会知道.
  • 引用数据类型
    • 接口
    • 数组

关于字节, 点我查看
字节简单来说, 是计算机信息技术用于计量存储容量的一种计量单位.

基本数据类型 – 数值类型 – 整型

整型, 指以下 4 种类型.

  • byte (取值范围: -128 ~127) (1个字节)
  • short (取值范围: -32768 ~ 32767) (2个字节)
  • int (取值范围: -2147483648 ~ 2147483647 ) (4个字节)
  • long (取值范围: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807) (8个字节)

int 是最常用的整数类型, 因此在通常情况下, 直接给出一个整数值默认就会是int 类型.
当然还有特殊情况.

  • 如果直接将一个 较小的 整数值(在 byte 和 short 取值范围内), 系统会自动把这个数值当成 byte 或 short 类型来处理.
  • 如果是一个 巨大的 数值, (超出了 int 的取值范围), JAVA不会自动把这个整数值当成 long 类型来处理. 如果希望系统把这个值当成 long 类型来处理, 你需要在这个整数值后面加个 L .

例如下面 定义一个叫 bigValue 的 long 类型变量:

long bigValue = 9223372036854775807L;

如果数值这么大, 虽然你前面说明了 bigValue的类型是 long类型, 但你后面还得加上 L 才行.你不加 L 是会报错的.

在 JAVA 中你可以以 4种 方式来表示 整数值.
十进制, 二进制, 八进制 和 十六进制.
我们生活中用的是 十进制. 逢十进一 对吧? 其它你可以百度自行了解. 不过一般用不着.
其中:

  • 二进制的整数以 0b 或 0B 开头 (例如 int binValue = 0b11010100; )
  • 八进制的整数以 0 开头 (例如 int octalValue = 013; )
  • 十六进制的整数以 0x 或 0X 开头, 十六进制的 10 ~ 15 用 a~f 来表示, 不区分大小写. (例如 int hexValue = 0x13; )

基本数据类型 – 数值类型 – 字符型

字符型用于表示单个字符, 注意: 字符型不是字符串哦! 字符串以后我们会讲到.
字符型的值, 必需使用 单引号 ’ 括起来.
JAVA 语言使用 16位 的 Unicode字符集作为编码方式, Unicode被设计成支持世界上所有语言的字符, 当然包括中文字符.

那么, 什么是字符集?
由于计算机无法保存电影, 音乐, 图片 等等等内容… 计算机只能保存 二进制码.
因此, 电影, 音乐等等 都需要先转换为二进制码, 然后才能保存.
世界上各种语言, 同样以 二进制码的 方式保存在计算机中.

当计算机要保存某个字符时, 例如想保存中文的 “我” 这个字符.
只要将该字符的编码转换为二进制码, 然后保存起来即可.

所谓字符集, 就是所有字符的编号 的总和. 点我了解更多

字符型的值, 有如下三种表示形式:

  • 直接通过单个字符来指定字符型的值,例如 ‘A’ 、’9’ 、’0’ 等等.
  • 通过转义字符表示特殊字符型的值, 例如 ‘\n’ 、’\t’ 等等.
  • 直接使用 Unicode 的值 来表示字符型的值, 格式是 ‘\uXXXX’, 其中 XXXX 代表一个十六进制的整数.

常用的转义字符

转义字符说明Unicode 表示方式
\b退格符\u0008
\n换行符\u000a
\r回车符\u000d
\t制表符\u0009
\”双引号\u0022
\’单引号\u0027
\\反斜线\u005c

让我示范一下 字符型(char) 变量的用法. 要自己动手写哦, 新建一个源文件写.

public class CharTest
{
  public static void main(String[] args)
  {
    //直接指定单个字符作为 字符的值
    char aChar = 'a';
    System.out.println(aChar);

    //使用转义字符来作为 字符的值
    char enterChar = '\r';
    System.out.println(enterChar);

    //使用Unicode编码的值 来指定 字符的值
    char ch = '\u9999';
    System.out.println(ch);
  }
}

之后你先编译, 再运行, 看看效果呦~ 其中 \r 的意义是 回车符, 所以你可能看不到有什么东西在里面, 但有句话说的好, 不管你见与不见, 它就在那里.

延伸: JAVA没有提供表示 字符串 基本数据类型, (悄悄告诉你, 字符串属于引用类型)
而是通过 String类(以后会讲到) 来表示字符串, 由于字符串 是由 多个字符 组合而成, 因此字符串要使用 双引号 ” 括起来. 例如下面代码:

//下面定义了一个 名为 s 的 String 类型变量, 它是一个字符串实例的引用, 所以它是一个引用类型的变量.
String s = "曾经沧海难为水";

注意: char类型使用单引号 ’ 而字符串类型使用双引号 ” , 写错的话, 编译器会来大姨妈的.

基本数据类型 – 数值类型 – 浮点型

我一开始看到浮点型的时候, 让我不禁联想到了 套套 -,- 可惜此浮点非彼浮点.
JAVA浮点类型有两种:

  • float
  • double

float 类型代表 单精度浮点数. 占4字节, 32位.
double 类型代表 双精度浮点数. 占8字节, 64位.
抛开字节和占位,单从数字上来看,就能得知 double 比 float 可以保存更多的小数位.

JAVA的浮点数类型 默认是 double 类型
如果你希望JAVA把一个浮点数类型的值 当成float 类型处理, 就需要在这个值的后面加个 F
例如, 5.12 代表一个 double 类型的值, 占64位的内存空间; 5.12F 表示一个 float 类型的值, 占32位的内存空间.

小技巧: 数值中使用下划线 _ 来分隔

当程序中用到数值位数特别多时, 你数起来很麻烦.
这时你可以在数值中使用下划线, 例如4位加一个 下划线 _
举栗:

int bigNum = 2147_4836_47;
double pi = 3.14_15_92_65_36;

基本数据类型 – 布尔型

布尔型只有一个 boolean 类型, 用于表示逻辑上的 真 或 假.
在JAVA语言中, boolean 类型的值 只能是 true 或 false.

boolean 类型的值 主要用来进行 流程控制.
流程控制以后我们会讲到.
主要有以下几种:

  • if 条件控制语句
  • while 循环控制语句
  • do 循环控制语句
  • for 循环控制语句
  • 三目运算

以上内容后面会有详解, 暂时不提.

结尾

如果你想学习更多JAVA知识, 可以 点我进入目录页

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值