Java数据类型
Java数据类型概述
其中,引用类型是在堆中的,而基本类型是在栈中的
1.Java的基本数据类型
类型名称 | 类型定义 | 取值范围 |
---|---|---|
byte | 8位有符号整数 | -128 ~ 127 |
short | 16位有符号整数 | -32768 ~ 32767 |
char | 16位Unicode字符 | 0 ~ 65535 |
int | 32位有符号整数 | -2147483648(-231)~ 2147483647(231-1) |
long | 64位有符号整数 | -2^63~ (2^63-1) |
float | 32位浮点数 | 1.4E-45 ~ 3.4028235E38 |
double | 64位浮点数 | 4.9E-324 ~ 1.7976931348623157E308 |
boolean | 布尔值 | true / false |
整形字面量默认是int型、浮点型字面量默认的是double型
基本数据类型的转换
(1)boolean不可以转换为其他的数据类型;
(2)整数型,浮点类型,字符型是可以相互转换的,转换时遵守下面的原则:
a) 容量小的类型自动转换为大的类型,数据类型按容量大小排序为:
b) byte, short, char 三种类型间不会相互转换,而是转换为int类型;
c) 容量大的类型在转换为小的类型时,必须加上强制转换符(谨慎操作);
d) 有多种数据类型混合计算时,系统首先转换为容量最大的那个类型再计算;
(3)在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的。
2.java的引用数据类型
一、类Class的引用
类是我们可以创建的,类的定义:
class 类名{定义成员 (包括成员变量/常量、成员方法等)}
注:
- 关键词class指明创建的新类型属于class引用型
- 只能通过引用名来操作对象,不能通过属性值
- 类成员可以缺省,就是空类
- 成员变量可以递归定义
二、接口interface引用
接口也是我们可以创建的,接口的定义:
[修饰符] interface 接口名 [extends 父类接口列表]{
[public] [static] [final] 类型 成员常量 = 常量值;
[public] [abstract] 返回类型 成员方法名([参数列表]);
}
接口和类在语法上是相似的:但是也有很多差别;
三、数组引用
数组:存储在一个连续的内存块中的相同数据类型(引用数据类型)的元素集合。
数组的声明
第一种方式:类型[] 数组名; 如 int[] nums;
第二种方式:类型数组名[]; 如 int nums[];
推荐使用第一种方式,将int 和 nums分开,表明其是一个数组类型
数组的初始化
Java中数组必先初始化后才能使用.初始化就是给数组元素分配内存,并为每个元素赋初始值。
初始化数组的两种方式:
- 静态初始化:
语法格式:类型[] 数组名 = new 数组类型[]{元素1,元素2,元素3,...元素n};
简化语法:类型[] 数组名 = {元素1,元素2,元素3...元素n};
- 动态初始化:
如果我们事先不知道数组里存储哪些数据,只知道需要存储数据的个数,此时可以使用动态初始化方式。
动态初始化:初始化时由我们指定数组的长度,系统自动为数组元素分配初始值。
格式:类型[] 数组名 = new 数组类型[数组长度];
注:无论哪种方式初始化数组,一旦初始化,数组的长度就固定了,不能改变,除非重新初始化。