一.字面常量
常量即在程序运行期间不变的的量。
字面常量的分类:
1.字符串常量:“内容”,双引号里的内容;
2.整形常量:100,像这样的;
3.浮点数常量:1.23,直接写的浮点数;
4.字符常量:’a‘,由单括号扩起的内容;
5.布尔常量:只有true和false这两种;
6.空常量:null。
这些字面常量都很好理解,其实我们仅通过阅读就可以直接判断出来这是什么。
二.数据类型
1.基本数据类型
基本数据类型有四类八种。
1.1 整形
数据类型 | 关键词 | 内存占用 |
字节型 | byte | 1字节 |
短整型 | short | 2字节 |
整形 | int | 4字节 |
长整形 | long | 8字节 |
1.2浮点型
数据类型 | 关键词 | 内存占用 |
单精度浮点数 | float | 4个字节 |
双精度浮点数 | double | 8个字节 |
1.3字符型
数据类型 | 关键词 | 内存占用 |
字符型 | char | 1个字节 |
1.4布尔型
数据类型 | 关键词 | 内存占用 |
布尔型 | boolean | 无明确规定 |
2.注意事项
2.1 不管在多少位的系统上,int和long所占的字节数是不变的;
2.2 整形和浮点型都是有符号的;
2.3 整形默认的是int,浮点型默认的是double;
这就引出一个问题,在给float赋值时要注意,直接写是会报错的,要写成 float a=1.23f 或 float a=1.23F,后面要加一个f。
三.变量
与常量相对,通过数据类型来定义变量。语法格式与c语言相同不过多赘述。
1.包装类型
byte -> Byte short -> Short int -> Integer long -> Long
float -> Float double -> Double
char -> character
boolean -> Boolean
2.类型转换
分为自动的和强制的。
2.1自动类型转换
小范围转到大范围,如把 int 转成 long ,因为int的范围小,就算换成 long 也不会丢失数据,所以可以自动转换。
2.2强制类型转换
需要手动完成,例如long a=233,int b=(int)a,这个就是将 long 强制转化成 int 。
要注意,强制类型转换可能会精度丢失,同时两种毫不相干的类型不能转换,如 int 和 boolean。
3.类型提升
数据类型小的会被提升成数据类型大的。
例如:
byte a=12;
byte b=3;
byte c=a+b;//错误的
int c=a+b;//正确的
解释:计算机会先把a和b提升成 int 型再进行计算。
原因:计算机的CPU通常是按照4个字节为单位从内存中读写数据的,为了硬件实现方便,低于4个字节的类型会先被提升,然后参与计算。
当然上述的例子还可以进行强制转换成应该的类型:
byte c=(byte)a+b;
四.字符串类型
字符串类型属于引用数据类型。
例子:
String str="abc";
1.将int转换成String
int a=24;
//方法一
String str=a+"";
//方法二
String str=String.valueOf(a);
方法一应用字符串可相加的性质来进行转化的。
方法二使用的是String.valueOf()方法进行转换的。
2.将String转换成int
String str="12";
int a=Integer.parseInt(str);