1.2 基础变量声明

/* 例1.2-1: 变量声明 */
public class demo01 {
    public static void main(String[] args) {
        // 声明类型 标识符 = 类型量;
        // 声明整数型
        int integers = 1;    // 声明一个int(整数)类型
        long longIntegers = 1L;      // 声明一个long(长整数)类型
        byte bytes = 2;     // 声明一个byte(字节)类型
        short shortIntegers = 15;   // 声明一个short(短整数)类型
        // 声明浮点型
        float floats = 1.0F;        // 声明一个float(单精度浮点)类型
        double doubles = 1.0D;      // 声明一个double(双精度浮点)类型
        // 声明字符
        char character = 'A';   // 声明一个字符类型
        // 声明布尔值
        boolean flags = true;   // 声明一个布尔值
        // 声明字符串
        String str = "1111";    // 声明一个字符串
    }
}

1.2.1 常用类型

基础类型(整数型) 类型量 说明
int 数字 默认整数类型
long 数字L 长整数类型, 可取范围比int类型大, 必须在整数后面加L标记
short 数字 短整数类型, 可取范围比int类型小
byte 数字 字节类型, 可取范围为 [-128~128]
char '单个字符' 字符类型, 本质是Unicode码点渲染, 所以只能存在一个字符
必须包括在半角单引号 ' '
基础类型(浮点型) 类型量 说明
float 小数F 必须在小数后面加F标记
double 小数 / 小数D 默认浮点数类型, 可以在小数后面使用D标记
基础类型(布尔值) 类型量 说明
boolean true / false 判断值
引用类型(字符串) 类型量 说明
String "多个字符" 字符串类型, 用于输入字符串, 必须包括在半角双引号 " "

1.2.2 类型转换

整数型和浮点型之间可以互相转换, 分为强制类型转换和自动类型转换.

1.2.2.1 自动类型转换

byte类型相加会自动转化成int型:

/* 例1.2-2: 类型返回值 */
byte a = 1;
byte b = 2;
byte c = a + b;		// 会报错, 因为 a+b 返回的是int型
int c = a + b; 		// 正确的语法

浮点数与整数型进行计算, 自动转化为浮点型:

/* 例1.2-3: 简单的自动类型转换 */
double a = 10.4;
int b = 2;
double c = a / b;			// 输出double类型变量c
System.out.println(c);		// 输出5.2

自动类型转换

当参与运算中有的值属于高位类型时, 所有值都会被升位运算.

优先级: byte, short < int, char < long < float < double

1.2.2.2 强制类型转换

int类型加减乘除只能输出int类型:

/* 例1.2-4: 整数类型运算返回值 */
int a = 1;
int b = 2;
System.out.println(a/b);
// 会输出0, 而不是0.5, 强制舍去小数位(可以视为自动向下取整)

使用强制类型将int转换为double输出浮点数:

/* 例1.2-5: 混合类型运算返回值 */
int a = 1;
int b = 2;
System.out.println((double)a/b);
// 会输出0.5, 因为a(int)被强制转换成了a(double)

实质:

/* 例1.2-6: 类型转换 */
System.out.println(1/2);			// 例1.2-4的运算实质
System.out.println(1.0/2);		// 例1.2-5的运算实质(同例1.2-3)

也就是说, 如果想要输出浮点类型结果, 就需要参与运算中的其中一个值是浮点值. 当一个值是浮点值时, 其他值也会自动转化为浮点值运算.

强制类型转换语法

转换类型 变量 = (转换类型)变量

/* 例1.2-7: 强制类型转换 */
int a = 1; 
System.out.println(a);					// 输出1
System.out.println((double)a);	// 输出1.0
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。