java基本数据类型相关

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jtracydy/article/details/87437994

概述

19年第一文,哈哈,胡乱翻了翻,觉得这个基本类型的东西还是值得好好瞅瞅的,所以就看了看学习了一下,经常用的实体bean是存在默认值的,所以选择基本类型和包装类还是有说法的。希望各位大佬多多指点

数据度量单位
  1. 单位
    bit:位/比特 是最小数据度量单位
    Byte:字节,
  2. 单位之间的关系
    1Byte = 8bits
    1KB = 1024Bytes
    1MB = 1024KB
    1GB = 1024MB
基本类型
  1. 基本类型占用字节数
    类型 bit Byte 类型 默认值 包装类
    byte 8 1 整型 0 Byte
    short 16 2 0 Short
    int 32 4 0 Integer
    long 64 8 0 Long
    float 32 4 浮点型 0.0f Float
    double 64 8 0.0d Double
    char 16 2 字符型 \u0000 Character
    boolean 1 1/8 布尔型 false Boolean

  2. code

public class Demo43 {

    public static void main(String[] args) {
        Type t = new Type();
        System.out.println("s"+t.getS());
        System.out.println("b"+t.getB());
        System.out.println("i"+t.getI());
        System.out.println("l"+t.getL());
        System.out.println("f"+t.getF());
        System.out.println("d"+t.getD());
        System.out.println("c"+t.getC());
        System.out.println("t"+t.isT());
        
        System.out.println(".......");
        System.out.println(t.getSs());
        System.out.println(t.getBb());
        System.out.println(t.getIi());
        System.out.println(t.getLl());
        System.out.println(t.getFf());
        System.out.println(t.getDd());
        System.out.println(t.getCc());
        System.out.println(t.getTt());

        System.out.println("length.....");
        String str =  "我";
        char c [] = str.toCharArray();
        System.out.println(c.length);
    }
}

@Data
class Type{
    private short s;
    private Short ss;
    private Byte bb;
    private byte b;
    private int i;
    private Integer ii;
    private long l;
    private Long ll;
    private float f;
    private Float ff;
    private double d;
    private Double dd;
    private char c;
    private Character cc;
    private boolean t;
    private Boolean tt;
}

结果

  1. 总结:Java8中基本类型都在存在默认值,而基本类型的包装类没有默认值,基本类型的包装类是一个对象。两个字节存储一个汉字,每个汉字的length为1。
包装类
  1. 代码
    public static void main(String[] args) {
        Integer ii1 = 1;
        Integer i1 = 1;

        Integer ii2 = 200;
        Integer i2 = 200;

        Integer ii3 = 3;
        Long l = 3l;
        Integer i3 =1;
        Integer i4 =2;
        System.out.println(ii1 == i1);
        System.out.println(ii2 == i2);
        System.out.println(ii2.equals(i2));
        System.out.println(ii3 == (i3+i4));
        System.out.println(l.equals (i3+i4));
//        true
//        false
//        true
//        true
//        false
    }
  1. 总结
    (1)基本类型转化为包装类是装箱,包装类转化为基本类型是拆箱,
    (2)装箱valueOf调用方法,拆箱调用intValue方法
    (3)ii2 == i2 之所以不相等,是因为在比较的过程中,发生了自动装箱,即创建了新的对象,== 用于对象之间比较的是指向地址是否相同,因为创建了新的对象,所以支不相同。
    (4)l.equals (i3+i4)结果为false,如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程),同时又使用了equals比较对象的内容,又触发了装箱的过程,因为类型装箱实现的区别所以结果存在差异。
    (5)Integer、Short、Byte、Character、Long这几个类的valueOf方法的实现是类似的。Double、Float的valueOf方法的实现是类似的。
参考博客

https://blog.csdn.net/wanlixingzhe/article/details/7107923
https://www.cnblogs.com/dolphin0520/p/3780005.html

猜你喜欢

转载自blog.csdn.net/jtracydy/article/details/87437994