数据分类
基本数据类型(4类8种)
整数类型(关于整数)
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128 ~ 127 |
短整型 | short | 2个字节 | -32768 ~ 32767 |
整形 | int (默认) | 4个字节 | -2147483648 ~ 2147483647 |
长整型 | long | 8个字节 | -2,147,483,648 ~ 2,147,483,647 |
浮点类型(关于有小数的整数)
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
单精度浮点数 | float | 4个字节 | 1.4013E-45 ~ 3.4028E+38 |
双精度浮点数 | double (默认) | 8个字节 | 4.9E-324 ~ 1.7977E+308 |
字符类型(关于符号)
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字符型 | char | 2个字节 | 0 ~ 65535 |
布尔类型(关于true和false)
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
布尔类型 | boolean | 1个字节 | true ~ false |
引用数据类型(往后的篇章中用)
数据类型 | 关键字 | |||
---|---|---|---|---|
类 | class | |||
数组 | array | |||
接口 | interface | |||
数据类型的使用
class test {
public static void main(String[] args){
//整数类型
System.out.println(4738);//打印 4738,默认是:int
System.out.println(4738L);//打印long类型的 4738
//注意!如果想要打印long类型的数值,就要在数值的后面加上大写的 L
//浮点类型
System.out.println(3.1415926);//打印 3.1415926,默认是:double
System.out.println(3.1415926F);//打印float类型的 3.1415926
//注意!如果想要打印float类型的数值, 就要在数值的后面加上大写的 F
//字符类型
System.out.println('A');//注意!字符类型是一对单引号(''),并且在单引号内只能填写唯一一个字符
//类似字符型的有【字符串】
System.out.println("Adjskljf");
//注意!【字符串是引用类型不是基本类型】,而字符串是双引号(""),在字符串内可以填写多个数值
//比如:System.out.println("我爱Java");等等...
//布尔类型
System.out.println(true);//打印 true, boolean类型
System.out.println(fasle);//打印 false, boolean类型
}
}
常量
什么是常量?
java中常量是代码中不会变的数据,一直保持着不变的数据。
比如:在数据分类里有“ 数据类型的使用 ”那些都是常量,且在程序里没改变他们的数值。
常量打印
class test{
public static void main(String[] args){
//常量的打印
//整数
System.out.println(2);//输出语句:System.out.println();,打印2,默认是:int
System.out.println("HelloJava");//打印 HelloJava,类型是:字符串
}
}
练习题
-
打印 两个整数型,两个浮点型, 一个字符串,一个字符类型,并且编译运行。
变量
什么是变量?
Java中变量就是在程序运行中,数值可以发生改变的数值叫做:“ 变量 ”。
变量的创建方式
方式一:
数据类型(也称:变量类型) 变量名称;
变量名称 = 数值;
= 是什么意思?
= 在java中代表着“ 赋值 ”。
什么是赋值?
赋值是把右边的数值放到左边的变量名称里面。
相信大多数的朋友都知道 我的世界 吧,在游戏中可以让武器附魔,你们可以把武器想象成变量名,然后把附魔的属性想象成数值,把属性赋值到武器上面,也就是等于变量名有了数值(变量名 = 数值)。
方式二:
变量类型 变量名称 = 数值;
方式三:(非常(不推荐(一般不(这么(写)))))
变量类型 变量名称1,变量名称2,变量名称3...
变量名称1 = 数值;
变量名称2 = 数值;
变量名称3 = 数值;
演示
class test {
public static void main(String[] args){
//方式一
//变量类型 变量名称;
int num;
//变量名称 = 数值;
num = 10;
//方式二
//变量类型 变量名称 = 数值;
int num1 = 11;
//字符串
String str = "java";
//注意!String不是关键字
/*
方式三:
变量类型 变量名称1,变量名称2,变量名称3...;
变量名称1 = 数值;
变量名称2 = 数值;
变量名称3 = 数值;
*/
int a, b, c;
a = 1;
b = 2;
c = 3;
}
}
注意事项
-
可以创建多个变量,但是不能有多个变量名。
-
创建float和long类型变量是不要忘了后缀F和L。
-
没有赋值的变量就不能用。
-
使用byte和short的数据类型的时候要注意取值范围。
练习题
-
创建 每一个类型的变量,并且每个变量都输出两遍,第一遍用方式一,第二遍用方式二。
-
分别为如下值,找到合适的类型来定义 3.14 2.769343 365 12 '吃' false "不可描述"
-
定义如下变量,然后为每种不同类型的变量赋予合法的字面值 byte b; short s; int i; long l; float f; double d; char c; String str;
数据类型转换
什么是数据类型转换?
数据类型转换就是 小变大,容量小的类型变成大的类型,还可以容量大的类型变成容量小的类型,但是这有风险。
自动类型转换(隐式)
转换的格式
范围大的类型 变量名称 = 范围小的变量值;
自动类型转换的规则:double --> float --> long --> int --> char/short/byte。
注意!
byte/short/char不能互相转换,他们只能转换成为int或者跟高的类型。
boolean类型不能发生转换。
class test{
public static void main(String[] args){
//int转换为long
long num = 1;
//int转换为float
float num2 = 1;
//float转换为double
double num3 = 3.14F;
}
}
强制类型转换
转换的格式
范围小的类型 变量名称 = (范围小的类型)范围大的变量值;
class test{
public static void main(String[] args){
//long转换为int
int num =(int) 1L;
//float转换为int
int num2 =(int) 1.2F;
//double转换为float
float num3 =(float) 3.14;
}
}
强制类型转换的风险
-
如果赋值一个数值比范围小的类型的范围还大则数据溢出。
什么是数据溢出?
假如你有一个杯子他能装2L水,你另一个杯子能装2.5L水,当你把能装2.5L的杯子里的水装到能装2L的杯子里,哪还有500ml会溢出来,这就叫做数据溢出。
-
对于浮点数类型来说还有可能发生精度损失。
什么是精度损失?
假如double的值是3.9,但是发生了精度损失,则double的值会变成3.0,这就叫做精度损失。
练习题
-
自动转换所有类型,除了char(double --> float --> long --> int -->short/byte)。
-
强制转换所有类型,除了char(byte/short --> int --> long --> float --> double)。