数据类型——为了定义变量,限定变量的存储空间大小。
Java中的数据类型
Java中的基本数据类型有4类8种
整数类型(4)
1.字节型 byte 1个字节 -2的7次方~2的7次方-1
2. 短整型 short 2个字节 -2的15次方~2的15次方-1
3. 整型 int 4个字节 -2的31次方~2的31次方-1
4. 长整型 long 8个字节 -2的63次方~2的63次方-1
浮点类型(2)
1. 单精度浮点型 float 4个字节 8位的有效数字
2. 双精度浮点型 double 8个字节 16位的有效数字
字符类型(1)
1.字符型 char 2个字节 0~65535
布尔类型(1)
1.布尔型 boolean 1个字节 true/false
数据内存存储空间的计算
1个字节8位2进制,因此计算数据类型的存储空间的取值范围。
首先,第一位代表正负。0属于正数范围。
计算过程:负数是 -(2的字节位数-1的次方)
正数是2的字节位数-1的次方-1
数据类型——为了定义变量,限定变量的存储空间大小
变量的组成
数据类型
名称
初始值
作用域
创建Java变量
1 . 先定义,后赋值。
定义格式:数据类型 名称;
例如: int num;
赋值[=]格式: 名称=数据值;
例如: num=123;
2 . 定义+赋值
定义+赋值格式: 数据类型 名称 = 数据值;
例如: int num = 123;
例如:整型
public class ZhengShuType{
public static void main(String args[]){
//字节型 byte 1个字节8位2进制 -2的7次方~2的7次方-1
//1.先定义,后赋值。
byte bytenum1;
bytenum1 = 100;
System.out.println("bytenum1=="+bytenum1);
//2.定义+赋值
byte bytenum2=127;
System.out.println("bytenum2=="+bytenum2);
//当我们赋值给字节型变量的具体数据值超过字节型取值访问时就会报错
//短整型 short 2个字节 -2的15次方~2的15次方-1
//1.先定义,后赋值。
short shortnum1;
shortnum1 = 200;
System.out.println("shortnum1=="+shortnum1);
//2.定义+赋值
short shortnum2=2000;
System.out.println("shortnum2=="+shortnum2);
//当我们赋值给短整型变量的具体数据值超过短整型取值访问时就会报错
//3.整型 int 4个字节 -2的31次方~2的31次方-1
//1.先定义,后赋值。
int intnum1;
intnum1 = 20000;
System.out.println("intnum1=="+intnum1);
//2.定义+赋值
int intnum2=2000000000;
System.out.println("intnum2=="+intnum2);
//当我们赋值给整型变量的具体数据值超过整型取值访问时就会报错
//4.长整型 long 8个字节 -2的63次方~2的63次方-1
//1.先定义,后赋值。
long longnum1;
longnum1= 30000;
System.out.println("longnum1=="+longnum1);
//2.定义+赋值
long longnum2=3000000000000000000L;
System.out.println("longnum2=="+longnum2);
//当我们赋值给长整型变量的具体数据值超过长整型取值访问时就会报错
//我们在给长整型变量赋值的时候,要给数据值添加“L”、“l”作为后缀
//在程序中出现了没有变量保存的整数数据值时,程序就认为这个数据值就是int
int num1=123;
int num2=num1+200;
System.out.println("num2=="+num2);
}
}
例如:浮点型
public class XiaoShuType{
public static void main(String args[]){
//单精度浮点型 float 4个字节 8位的有效数字
//1.先定义,后赋值。
float floatnum1;
//floatnum1 = 100;
floatnum1 = 100.199F;
System.out.println("floatnum1=="+floatnum1);
//2.定义+赋值
float floatnum2=100.199f;
System.out.println("floatnum2=="+floatnum2);
//单精度浮点型数据在赋值的时候需要添加“F”、“f”作为后缀
//双精度浮点型 double 8个字节 16位的有效数字
//1.先定义,后赋值。
double doublenum1;
//doublenum1 = 200;
doublenum1= 200.199;
System.out.println("doublenum1=="+doublenum1);
//2.定义+赋值
double doublenum2=200.199D;
System.out.println("doublenum2=="+doublenum2);
//双精度浮点型数据在赋值的时候可以添加“D”/“d”作为后缀,也可以省略
//在程序中出现了没有变量保存的小数数据值时,程序就认为这个数据值就是double
}
}
例如:字符型
public class CharType{
public static void main(String args[]){
//字符型 char 2个字节 0--65535
//单个字符 A
//字符型数据在赋值的时候需要单引号包围
//字符型是可以保存汉字
char charvalue='好';
System.out.println("charvalue=="+charvalue);
//转义字符
// 斜杠 \ 转义 \\
System.out.println("f:\\test\\my.txt");
// 双引号 " 转义 \"
// 单引号 ' 转义 \'
System.out.println("张三说:\"你好\"");
// 制表符 【Tab键】 转义 \t
System.out.println("hello\tworld");
// 换行 转义 \n
System.out.println("hello\nworld");
}
}
1.boolean类型是不参与基本数据类型之间的转换。
2.基本数据类型的精度排序【由低到高顺序】
byte ——> short ——> char ——> int ——> long ——> float ——> double
3.将数据类型精度低的转换成数据类型精度高的----隐式数据类型转换【自动数据类型转换】
隐式数据类型转换【自动数据类型转换】不需要修改程序,直接赋值即可完成。
可以直接赋予具体的数据值,也可以将变量赋值。
例如:int—>doubole [隐式数据类型转换【自动数据类型转换】]
public class DataTypeSwitch1{
public static void main(String args[]){
//int--->doubole [隐式数据类型转换【自动数据类型转换】]
//直接赋予具体的数据值
double doublevalue = 100;
System.out.println("doublevalue=="+doublevalue);
//可以将变量赋值
int intnum=300;
double doublevalue2=intnum;
System.out.println("doublevalue2=="+doublevalue2);
}
}
4.将数据类型精度高的转换成数据类型精度低的–显式数据类型转换【强制数据类型转换】
显式数据类型转换【强制数据类型转换】需要修改程序。
格式:低精度数据类型 变量名称 = (精度低数据类型)精度高的数据值【变量】;
例如:double—>int[隐式数据类型转换【自动数据类型转换】]
public class DataTypeSwitch2{
public static void main(String args[]){
//double--->int[显式数据类型转换【强制数据类型转换】]
//格式:低精度数据类型 变量名称 = (精度低数据类型)精度高的数据值【变量】;
//将小数转换成整数不会“四舍五入”,而是直接舍弃小数部分
int intnum1=(int)12.8;
System.out.println("intnum1=="+intnum1);
double doublevalue=12.8d;
int value=(int)doublevalue;
System.out.println("value="+value);
}
}
5.char与int的转换
char的取值范围就是整数
1. char---->int [[隐式数据类型转换【自动数据类型转换】]]
2. int---->char[[显式数据类型转换【强制数据类型转换】]]
例如:
public class CharAndInt{
public static void main(String args[]){
//char的取值范围就是整数
//1.char---->int [[隐式数据类型转换【自动数据类型转换】]]
char chatvalue1='好';
int intvalue1=chatvalue1; //隐式数据类型转换
System.out.println("intvalue1="+intvalue1);//intvalue1=22909
//2.int---->char[[显式数据类型转换【强制数据类型转换】]]
int intvalue2=22909;
char charvalue2=(char)intvalue2;//显式数据类型转换
System.out.println("charvalue2="+charvalue2);
}
}
6.int转换成byte
当整数超过取值范围以后,会从最小值向前推进计算。
数轴会变成闭环进行循环推进
public class IntToByte{
public static void main(String args[]){
byte bytevalue=(byte)300;
System.out.println("bytevalue="+bytevalue);
//byte bytevalue1=127;
//byte bytevalue2=(byte)(bytevalue1+1);
//System.out.println("bytevalue2="+bytevalue2);
}
}