目录
一、字面常量
二、数据类型
三、变量:会变,使用数据类型来定义
1. 整型变量:整型int、长整型long、短整型short、字节型byte
2. 浮点型变量:双精度浮点型double、单精度浮点型float
3. 字符型变量char:Unicode表示字符,一个字符两个字节
4. 布尔型变量boolean:只有true和false两个值
5. 类型转换
6. 类型提升
四、字符串类型:使用String类定义
一、字面常量
所谓字面常量,就是常量,固定不变;
放在“System.out.println( )”的括号中的东西,以后用的不多。
二、数据类型
存在意义:源自于冯·诺依曼结构,对计算机需要输入得到输出,中间需要经过存储器(就是内存),数据类型就决定往内存存储的东西的大小。
四类:整型、浮点型、字符型、布尔型
八种:
数据类型 | 关键字 | 内存占用 | 范围 | 包装类型 |
---|---|---|---|---|
字节型 | byte | 1字节 | -128 ~ 127 | Byte |
短整型 | short | 2字节 | -32768 ~ 32767 | Short |
整型 | int | 4字节 | -2^31 ~ 2^31-1 | Integer |
长整型 | long | 8字节 | -2^63 ~ 2^63-1 | Long |
单精度浮点数 | float | 4字节 | 有,不管 | Float |
双精度浮点数 | double | 8字节 | Double | |
字符型 | char | 2字节 | 0 ~ 65535 | Character |
布尔型 | boolean | 没明确规定 | true和false | Boolean |
注:1. 整型和浮点型不同于C语言,在Java中都是带符号的;
2. 整型默认为int型,浮点型默认为double型;
3. Java中没有所谓C语言的无符号数字,全部都有符号。
三、变量:会变,使用数据类型来定义
语法格式:
java">数据类型 变量名 = 初始值;
java">int a = 10;//定义整型变量a,a是变量的名字,也是标识符,在a中放一个值是10
double d = 3.14;
char c = 'A';
boolean b = true;
a = 100;//变量,会变,即可修改
//单行定义多个同个类型变量
int a1 = 10, a2 = 20, a3 = 30;
1. 整型变量:整型int、长整型long、短整型short、字节型byte
注:长整型变量初始值后加L;注意int范围不能超,会报错
2. 浮点型变量:双精度浮点型double、单精度浮点型float
注: (1)与整型运算区别,eg:int/int=int(1/2 = 0);double/double=double(1.0/2.0 = 0.5);但 “double num = 1.1”时,num*num = 1.2100000000000002
(2)浮点数与整数在内存中存储方式是不同的,导致计算方式不同
(3)double是近似而不精确
(4)float num = 1.0f;
3. 字符型变量char:Unicode表示字符,一个字符两个字节
使用“单引号+单个字母”表示字符字面值,也就是“ char ch = '呵' ”。
4. 布尔型变量boolean:只有true和false两个值
boolean和int不能互相转换,互相运算
5. 类型转换
类似C语言,不相干类型之间不能互相转换。小转大自动转(隐式),大转小强转(显式),大小指数据类型范围。大转小可能丢失精度,也就是二进制位的丢失。
6. 类型提升
类似C语言,不同数据类型进行运算时,小会被提升为大。
int与long,int会提升。而比4字节小的会先提升为int再运算。
四、字符串类型:使用String类定义
java">String s1 = "hello";
String s2 = "world";
System.out.println(s1 + s2);//结果s1和s2将进行拼接
注:字符串与整数在一起使用 + 号 ,在打印中进行的是拼接,不是运算。