数据类型分类

数据类型分类

学习视频来源:【狂神说】Java基础03:数据类型讲解

强弱类型语言

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

Java数据类型分类

Java的数据类型分为两大类

  • 基本类型(primitive type)
  • 引用类型(reference type)

java中基本类型的默认值是0,引用类型会默认为null。

在这里插入图片描述

八大基本数据类型

// 八大基本数据类型

整数

        // 整数
		// 默认值是 (byte)0
        byte num1 = 10;

		// 默认值是 (short)0
        short num2 = 20;
		
		// 默认值是	0
        int num3 = 30;
        // int 最常用	

		// 默认值是	0L
        long num4 = 40L;
        // long 类型要在数字后面加个L
		// 代码习惯提示
        // 对于表示long类型的数据,大写的L 与  小写的l 都可以作为数值的后缀
        // 但小写的l 很容易被看成是 数字1 ,所以通常都不推荐使用小写l作为long类型后缀

浮点数

        // 浮点数
		// 默认值是 0.0f
        float num5 = 50.1F;
        // float 类型要在数字后面加个F,或f
		
        // 默认值是 0.0d
        double num6 = 60.1;
        // double 比较常用  

字符

        // 字符
		// 默认值是 0 对应的字符 ‘/u0000’(null)
        char name = '国';

        // 字符串  String 不是关键字  String是已经定义好的类
        //String names = "中国";

布尔

        // 布尔值  是否
		// 默认值是 false
        boolean flag = true;
        boolean flag2 = false;

知识扩展

什么是字节

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

  • 1bit表示1位
  • 1Byte表示一个字节 1B = 8b.
  • 1024B = 1KB
  • 1024KB = 1M
  • 1024M = 1G

电脑的32位与64位有什么区别?

  • 寻址能力不同
  • 32位电脑内存条最大扩到4G
  • 64位电脑内存条可以到128G

数据类型扩展

整数扩展-进制

        // 整数类型扩展   进制
        // 二进制(前缀0b)     八进制(前缀0)    十进制    十六进制(前缀0x)

        int num1 = 10;
        int num2 = 010;
        //  八进制(前缀0)
        int num3 = 0x10;
        // 十六进制(前缀0x)   0~9 A~F(对应10~16)

        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
        System.out.println("===========================");

浮点数扩展-银行业务

        //==================================================================================
        // 浮点数扩展    银行业务怎么表示?  钱
        // BigDecimal   数学工具类
        //==================================================================================
        // float  和     double  都是有限的   离散的     存在舍入误差      只能大约,接近但不等于
        // 最好完全不使用浮点数进行比较!存在误差
        // 最好完全不使用浮点数进行比较!存在误差
        // 最好完全不使用浮点数进行比较!存在误差

        float f = 0.1f;
        // 0.1
        double d = 1.0/10;
        // 0.1
        System.out.println(f == d);
        // false

        float f1 = 34131213212343.1f;
        float f2 = f1 + 1;
        System.out.println(f1 == f2);
        // true

        double d1 = 2312134241233432342423434234324.1;
        double d2 = d1 + 1;
        System.out.println(d1 == d2);
        // true
        System.out.println("===========================");

字符扩展

        //==================================================================================
        // 字符扩展
        //==================================================================================

        char c1 = 'a';
        char c2 = 'A';
        char c3 = '中';
        char c4 = '1';
        System.out.println(c1);
        // 强制转换
        System.out.println((int)c1);
        //  97 = a
        System.out.println(c2);
        System.out.println((int)c2);
        // 65 = A
        System.out.println(c3);
        System.out.println((int)c3);
        // 中 = 20013
        System.out.println(c4);
        System.out.println((int)c4);
        // 1 = 1

        // 结论:所有字符本质还是数字
        // 编码 Unicode 表     (97 = a,65 = A,)
        // 范围:最大0~2^16(即0~65536)   U0000 ~ UFFFF     Excel最大范围也是这个

        //  Unicode的底层的表示
        char c5 = '\u0061';
        System.out.println(c5);
        // \u0061  =  a
        System.out.println("===========================");

转义字符

        //==================================================================================
        // 转义字符
        //  \t          制表符
        //  \n          换行
        // ······还有很多
        System.out.println("hello\tworld");
        System.out.println("hello\nworld");

        System.out.println("===========================");

字符串相等比较?

        //==================================================================================
        // 字符串相等?   对象  从内存分析

        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa == sb);
        // false

        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc == sd);
        // true

        System.out.println("===========================");

布尔值扩展

        //==================================================================================
        // 布尔值扩展
        boolean falg = true;

        if(falg == true){}
        // 新手

        // 表达相同的意思

        if(falg){}
        // 老手

        // Less is More!  代码要精简易读
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值