3.1.Java中的基本数据类型有几种,如何表示,取值范围以及注意事项?
数据类型—为了定义变量,限定变量的存储空间的大小。
Java中的数据类型
1. 基本数据类型【原生数据类型】
2. 复合数据类型【引用数据类型】
Java中的基本数据类型有几种
4大类8种
1.整数类型(4)
1.字节型 byte
2.短整型 short
3. 整型 int
4. 长整型 long
2. 浮点类型(2)
1.单精度浮点型 float
2.双精度浮点型 double
3. 字符类型(1)
1.字符型 char
4. 布尔类型(1)
1. 布尔型 boolean
数据类型—为了定义变量,限定变量的存储空间的大小。
变量的组成
3. 数据类型2. 名称3. 初始值4. 作用域
创建java变量
1.先定义,后赋值。定义格式:数据类型 名称;例如: int num; 赋值[=]格式: 名称=数据值; 例如: num=123;
2.定义+赋值 定义+赋值格式: 数据类型 名称 = 数据值; 例如: int num = 123;
超出数据类型的取值范围就会报错问题
1.字节型 byte (1个字节8位) 取值范围:-2的7次方~2的7次方-1
//1.先定义,后赋值。
byte bytenum1;
bytenum1 = 100;
System.out.println("bytenum1=="+bytenum1);
//2.定义+赋值
byte bytenum2=127;
System.out.println("bytenum2=="+bytenum2);
//当我们赋值给字节型变量的具体数据值超过字节型取值访问时就会报错
2.短整型 short (2个字节16位) 取值范围: -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个字节32位) 取值范围: -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个字节64位)取值范围: -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);
}
}
5.单精度浮点型 float (4个字节 8位的有效数字)
(1) 赋值的时候需要添加“F”、“f”作为后缀 否则默认是double
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”作为后缀
6.双精度浮点型 double (8个字节 16位的有效数字)
注意:(1)在赋值的时候可以添加“D”/“d”作为后缀,也可以省略
(2)出现了没有变量保存的小数数据值时,默认就是double
//双精度浮点型 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
}
}
7.字符型 char (2个字节 0–65535)
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");
}
}
5.Java中基本数据类型之间的转换以及注意事项
1.boolean类型是不参与基本数据类型主键的转换。
2.基本数据类型的精度排序【由低到高顺序】
byte short char int long float double
3.隐式数据类型转换【自动数据类型转换】
内容:将数据类型精度低的转换成数据类型精度高的
方法: 直接赋予具体的数据值,也可以将变量赋值。
例如:int—>double
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.显式数据类型转换【强制数据类型转换】
需要修改程序
格式:低精度数据类型 变量名称 = (精度低数据类型)精度高的数据值【变量】;
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);
}
}
5char与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);
}
}