Java数据类型与语句结构
数据类型转换
数据类型概念
- Java是强类型语言
- 对于每一种数据,都定义了明确的数据类型
- 不同的数据类型,在内存当中分配不同的大空间
数据类型分类
- 基本数据类型
- 数值型
- 整数
- byte
- short
- int
- long
- 小数
- float
- double
- 整数
- 不同的整数类型在内存占用的内存空间大小是不一样的
- 字符型
- char
- 布尔型
- boolean
- 引用数据类型
- 类
- 接口
- 数组
- 数值型
数据类型占用空间大小
常用数据类型
- boolean类型
- 通常用于逻辑运算和程序流程控制(条件选择/循环)
- 该类型的值只能是true或false,表示真或假
- 不可以使用0或非0的证书来代替false和true
- 整数类型
- byte、short、int、long
- 相同点都是存放整数类型的数据,不同点开辟的空间大小不一样
- Java语言的整形常量默认是int型
- 声明long型变量后加上’l’ 或 ‘L’
- 注:因小写的l用以和数字1相混淆,建议使用大写L
- byte、short、int、long
示例:
byte b = 30; //8位
//b = 128;
short c = 32767; // 16位
int d = 324; //32位
long e = 68978L; //64位
//默认是int类型
System. out. println(100) ;
byte b = 30; //8位
//b = 128;
short c = 32767; // 16位
int d = 324; //32位
long e = 68978L; //64位
//默认是int类型
System.out.println(100);
- 小数类型
- float、double
- float表示单精度类型
- double表示双精度类型
- 浮点类型的字面量默认是double类型,若要声明一个常量为float型、则须在常量后加上 f 或 F
- double常量后面的 d 或 D 可省略
示例:
//小数(float double)
double money = 100. 5;
//相同点都是存放小数类型的数据,不同点开辟的空间大小不-样,
//默认情况下,小数是属于double
System. out. println(80. 5) ;
//float money2 = 80. 5;此行错误
float money2 = 80. 5f;
//小数(float double)
double money = 100.5;
//相同点都是存放小数类型的数据,不同点开辟的空间大小不一样,
//默认情况下,小数是属于double
System.out.println(80.5);
//float money2 = 80.5;此行错误
float money2 = 80.5f;
-
字符类型
-
什么是编码
-
计算机只能表示0和1两个数,于是人们做规定使用一个数字去表示一个特定得字符
比如a使用97表示
-
-
char概述
- char字符, 字母和符号
- char类型:表示16位得无符号整数或者Unicode字符
- Unicode手机了世界上所有语言文字中得符号,是一种跨平台得编码方式,Java得字符两个字节,可以表示一个汉字
-
char常量有3种表示形式
- 直接使用单个字符来指定字符常量,格式如’◆’、‘A’,‘7’
- 直接作为十进制整数数值使用,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符
- 和2一样,只不过表示的是16进制的数值,格式如’\uX’,X表示16进制整数;如:97的16进制是61
-
-
ASSCII表
示例:
/**
*字符本质是16位无符号小数
*使用-.个数字去表示-个特定的字符
*字符类型
System. out. println(' a');
//字符型变量
charC=”a’;
C
System. out. println(c);
//编码 01字符类型
char cl = 66; //ASSIC
Sys tem. out. println(c1);
//直接输出的是int类型
System. out. println (65);
/**
*字符本质是16位无符号小数
*使用一个数字去表示一个特定的字符
*字符类型
*/
System.out.println('a');
//字符型变量
char c = 'a';
c = 'b';
System.out.println(c);
//编码 0 1 字符类型
char c1 = 66; //ASSIC
System.out.println(c1);
//直接输出的是int类型
System.out.println(65);
-
基本数据类型转换
-
8个基本数据类型占用空间大小
一个字节等于8位 8个基本数据类型 ------------------------------------------ 整数 byte->8 short->16 int->32 long->64 小数 float->32 double->64 字符 char->16 布尔 boolean -> 8
-
-
数据类型转换概念
- 把一种类型赋值给类外一种类型
- 一种数据类型变化为另外一种数据类型
-
数据类型得转换
- 在运算过程当中,如果不同得数据类型进行运算,可能运行的结果发生错误,把一种数据类型赋值给另一种数据类型
- 所以在运行之前,把类型统一
-
数据类型转换的原则
- boolean不属于数值类型,不参与转换
- 系统可以完成自动类型转型
- 不能(直接)把一个大的数据类型直接赋值给小的数据类型
-
自动类型转换
- 当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量
-
强制类型转换
- 当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符
- 但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。
示例
自动类型提升
- 当一个算术表达式中包含多个基本数据类型(boolean除外)的值时
- 整个算术表达式的数据类型将在数据运算时出现类型自动提升
- 所有的byte、short、char类型被自动提升到int类型
- 整个表达式的最终结果类型被提升到表达式中类型最高的类型