51,407
社区成员
发帖
与我相关
我的任务
分享基本数据类型的拆析 及‘加料’
一、基本数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在 内存中为每种数据类型分配了不同的内存空间

注意事项:
1.float类型变量的值必须加上f或F
2.数字字面量:程序中出现的数字
整数数字:默认int类型
小数数字:默认double类型
3.char类型的值必须使用单引号括起来
4.char类型的值只能有一个字符
5.boolean类型的值只能是true或false
true - 对的、真的------1
false- 错的、假的------0
6.一个字节等于8bit(位)
7.二进制中的最高位为符号位,0-正数,1-负数
8.数值型的取值范围:byte<short<int<long<float<double
9.byte类型的取值范围:-128~127
10.int类型的取值范围:-21亿…~21亿…
11.char类的取值范围:0~65535
12.boolean为什么是4个字节?
《Java虚拟机规范》中明确表示在虚拟机底层没有明确的命
令去表示boolean值,使用int的1和0表示true或false
public class 文件名{
/**
知识点:Java的基本数据类型
注意:数据类型是和变量结合着使用
数字字面量:程序中出现的数字
整数数字:默认int类型
小数数字:默认double类型
*/
public static void main (String[] args){
//byte -- 字节型
byte b = 10;
System.out.println(b);//10
b = 20;
System.out.println(b);//20
//short -- 短整型
short s = 30;
System.out.println(s);//30
s = 40;
System.out.println(s);//40
//int - 整型
int i = 50;
System.out.println(i);//50
i = 60;
System.out.println(i);//60
//long - 长整型
long l = 70;
System.out.println(l);//70
l = 80;
System.out.println(l);//80
//float -- 单精度浮点型
float f = 1.11f;
System.out.println(f);//1.11
f = 2.22f;
System.out.println(f);//2.22
//double -- 双精度浮点型
double d =3.33;
System.out.println(d);//3.33
d = 4.44;
System.out.println(d);//4.44
//char - 字符型
char c = 'a';
System.out.println(c);//a
c = '我';
System.out.println(c);//我
//boolean - 布尔类型
boolean bool = true;
System.out.println(bool);//true
bool = false;
System.out.println(bool);//false
}
}
二、基本数据类型的转型
数值类型取值范围:byte<short<int<long<float<double
1.自动转型
含义:取值范围小 转 取值范围大
public class Test04{
public static void main(String[] args){
byte b = 30;
short s = b;
int i = s;
long l = i;
float f = l;
double d = f;
System.out.println(d);
/*直接将byte类型转double
byte b = 10;
double d = b;
System.out.println(d);//10.0
*/
}
}
2.强制转型/强转
含义:取值范围大 转 取值范围小
语法结构:类型 变量名 = (强转的目标类型)要强转的变量;
public class 文件名{
public static void main(String[] args){
double d = 123.123;
float f = (float)d;//将double类型的变量强转成float类型,再将强转后的数据赋值给float类型的变量f
long l = (long)f;
int i = (int)l;
short s = (short)i;
byte b = (byte)s;
System.out.println(b);
//直接将double类型转byte
double d = 123.123;
byte b = (byte)d;
System.out.println(b);
}
}
3.特殊点
1.案例:超出byte类型的取值范围
public class 文件名{
public static void main(String[] args){
byte b1 = 1;//1为int类型的数字字面量,1在byte类型的取值范围里,所以直接赋值
//byte b2 = 128;//128为int类型的数字字面量,128不在byte类型的取值范围里,所以会报错,必须强转
byte b2 = (byte)128;
//128 - int - 4字节(32位):0000,0000,0000,0000,0000,0000,1000,0000
//(byte) - 1字节(8位) :1000,0000
System.out.println(b1);//1
System.out.println(b2);//-128
}
}
2.案例:超出int类型的取值范围
public class 文件名{
public static void main(String[] args){
int i = 12345678901;
System.out.println(i);//报错,12345678901超出了int类型的取值范围
}
}
3.案例: int类型和long类型的区别
public class 文件名{
public static void main(String[] args){
long l1 = 12345678901;//报错:12345678901超出了int类型的取值范围
long l2 = 12345678901L;//12345678901L属于long类型,不会报错
System.out.println(l1);
System.out.println(l2);
}
}
4.案例:float类型的解决方法
public class 文件名{
public static void main(String[] args){
lfloat f1 = 1;//int转float -- 自动转
//float f2 = 1.0;//报错 :double转float -- 强转
//解决方案1:推荐,直接让JVM认为1.0是float类型
float f2 = 1.0f;
//解决方案2:
float f2 = (float)1.0;
System.out.println(f1);
System.out.println(f2);
}
}
5.案例:char类型转化int类型
public class 文件名{
public static void main(String[] args){
char c1 = 'a';
int i= c1 ;
System.out.println(i);//97 -- ASCII
}
}
6.案例:超出ASCII为空白位打印‘?’
public class 文件名{
public static void main(String[] args){
int i = 65533;
System.out.println((char)i);//?
}
}
————————————————
版权声明:本文为CSDN博主「没出息的小胖子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/GL280599ZL/article/details/126968987