Java SE 知识点:原生数据类型与使用陷阱

JAVA中的数据类型分为两类:

  • 原生数据类型(Primitive Data Type)
  • 引用类型(对象类型)(Reference Type)

JAVA中的原生数据类型共有8种:

  • 整型:使用int表示。(32位)
  • 字节型:使用byte表示,(8位,表示-128~127 之间的 256 个整数)。
  • 短整型:使用 short 表示。(16 位)
  • 长整型:使用 long 表示。(64 位)
  • 单精度浮点型:使用float表示。指的就是小数,也叫做实数,比如1.3。
  • 双精度浮点型:使用double表示。双精度浮点型表示的数据范围比单精度浮点型大。
  • 字符型:使用char表示(char是character的缩写)。所谓字符,就是单个的字符表示,比如字母a,中文张,外面用单引号包围上。比如char a = ‘B’;char b = ‘张’;
  • 布尔类型:使用boolean表示。只有两种可能值,分别为true和false。(布尔是一个人的名字,是他发明了这种类型)

使用陷阱:
1、float与double

float a = 1.2;//这行代码编译器会报错。 

因为java中所有的浮点类型默认情况下都是double类型的。不能将double类型的值赋给float类型的变量。即便该double类型的值处于float类型的范围内也是不可以的。总之,能否成功赋值取决于登号右边的值得类型与等号左边的变量类型是否一致。
那么,如何将double类型的值赋给float类型的变量呢?方法有2种。
(1)强制类型转换,将double类型的值强制转换为float类型。

 float a = (float)1.2;//

(2)利用java语言的特性:

float a =1.2F;//

或者

float a = 1.2f;//

2、变量在使用前必须要赋值:

int a;//变量需要赋值
System.out.println(a);

报错信息如下:

Unresolved compilation problem: 
   The local variable a may not have been initialized

3、变量在赋值前必须要声明类型:

a = 0;//变量没有申明类型
System.out.println(a);

报错信息如下:

Unresolved compilation problems: 
   a cannot be resolved to a variable
   a cannot be resolved to a variable

4、变量只能定义一次:

int a = 0;
int a = 1;//重复定义
System.out.println(a);

报错信息如下:

Unresolved compilation problem: 
   Duplicate local variable a

_ 5、可以将表示范围小的值赋值给表示范围大的变量,不能将表示范围大的值赋值给表示范围小的变量。_

int a = 0;
short b = a;//不能将范围大的值赋值给范围小的变量
System.out.println(b);

报错信息如下

Unresolved compilation problem: 
   Type mismatch: cannot convert from int to short

因为a是int类型,b是short类型,int类型的数据范围比short类型的数据范围大,不能将表示范围大的值赋值给表示范围小的值。如果想让a赋值给b,可以这么做:

int a = 0;
short b = (short)a;//可以使用强制类型转换
System.out.println(b);

而如下代码是正确的:

//这样写是正确的
short c = 0;
int d = c;
System.out.println(d);

因为c是short类型,d是int类型,int类型的数据范围比short类型的数据范围大,可以将表示范围小的值赋值给表示范围大的值。

你可能感兴趣的:(原生数据类型,使用陷阱,Java,SE,知识点)