数据类型以及不同数据类型之间的转换

                                                          数据类型

  • 强类型语言 : 要求变量的使用严格符合规定,所有变量必须先定义后才能使用

  • 弱类型语言

Java的数据类型分为两大类

1.基本数据类型 (primitive type)
//八大基本数据类型

//整数型
byte             //占1个字节 范围: -128(-2^7) ~ 127(2^7-1)             
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)
                    //(Long类型要在数字后面加上L)

//小数:浮点数
float             //占4个字节
                    //float类型要在数字后面加上F
double         //占8个字节

//字符
char             //占2个字节 范围:0(\u0000) ~65535 (\uffff)

//布尔值
boolean       //占1位 其值是true和false两个
2.引用数据类型(reference type)
 1. 类 
 2. 接口
 3. 数组
 

 什么是字节
位(bit) : 是计算机 内部数据 存储的最小单位, 11001100是一个八位二进制数
字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示
1B(byte,字节) = 8bit(位)
字符: 是指计算机中使用的字母、数字、字和符号

1bit表示1位,
iByte表示一个字节 1B=8b
1024B=1KB
1024KB=1M
1024M=1G
1024G=1TB


拓展


整数型拓展:
进制:

  •   二进制 :      二进制是以0b开头的
  •  十进制
  •   八进制  :     八进制是以0开头的
  •  十六进制 :   十六进制是以0x开头的
public class Demo01 {
    public static void main(String[] args) {
        int i1 =10;
        int i2 =010;    //八进制前面加上0
        int i3 = 0x10;  //十六进制前面加上0x
        int i4 = 0x11;  //十六进制前面加上0x
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);
    }
}

运行结果为:

浮点数拓展:

银行业务中的钱的计算该用什么计算?会使用float么?

答案是:不会,因为float浮点数不适合进行比较以及计算,计算出来的是舍入误差,接近但是不等与。所以银行业务一般使用BigDecimal进行计算比较

字符拓展:

字符型的char本质上还是数字,内含Unicode表

    public static void main(String[] args) {
        char c1 = 'A';
        char c2 = '瑾';
        System.out.println(c1);
        System.out.println((int)c1); //强制转换
        System.out.println(c2);
        System.out.println((int)c2); //强制转换
        char c3 = '\u0066';
        System.out.println(c3);
    }

数据类型之间的转换

[分为强制转换(由高到低)自动转换(由低到高)]

由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

低 -------------------------------------------------------------> 高

byte,short,char--> int --> long --> float --> double

 

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换为低能量时,强制转换!
  4. 转换的时候可能存在内存溢出,或者进度问题!
    public static void main(String[] args) {
        int in = 2147483647;  //int的最大值是2147483647(20亿多)
        byte by = 127;        //byte的最大值是127
        int i = 128;
        byte b  = (byte)in;   //强制转换(从低到高转换需要强制转换)
        double bo = i;        //自动转换(从高到低进行转换是自动转换)
        System.out.println(i);
        System.out.println(b);
        System.out.println(bo);
        System.out.println((int)23.7);     //23.7是double类型的
        System.out.println((int)-45.11f);  //-45.11f是float类型的
    }

控制台输出:

public static void main(String[] args) {
        //计算比较大的数的时候
    int money = 10_0000_0000;//10亿
    int years = 20;
    int total = money * years;
        System.out.println(total);
    long total2 = money * years;
        System.out.println(total2);
    long total3 = money * (long)years;
        System.out.println(total3);
    }

控制台:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值