zoukankan      html  css  js  c++  java
  • 3. Java 基本数据类型

    Java 是一种 强类型 语言,要求变量的使用严格规定,所有变量的使用都必须先定义

    3.1 基本类型(8)

    基本类型分为:数值类型:整型、浮点型、字符型;布尔型

    • 整型
      1. byte (1个字节)
      2. short (2个字节)
      3. int (4个字节)
      4. long (8个字节)
    • 浮点型
      1. float (4个字节)
      2. double (8个字节)
    • 字符型
      1. char (2个字节)
    • 布尔型
      1. boolean:true/false (1位)

    基本类型的包装类:

    Byte、Short、Integer、Long、Float、Double、Character、Boolean

    3.2 引用类型

    • 接口
    • 数组

    3.3 常见面试题

    3.3.1 自动拆箱和装箱

    装箱:将基本数据类型转换为对应的引用类型;调用 valueOf() 方法

    拆箱:将引用类型转换为对应的基本数据类型;调用 xxxValue() 方法

    相关博文:https://www.cnblogs.com/dolphin0520/p/3780005.html

    例子:

    Integer i1 = 100;
    Integer i2 = 100;
    Integer i3 = 200;
    Integer i4 = 200;
    
    System.out.println(i1 == i2);// true
    System.out.println(i3 == i4);// false
    
    解析:
        Integer.valueOf(); 方法 会根据数值判断,[-128,127] 之间会查找相同值得引用地址,否则new 一个新的对象
        
        public static Integer valueOf(int i) {
            if (i >= IntegerCache.low && i <= IntegerCache.high)
                return IntegerCache.cache[i + (-IntegerCache.low)];
            return new Integer(i);
        }
    =========================================================================================================
    
    Double d1 = 100.0;
    Double d2 = 100.0;
    Double d3 = 200.0;
    Double d4 = 200.0;
    
    
    System.out.println(d1 == d2);// false
    System.out.println(d3 == d4);// false
    
    解析:
        double.valueOf  是直接创建新对象
        
        public static Double valueOf(double d) {
            return new Double(d);
        }    
    
    =========================================================================================================
    布尔值:定义了两个静态变量;此会在初始化加载的时候就加载完。
        public static final Boolean TRUE = new Boolean(true);
        public static final Boolean FALSE = new Boolean(false);
    
        public static Boolean valueOf(boolean b) {
            return (b ? TRUE : FALSE);
        }
    

    因此:

    整数型 Byte、Short、Integer、Long、Character 、Boolean都是同类模式;常量池技术

    • Byte、Short、Integer、Long 缓存数据:[-128, 127]
    • Character : [0, 127]
    • Boolean : [True Flase]
    • ==》 以上超出对应的范围即会创建新的对象。

    浮点型 Double 、Float 直接new.

    • 因为浮点数没有固定范围大小的数值

    Integer i = new Integer(***); 和 Integer i = *; 的区别

    1. 第一种不会触发自动装箱;第二种会
    2. 某种程度上来说,第二种的执行效率要高于第一种;
      • 因为自动装箱的时候:会判断区间值,如在区间种则无需new.

    进制

    • 整数进制首位

      1. 二进制:0b
      2. 八进制:0
      3. 十进制:
      4. 十六进制:0x
    • 浮点数

      1. float:有限、离散、舍入、大约、接近但不等于
      2. 最好完全不要使用浮点数进行比较
      3. 银行业务、金钱业务:使用 BigDecimal 数学工具类
    • 字符型

      1. 所有的字符本身还是数字
    • 转义字符

      1. 制表符
      2. 换行
      3. ...
    • 布尔型

      1. if(flag==true){} 与 if(flag) 是一样的

    3.4 类型转换

    • 强制转换:(类型)变量名 ; 由高到低

      int i = 10;
      byte a = (byte) i;
      
    • 自行转换:由低到高

    • 运算过程中不同类型的数据需转换为同一类型

    • 注意事项:

      1. 不能对布尔类型进行转换
      2. 高容量转换为低容量时需强制转换
      3. 强制转换存在内存溢出的问题
      4. 不能把对象类型转换为不相干的类型
  • 相关阅读:
    盒模型--边界
    盒模型--填充
    盒模型--宽度和高度
    盒模型--边框(二)
    盒模型--边框(一)
    元素分类--内联块状元素(特点:同行, 可设置宽高和边距)
    元素分类--内联元素(特点:同行, 宽高边距不可改)
    元素分类--块级元素(特点:独占一行, 宽高边距可改)
    Java并发注解Annotation
    游戏服务器端开发的基本大纲
  • 原文地址:https://www.cnblogs.com/blackBlog/p/13451183.html
Copyright © 2011-2022 走看看