Java学习系列文章第一篇:基本变量类型

Java有着丰富的变量类型,有8种基本数据类型,以及他们对应的包装类型,还有数组集合等众多变量类型。相比之下PHP的数据类型就相对少多了,PHP只有布尔类型(Boolean)、整型(Integer)、浮点型(Float)、数组(Array)、字符串(String)、对象(Object)、资源类型(Resource)和NULL。本文我们先以基本数据类型为主,其他的类型为辅。

type identifier [ = value][, identifier [= value] ...] ;
格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。

下面我就简单的举几个变量声明的例子:

byte a,b,c;
short e = g = 10;
int f = 1000;
boolean h = false;
char i = 'a';

Java的两大数据类型:

  1. 内置数据类型
  2. 引用数据类型

内置数据类型

Java语言提供了八种基本数据类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种是布尔型。Java中的数字类型都是无符号(unsigned)的,不像C语言和C++那样还提供有符号的类型。在后续的MySQL学习中,你会发现MySQL中字段的类型里面会有无符号这个属性,这样就会出现MySQL的字段映射成Java变量时,会有取值范围不同的问题。

byte

  • byte 占用一个字节的内存;
  • 最小值是-128(-2^7), 最大值是127(2^7-1);
  • 默认值是0,对应的包装类型是Byte,包装类型的默认值是null;
  • 例子:byte a = 10;

short

  • short 占用两个字节的内存;
  • 最小值是-32768(-2^15), 最大值是32767(2^15-1)
  • 默认值是0,对应的包装类型是Short,默认值是null;
  • 例子:short a = 1200;

char

  • char 占用两个字节的内存,采用 Unicode 编码;
  • 最小值是 u0000(即为0);
  • 最大值是 uffff(即为65,535);
  • char 可以储存任何字符(部分生僻的中文字符可能不行);
  • 例子:char letter = 'A';。

int

  • int 占用四个字节的内存;
  • 最小值是-2,147,483,648(-2^31), 最大值是2,147,483,6478(2^31-1)
  • 默认值是0,对应的包装类型是 Integer,默认值是null;
  • 一般的整型变量默认为 int 类型
  • 例子:int a = -10020;

long

  • long 占用八个字节的内存;
  • 最小值是 -9,223,372,036,854,775,808(-2^63),最大值是 9,223,372,036,854,775,807(2^63-1),这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L,对应的包装类型是 Long,默认值是null;
  • 例子:long a = 100000L,Long b = -200000L。
    "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

float

  • float 占用四个字节的内存;
  • 默认值是 0.0f;浮点数不能用来表示精确的值,如货币,存储货币推荐使用 BigDecimal;对应的包装类型是Float,默认值是null;
  • 例子:float f1 = 234.58f;

double

  • double 占用八个字节的内存;
  • 默认值是 0.0d;double不能用来表示精确的值,如货币,存储货币推荐使用BigDecimal;对应的包装类型是Double,默认值是null;
  • 例子:double d1 = 234.05d;double d2 = 467.90;
    注意:不带任何标志的浮点型数据,系统默认是double类型。

boolean

  • boolean(JVM规范没有明确规定其所占的空间大小;
  • 只有两个取值,true和false;
  • 默认值false,对应的包装类型是Boolean,默认值是null;
  • 例子: boolean b = false;

void

  • 对应包装类型Void,不常用

byte、int、long和short还可以使用16进制和8进制的方式标识,默认都是使用10进制。

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

自动类型转换

整型和字符型数据可以混合运算,不同的类型的数据先转化成同一类型,然后进行计算。

低--------------------------------->高

byte->short,char—> int —>float —> long—> double

数据类型转换必须满足下面的规则:

  • 不能对boolean类型进行类型转换
  • 不能把对象类型转换成不相干类的对象
  • 把类型范围大的转换成类型范围小的时候必须使用强制类型转换
  • 强制转换的过程中会出现溢出或损失精度

引用类型

  • 在Java中引用类型变量指向一个对象,这种变量在定义的时候,被声明成特定的类型,比如 Man、Student等。变量类型一但确定之后类型就不能改变。这一点和动态脚本语言PHP有着很大的不同,PHP中的变量定义后仍能保存其他类型的变量;
  • 所用引用类型的默认值都是null;

写于:2018-06-06 14:56

修改:2018-06-06 22:56

相关文章

此处评论已关闭