Java修炼之凡界篇 筑基期 第02卷 语法 第03话 数据类型

数据类型

PS:平常生活中,也会用到一些数据的类型,例如:数字、字符(文字)、是、非,且数字分为整数和小数,在Java中也是和生活中一样,有属于自己的数据类型,Java种有八大基本数据类型和一些引用类型。

什么是字节?什么是位?

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

单位换算

  • 1B=8bit
  • 1024B=1KB
  • 1024KB=1M
  • 1024M=1G
  • 1024G=1TB
  • 1024T=1P
  • 1024P=1E
  • 1024E=1Z
  • 1024Z=1Y
  • 1024Y=1BB
  • 1024BB=1NB
  • 1024NB=1DB

基本类型(primitive type)

数值类型

整数类型
  • byte占1个字段,其长度范围:-128~127
  • short占2个字节,其长度范围:-32768~32767
  • int占4个字节,其长度范围:-2147483648~2147483647
  • long占8个字节,其长度范围:-9223372036854775808~9223372036854775807
浮点类型
  • float占4个字节
  • double占8个字节
字符类型
  • char占2个字节

boolean类型

  • boolean类型也叫布尔类型,占1位,其值只有true和false
public class DataType {
    public static void main(String[] args) {
        // 八大基本数据类型
        // 数值类型
        // 整数类型
        int num1 = 10;
        byte num2 = 20;
        short num3 = 30;
        // Long类型要在数字后面加个L
        long num4 = 30L;

        // 小数:浮点数,float类型要在数据后面加个F
        float num5 = 55.5F;
        double num6 = 3.141592653;

        // 字符,只能给一个字符
        char str1 = '中';

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

引用类型(reference type)

  • 接口
  • 数组

数据类型拓展

PS:平常生活中我们使用的都是十进制,计算机使用的是二进制

public class DataTypeExpansion {
    public static void main(String[] args) {
        // 一、整数知识拓展     进制      二进制0b     十进制0     八进制0     十六进制0x
        int i1 = 10; // 十进制
        int i2 = 010; // 八进制
        int i3 = 0x10; // 十六进制 0~9 A~F
        int i4 = 0x11; // 十六进制 0~9 A~F
        System.out.println(i1); // 输出结果10
        System.out.println(i2); // 输出结果8
        System.out.println(i3); // 输出结果16
        System.out.println(i4); // 输出结果17
        System.out.println("=============================");

        // 二、浮点数知识拓展
        // 不能使用float和double去进行计算和比较,会出现精度丢失问题
        // 涉及金钱业务都需要使用BigDecimal类去进行计算和比较
        // 以小数0,1举例
        float f1 = 0.1f;
        double d1 = 1.0 / 10;
        System.out.println(f1 == d1);// 输出false
        System.out.println(f1);// 输出0.1
        System.out.println(d1);// 输出0.1

        float f2 = 42253425362f;
        float f3 = f2 + 1;
        System.out.println(f2 == f3);//输出结果true,两个结果本应该不相等,但是现在相等了
        // float 长度有限,且离散,存在舍入误差,只能表示接近但是不等于
        System.out.println("=============================");

        // 三、字符知识拓展
        char c1 = 'a';
        char c2 = '王';

        // 变量前加上圆括号并在括号中写上数据类型,这种方式叫做强制转换
        // 这是固定写法,后续会讲到,先有个认识
        System.out.println(c1);// 输出a
        System.out.println((int) c1); // 输出97,强制转换
        System.out.println(c2);// 王
        System.out.println((int) c2);// 输出29579,强制转换
        // 结论:所有字符其本质仍然是数字
        // 编码 Unicode 2个字节 0~65536(范围不会固定,仍然会增长) 
        // 表中使用97去代表a,使用29579代表文字王,范围为:u0000~uffff

        char c3 = '\u0061';
        System.out.println(c3);// 输出a
        System.out.println("=============================");

        // 四、转译字符知识拓展
        // CR-->\r LF-->\n,在编辑器中可以很轻易的看见,如Notepad++
        // 对于换行的动作,各个系统环境下都不一样
        // Linux/Unix一般是一个0x0A表示换行(\n)
        // Windows一般是0x0D和0x0A表示换行(\r\n)
        // 苹果系统一般是0x0D采用CR回车符表示换行(\r)

        // \t 制表符对应计算机键盘上的Tab键
        System.out.println("Hello\tWord"); // 输出Hello  Word

        // \n 换行符
        System.out.println("Hello\nWord"); // 输出Hello
                                           //    Word
        // \r 回车符
        System.out.println("Hello\rWord"); // 只输出Word,很神奇吧
        System.out.println("=============================");

        // 五、字符串知识拓展
        String s1 = new String("Hello Word");
        String s2 = new String("Hello Word");
        System.out.println(s1 == s2); //输出false
        System.out.println(s1.equals(s2)); //输出true

        String s3 = "Hello Word";
        String s4 = "Hello Word";
        System.out.println(s3 == s4);//输出true

        // 我们眼中看着数据相等的字符串,为什么程序执行后,却不相等呢
        // 后续会讲到,从内存的角度去讲解,就会知道为什么不相等
        System.out.println("=============================");

        // 六、boolean布尔型知识拓展
        boolean b1 = true;
        // 如果b1为真可以执行,和生活当中做假设一样,如果什么什么,就怎么怎么样
        if (b1) {
            System.out.println("1==:" + b1);
        }
        if (b1 == true) {
            System.out.println("2==:" + b1);
        }
        b1 = false;
        if (b1)
            System.out.println("3==:" + b1);

        System.out.println("4==:" + b1);
        // 以上3种程序编写方式都可以
        // 程序执行结果
        // 1==:true
        // 2==:true
        // 4==:false
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫在问

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值