数据类型

数据类型

  • 强类型语言
    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
  • 弱类型语言
  • Java的数据类型分为两大类
    • 基本类型(primitive type)
    • 引用类型(reference type)

图片

public class Demo2 {
    public static void main(String[] args) {
        //八大基本数据类型
        //整数
        int num1=10000000;//最常用
        byte num2=10;
        short num3=100;
        long num4=1000L;//Long类型要在数字后面加L

        //小数:浮点型
        float num5=10.1F;//float类型要在数字后面加F
        double num6=100.1;

        //字符类型
        char num7='你';
        //字符串,String不是关键字,是类
        String num8="鲨鱼";

        //布尔值:是非
        boolean flag=true;
        //boolean flag=false;
    }
}

类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
  • 运算中,不同类型的数据先转化为同一类型,然后进行运算
  • 强制类型转换
  • 自动类型转换
  • 从低到高:byte,short,char→int→long→float→double
public class Demo4 {
    public static void main(String[] args) {
        int num1=128;
        byte num2=(byte)num1;//内存溢出
        //强制转换 (类型)变量名 高→低
        //自动转换  低→高
        System.out.println(num1);//128
        System.out.println(num2);//-128

        /*
        注意:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.再把高容量转换到低容量的时候,强制转换
        4.转换的时候可能存在内存溢出或精度问题
         */
        System.out.println((int)10.7);//10
        System.out.println((int)-100.89f);//-100

        char num3='a';
        int num4=num3+1;
        System.out.println(num4);//98
        System.out.println((char)num4);//b

        //操作比较打的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money=10_0000_0000;
        int years=20;
        int total=money*years;//-1474836480,计算的时候溢出了
        long total2=money*years;//默认是int,转换之前已经存在问题
        long total3=money*(long)years;//先把一个数转换为long
        System.out.println(total);//-1474836480
        System.out.println(total2);//-1474836480
        System.out.println(total3);//20000000000
    }
}

拓展

public class Demo3 {
    public static void main(String[] args) {
        //整数拓展:二进制0b 八进制0 十进制 十六进制0x
        int num1=10;
        int num2=010;//八进制0
        int num3=0x10;//十六进制0x 0~9 A~F
        System.out.println(num1);//10
        System.out.println(num2);//8
        System.out.println(num3);//16
        //浮点数拓展
        /*
        银行业务怎么表示钱:BigDecimal 数学工具类
        double
        float 有限 离散 舍入误差 大约 接近但不等于
        最好完全避免使用浮点数进行比较
         */
        float num4=0.1F;
        double num5=0.1;
        System.out.println(num4==num5);//false

        float num6=123456789F;
        float num7=num6+1;
        System.out.println(num6==num7);//true

        //字符拓展
        //所有的字符本质还是数字
        char num8='a';
        char num9='我';
        System.out.println(num8);//a
        System.out.println((int)num8);//97,强制转换
        System.out.println(num9);//我
        System.out.println((int)num9);//25105

        //转义字符
        //\t 制表符
        //\n 换行
        //……
        System.out.println("hello\tworld\nhello");

        String num10=new String("hello world");
        String num11=new String("hello world");
        System.out.println(num10==num11);//false
        String num12="hello world";
        String num13="hello world";
        System.out.println(num12==num13);//true

        //布尔值拓展
        boolean flag=true;
        if(flag==true){}
        if(flag){}
    }
}
  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。

  • 1B=8bit

  • 字符:是指计算机中使用的字母、数字、字和符号。

  • 1bit表示1位

  • 1Byte表示一个字节1B=8b

  • 1024B=1KB

  • 1024KB=1M

  • 1024M=1G

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值