java基础数据类型

目录

1.java基础数据类型

变量数据类型:

1.java数据类型分为两大类 

1.整形类型

2.浮点型

3字符型

4.布尔型

 代码演示

运行结果

6.转义字符

7.强制转换和自动转换

8.字符码


1.java基础数据类型

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

变量数据类型:

1.java数据类型分为两大类 

 java数据类型分为两大类,基本数据类型和引用数据类型。

基本数据类型有8种,数值型{byte,shot,int,long,float,double,char,boolean}。

引用类型{类,接口,数组}。

1.整形类型

类型占用储存空间范围
byte[字节]1字节

-128~127

short[短整型]2字节-32768(-2^15)~32767(2^15 - 1)
int[整形]4字节-2,147,483,648(-2^31)~2,147,483,647(2^31 - 1)
long[长整形]8字节-9,223,372,036,854,775,808(-2^63)~9,223,372,036,854,775,807(2^63 -1)

2.浮点型

类型占用储存空间范围
float4字节

-3.404E38~3.4043E38

double8字节-1.798E308~1.798E308
  1. 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位。

      2.尾数部分可能丢失,造成精度损失(小数都是近似值)。

3字符型

char类型是一个单一的16Uicode字符,占用两个字节,范围\u0000(十进制为0)~\uffff(64435)。

4.布尔型

boolean数据类型表示一位的信息,占用一个字节,只有两个取值,true和false,char数据类型可以储存任何字符。

 代码演示

 1 public class data_type {
 2     public static void main(String[] args) {
 3         // byte
 4         System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
 5         System.out.println("包装类:java.lang.Byte");
 6         System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
 7         System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
 8         System.out.println();
 9 
10         // short
11         System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
12         System.out.println("包装类:java.lang.Short");
13         System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
14         System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
15         System.out.println();
16 
17         // int
18         System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
19         System.out.println("包装类:java.lang.Integer");
20         System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
21         System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
22         System.out.println();
23 
24         // long
25         System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
26         System.out.println("包装类:java.lang.Long");
27         System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
28         System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
29         System.out.println();
30 
31         // float
32         System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
33         System.out.println("包装类:java.lang.Float");
34         System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
35         System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
36         System.out.println();
37 
38         // double
39         System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
40         System.out.println("包装类:java.lang.Double");
41         System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
42         System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
43         System.out.println();
44 
45         // char
46         System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
47         System.out.println("包装类:java.lang.Character");
48         // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
49         System.out.println("最小值:Character.MIN_VALUE="
50                 + (int) Character.MIN_VALUE);
51         // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
52         System.out.println("最大值:Character.MAX_VALUE="
53                 + (int) Character.MAX_VALUE);
54     }
55 }

运行结果

 

6.转义字符

字符转移码
换行\n
制表符(tab)\t
'\'
"\"
\\\
%\%
?\?

注:转义是转义后面的字符

7.强制转换和自动转换

public class test2 {
    public static void main(String[] args) {
        //在 java 中,char 的本质是一个整数,在默认输出时,是 unicode 码对应的字符
        //要输出对应的数字,可以(int)字符
        char c1 = 97;
        System.out.println(c1); // a
        char c2='鱼';
        System.out.println((int) c2);//40060
        char c3=40060;
        System.out.println(c3);//鱼


        //自动类型转换
        //当Java程序在进行赋值或者运算时,精度小的类型型自动转换为精度大的数据类型,
        // 这个就是自动类型转换
        char a1='a';
        int a=a1;

        //自动类型转换细节
        //细节 1: 有多种类型的数据混合运算时
        //系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
        int n1 = 10; //ok
        //float d1 = n1 + 1.1;//错误 n1 + 1.1 => 结果类型是 double
        //double d1 = n1 + 1.1;//对 n1 + 1.1 => 结果类型是 double
        float d1 = n1 + 1.1F;//对 n1 + 1.1 => 结果类型是 float

        //细节 2: 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,
        //就会报错,反之就会进行自动类型转换。
        //int n2 = 1.1;//错误 double -> int

        //细节 3: (byte, short) 和 char 之间不会相互自动转换
        //当把具体数赋给 byte 时,(1)先判断该数是否在 byte 范围内,如果是就可以
        //byte b1 = 10; //对 , -128-127
        // int n2 = 1; //n2 是 int
        // byte b2 = n2; //错误,原因: 如果是变量赋值,判断类型
        // char c1 = b1; //错误, 原因 byte 不能自动转成 char

        //细节 3: (byte, short) 和 char 之间不会相互自动转换
        //当把具体数赋给 byte 时,(1)先判断该数是否在 byte 范围内,如果是就可以
         byte b1 = 10; //对 , -128-127
        // int n2 = 1; //n2 是 int
        // byte b2 = n2; //错误,原因: 如果是变量赋值,判断类型
        //
        // char c1 = b1; //错误, 原因 byte 不能自动转成 char

        //细节 4: byte,short,char 他们三者可以计算,在计算时首先转换为 int 类型
        byte b2 = 1;
        byte b3 = 2;
        short s1 = 1;
        //short s2 = b2 + s1;//错, b2 + s1 => int
        int s2 = b2 + s1;//对, b2 + s1 => int
        //byte b4 = b2 + b3; //错误: b2 + b3 => int


        //boolean 不参与转换
        boolean pass = true;
        //int num100 = pass;
        // boolean 不参与类型的自动转换


        //强制类型转换
        //自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成
        //精度降低或溢出,格外要注意
        int i=(int) 1.9;
        System.out.println(i);//1
        int j=100;

        //1.当进行数据大小从大-->小,就需要使用到强制转换
        //2.强制符号只针对最近的操作数有效,往往会使用小括号提升优先级
        int y=(int) (10*3.5+1.7);
        System.out.println(y);//36
        //3.char类型可以保存int的常量值,但不能保存int的变量值,需要强转
        char f1=100;
        int m=100;
        //char f2=m;//错误
        char f2=(char) m;
        System.out.println(f2);
        //4.byte和shor,char类型在进行运算时,当做int类型处理
    }
}

8.字符码

这里我推荐一个我一直自学的教程,老师讲的特别详细https://www.bilibili.com/video/BV1fh411y7R8?p=1&vd_source=738ddc837bead4e02347a495b1b0c281

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值