数据类型、变量、常量、类型转换、ASCII编码表
1、java数据类型
1.1 基本数据类型
2、什么是常量
常量:是指在Java程序中固定不变的数据。
3、java中常量的分类
3.1 练习(代码:D:\workspace\ConstantDemo)
/*
常量:在程序运行过程中,值不会改变的量。
分类:
1、整数常量:所有的整数 例如:0,1, 567, -9
2、小数常量:所有的小数 例如:0.0, -0.1, 2.55
3、字符常量:单引号引起来,只能写一个字符,必须有内容 例如:'a' , ' ', '好'
4、字符串常量:双引号引起来,可以写多个字符,也可以不写 例如:"A" ,"Hello" ,"你好" ,""
5、布尔常量:只有两个值(流程控制中讲解) 例如:true , false
6、空常量:只有一个值(引用数据类型中讲解) 例如:null
*/
public static void main(String[] args) {
//输出整数常量
System.out.println(123);
//输出小数常量
System.out.println(0.125);
//输出字符常量
System.out.println('A');
//输出布尔常量
System.out.println(true);
//输出字符串常量
System.out.println("你好Java");
//输出空常量(直接会产生编译报错)System.out.println(null);
System.out.println(a());
}
public static String a(){
return null;
}
3、java中变量
变量:在运行过程中,值会改变的量
3.1 变量定义的三要素
数据类型 变量名 = 数据值;
3.2 变量分类
Java语言支持的变量类型有:
1、类变量:独立于方法之外的变量,用 static 修饰。(后面再讲)
2、实例变量:独立于方法之外的变量,不过没有 static 修饰。(后面再讲)
3、局部变量:类的方法中的变量,使用前必须先初始化。
3.3 事例演示
public class Test02 {
//成员变量定义
String aa = "aa";
//类变量定义
static String bb = "bb";
public static void main(String[] args) {
//定义字节型变量
byte b = 100;
System.out.println(b);
//定义短整型变量
short s = 1000;
System.out.println(s);
//定义整型变量
int i = 123456;
System.out.println(i);
//定义长整型变量
long l = 12345678900L;
System.out.println(l);
//定义单精度浮点型变量
float f = 5.5F;
System.out.println(f);
//定义双精度浮点型变量
double d = 8.5;
System.out.println(d);
//定义布尔型变量
boolean bool = false;
System.out.println(bool);
//定义字符型变量
char c = 'A';
System.out.println(c);
}
}
4、为什么要进行类型转换
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
4.1数据类型转换分类
1、自动类型转换
2、强制类型转换
4.2 自动类型转换(代码:D:\workspace\ConversionDemo)
自动类型转换:把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
例如:double a = 10;
int b = 20;
c = a + b;(c的数据类型是什么?)
4.2.1 自动数据类型转换图示
注释:long类型之所以能够转换成为float类型,是因为浮点数在内存中存储的结构不一样,导致float类型的取值范围远大于long类型。
4.2.2 原理图
4.3 强制类型转换(代码:D:\workspace\ConversionDemo)
强制类型转换:把一个表示数据范围大的值或者变量赋值给一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或变量;
例如:
int k = 99.99;//编译报错
int k = (int) 99.99;//编译成功
4.3.1 原理图
4.3.2 强转注意事项
1、浮点转成整数,直接取消小数点,可能造成数据损失精度。
2、int强制转成short,去掉2个字节,可能造成数据丢失(越界)。
5、编码表产生的原因
在计算机的内部都是二进制的0、1数据,编码表让计算机可以直接识别人类文字的问题。
5.1掌握的内容(数值为十进制)
5.2事例演示
//定义一个字符类型变量
char c = 'a';
int i = 1;
//字符类型和int类型计算,输出结果是98
System.out.println(c+i);
Ps:在char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升为了int类型。char类型内存2个字节,int类型内存4个字节。