java数据类型

1. 基本数据类型

  • 整数

    • byte

    • short

    • int

    • long

  • 浮点数(小数)

    • float

    • double

  • 布尔类型

    • boolean

  • 字符

    • char

1.1 整数

计算机中所有的内容,在存储的时候都是使用0,1(二进制)存储的。

010101010010100 0100101010010101001010 0010101001010010101010010101001010010101001010

一个0或者一个1,就叫做一位

数据存储的最小单位是8位,8位叫做一个字节(byte)

两个字节叫做一个字符(char)

1024b -- 1kb 1024kb -- 1MB 1024MB-- 1GB 1024GB -- 1TB 1024TB -- 1PB

byte 8位 1个字节 2^7-1 -2^7

short 16位 2个字节 2^15-1 -2^15

int 32位 4个字节 2^31-1 -2^31

long 64位 8个字节 2^63-1 -2^63

二进制和十进制的转化:

二进制:逢二进一

十进制:逢十进一

八进制:逢八进一

十六进制:逢八进一

十进制 345 =   5*10^0+4*10^1+3*10^2 = 345
二进制 0000 0011 =  1*2^0+1*2^1 = 3
二进制 0000 0101 =  1*2^0+1*2^2 = 5
二进制 0001 1011 =  27
0111 1111  = 1*2^0+1*2^1+...+1*2^6=2^7-1=127
​
0111 1111 1111 1111 = 1*2^0+1*2^1+...+1*2^14=2^15-1
​
29 = 0001 1101
100 = 0110 0100
63 = 0011 1111

规定:第一位表示符号位 1:负数 0:正数

byte最大值:0111 1111

short最大值:0111 1111 1111 1111

int 最大值:0111 1111 1111 1111 1111 1111 1111 1111

原码,反码,补码

原码: 正数 : 原码,反码,补码是一样的 负数 : 原码转化为反码,除了符号位不变,其他全部反过来(1-0,0-1) 反码转化为补码,在反码的基础上加1。

package com.qf;
​
public class Demo01 {
​
    public static void main(String[] args) {
        /*
         * 基本类型整数
         *  byte
         *  short
         *  int
         *  long
         */
        
        byte b = -128;
        short s = 30;
        int i = 5000;
        //如果定义long型数据,在值后添加L/l
        long l = 3L;
        
    }
}

1.2 小数类型

float 32位 4个字节 3.4E38

double 64位 8个字节 1.7E308

package com.qf;
​
public class Demo02 {
​
    public static void main(String[] args) {
        
        /*
         * 浮点数(小数)
         *  double  双精度       64位   8个字节
         *  float   单精度       32位   4个字节
         */
        
        double pi = 3.14;
        
        //为float类型的数据赋值,值后需要添加F/f
        float f = 3.14f;
        
        double d1 = 34000000.0;
        
        // 3.4E21    3.4 * 10^21
        double d2 = 3.4E21;
    }
}

1.3 布尔类型

boolean 值只有 true false

package com.qf;
​
public class Demo03 {
​
    public static void main(String[] args) {
        /*
         * 布尔类型:boolean
         *      值只有两种:true/false
         * 
         * 一般用于接收逻辑运算的结果
         */
        
        boolean b1 = true;
        boolean b2 = false;
        
        
        boolean b3 = 2>1;
    }
}

1.4 字符

char本质上就是整数,是2个字节16位的无符号整数

char的取值范围[0-65535]

package com.qf;
​
public class Demo04 {
​
    public static void main(String[] args) {
        /*
         * 字符:char
         * 单个字母     a b c d...z   A B C D ...Z
         * 单个数字     1 2 3 4 5 6 7 8 9 0
         * 单个符号     ~ ! # ¥ % & * ( )- + 
         * 单个汉字     大 小 多 少  ......
         * 都是字符
         * 
         * char 变量名 = '字符';
         */
        
        char c1 = 'A';
        char c2 = 'b';
        
        char c3 = 65; // A
        char c4 = 98; // b
        
    //  System.out.println(c4);
        
        
        /*
         * char本质上就是整数
         * char是2个字节16位的无符号整数
         *          意思就是第一位不是符号位,只能表示正数
         *          所以char的最大值就是 1111 1111 1111 1111
         * char的范围[0-65535]
         * 
         * 他表示的字符集该数字对应的字符
         */
        
        char c5 = 20013;
        System.out.println(c5);
    }
}

2. 引用数据类型

定义变量表示班级名称 合肥javaEE2104班

班级名称既不是整数,小数,也不是布尔类型,字符

可以把 合肥javaEE2104班 可以是字符( ‘合’ ‘肥’ ‘j’ ‘a’ ‘v’ ‘a’ ‘E’ ‘E’ ‘2’ ‘1’ ‘0’ ‘4’ ‘班’)的串

这种数据类型就认为是字符串String

字符串就是一种引用数据类型

引用数据类型表示除了基本类型以外的其他数据类型

package com.qf;
​
public class Demo05 {
​
    public static void main(String[] args) {
        /*
         *  定义一个变量表示我们班级名称  合肥javaEE2104班
         *  
         *  值:不是整数,小数,布尔,字符
         *  
         *  我们可以把他看做是字符串,顾名思义就是由字符组成的串
         *  
         *  可以使用String定义字符串,字符串的值必须使用双引号括起来
         *  在字符串中定义的是什么内容,他就表示什么值
         */
        
        String myClassName = "合肥javaEE2104  班";
        
        //这里表示打印的是一个变量,打印出的是该变量表示的值
        System.out.println(myClassName);
        //这里表示打印的是一个字符串,字符串显示的值是什么,打印的就是什么
        System.out.println("myClassName");
        
        
        /*
         * 想要打印"
         * 
         *   \"
         *   \'
         *   \\
         */
        
        System.out.println("\"");
        System.out.println("\\");
        System.out.println('\'');
        System.out.println("'");
        
        // \t 表示tab键
        System.out.println("你好\t他好\t大家好");
        System.out.println("555\t333\t222");
        
        //  \n 表示enter键
        System.out.println("呵呵\n哒");
    }
    
}

3. 数据类型转化

不同类型之间数据进行相互赋值。

从小转向大(自动转化)
从大转向小,需要强制类型转化
package com.qf;
​
public class Demo06 {
​
    public static void main(String[] args) {
        
        
        /*
         * 从小转向大(自动转化)   把小杯子中水,导入大杯子中(不会出现溢出的问题,非常安全)
         *  = 表示的是赋值   把右边变量表示的值赋值给左边的变量
         */
        byte b = 100;
​
        short s = b;
        
        short s2 = 30000;
        
        int i = s2;
        
        int i2 = 21000000;
        
        long l = i2;
        
        
        float f = l;
        double d = f;
        
        /*
         * 从大转向小,就是把水从大杯子倒入小杯子,不能自定转化(可能会出现溢出的问题)
         * 可以强制类型转化:你想转化,我也拦不住你,那你自己要确定好,处了问题,不要找我,这是你自己强制转化的
         * 
         * 数据类型 变量 = (目标数据类型)值;
         * 
         */
        
        int a = 128;
        short s3 = (short) a;
        
        byte b2 = (byte) a;
        System.out.println(b2);
        
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值