Java中基本数据类型的拆析 及‘加料

雨霖先森 2022-09-21 16:31:53

基本数据类型的拆析 及‘加料’
一、基本数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在 内存中为每种数据类型分配了不同的内存空间

img

注意事项:

​ 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

...全文
109 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧