• 基本类型介绍


    基本类型介绍

    JAVA 中标识符的命名原则

    • 可以使用 " _ ", " $ " 开头,其他字符一律不行;
    • 不可以使用数字作为开头;
    • JAVA 使用Unicode字符集,所以可以使用汉字来命名;但是我们人为不允许。

    变量类型

    1.常用变量的大小 (1 Bytes = 8 bits)

    • double: 8 Bytes
    • long: 8 Bytes
    • int: 4 Bytes

    2.分类

    局部变量

    • 方法或语句块内部定义的变量。
    • 生命周期从生命位置开始到方法或语句块执行完毕为止。语句块是用 {} 包含起来的代码块。

    成员变量

    • 方法外部、类的内部定义的变量
    • 生命周期伴随对象始终。
    • 如果不自行初始化,就按照规则自动初始化。如:
      • int -- 0;
      • double -- 0.0
      • char -- 'u0000'
      • boolean -- 'false'

    静态变量

    • 使用 static 定义。又称 类变量 (static variable)
    • 从属于类,生命周期伴随类的始终--从类加载到卸载;
    • 定义类变量是在整个类中定义的,即:在主函数外部定义,这样在同一个类中其他函数也可以使用这个变量;
    • 格式:public static final int STATICVARS = 4;

    常量(constant)

    • 一旦初始化就不能再改变;习惯上,常量名使用全大写
    • 我们主要是用关键字 final 来定义常量;
    • const 是java的保留关键字,目前并没有被使用;
    • 如果一个常量声明为public,那么其他类方法也可以使用这个常量;
    • 常量分为字面常量和符号常量
      • 字面常量: 1, 2, 3, 'a', true, "HelloWorld"
      • 符号常量: 使用 final 修饰的;

    数据类型

    数据类型分为基本数据类型引用数据类型

    基本数据类型

    • 数值型
    • 浮点型
    • 字符型
    • 布尔型

    引用数据类型 (4B)

    • 类(class)
    • 接口(interface)
    • 数组

    数值型

    也就是 整型

    • 数据大小
      • byte : 1B
      • short: 2B
      • int : 4B
      • long : 8B
    • 表示其他进制数
      • 十进制整数;如: 99, -15
      • 八进制整数;要求以 0 开头;如:015
      • 十六进制;要求以 0x 或 0X 开头。如:0x15
      • 二进制数;要求以0b0B开头。如:0b01110101

    浮点型

    • 数据大小
      • float : 4B 单精度,尾数精确到7位有效数字
      • double: 8B 双精度,精度是 float 的两倍
    • 科学计数法
      • 314e2: 314 x 10^2 = 31400
      • 314e-2: 314 x 10^(-2) = 3.14
      • 以此类推即可

    字符型 char : 2B

    char 型使用的是 unicode 字符集

    • 表示方法
      • 单引号法:如:char a = 'A'
      • 十六进制数值表示方法:如:char a = 'u0061' 代表字符 a ;
      • 使用 u0000 -> uffff 来表示除了 unicode 之外的编码;如 u2122 表示注册符号 ™ ; u01C0 表示 π;
    • char 型字符和值的互相转换
      • 这也就意味着 char 型数据也可以用于数值比较;
    char a = 'a';
    System.out.println(a);
    // 两种类型转换的方法            System.out.println(0+a);            System.out.println((int)a);
    
    // 输出
    a
    97
    97
    
    • 转义字符
    转义字符 含义 unicode值
     退格 u0008
    换行 u000a
    回车 u000d
    制表符 u0009
    " 双引号 u0022
    ' 单引号 u0027
    反斜杠 u005c
    • 字符类型转化
    System.out.println('a' + 'b')
    System.out.println("" + 'a' + 'b');
    
    // 返回
    195
    ab
    

    布尔型(boolean) (1bit)

    只有两个值:true false; 写代码时以下写法要注意:

    boolean flag = true;
    if (flag == true) {   //我们不使用这种写法
        System.out.println("true");
    }
    
    //标准写法
    if (flag) {
        System.out.println("true");
        }
    

    注意:

    1. 定义 long 型数据,需要在后面加 " L " 或 " l " 表示为 Long 型常量

    这是因为 java 语言中的整形常数默认为 int 型,所以声明 long 型常量在后面加上 " L ";

    如:long temp = 9876543210L; 这个数据显然超过了 int 型的范围(约21亿),这是就需要加上 " L ",否则会出现编译错误;

    1. 定义 float 型数据,需要在后面加 " F " 或 " f " 表示为 float 型常量

    这是因为 java 语言中的浮点形常数默认为 double 型,所以声明 double 型常量在后面加上 " F ";

    如:float temp = 3.14F; 如果没有这个 F 就会出现编译错误。

    1. 浮点型数据不能用于比较!

    浮点数不适合在不允许舍入误差的金融计算领域;

    如果需要进行不产生摄入误差的精确数字计算,需要使用 java.math类下的 BigDecimalBigInteger

    BigInteger 实现了任意精度的整数运算;

    BigDecimal 实现了任意精度的浮点运算。

    1. 使用 Double.isNaN(x) 来检查 x 是否为数值;
    import java.math.BigDecimal;
    /**
        * 浮点数的相关操作
        * Author: Eric Pan
        * Date: 2019.7.18
    */
    public class DataType {
        /**
        * 浮点数是不能用于比较的;
        * 每次得到的结果可能不同;
        */
        public static void floatCharacter() {
            float d1 = 0.1f;
            double d2 = 1.0/10;
            float d3 = 423432423f;
            float d4 = d1 + 1;
            
            System.out.printf("d1和d2的比较结果是 %s
    ", d1 == d2);
            System.out.printf("d3和d4的比较结果是 %s
    ", d3 == d4);
        }
        
        /**
        * 使用 BigDecimal 来比较浮点数
        */
        public static void floatComparison() {
            BigDecimal bdDecimal = BigDecimal.valueOf(1.0);
            
            // 使用 BigDecimal 方法减5次0.1;
            for (int i=0; i<5; i++)
                bdDecimal = bdDecimal.subtract(BigDecimal.valueOf(0.1));
        
            System.out.println(bdDecimal);
            System.out.println(1.0-0.1-0.1-0.1-0.1-0.1);
        
            // 比较要使用 .equals() 方法
            BigDecimal bd1 = BigDecimal.valueOf(0.1);
            BigDecimal bd2 = BigDecimal.valueOf(1.0/10);
            System.out.println(bd1.equals(bd2));
        }
        
        public static void main (String[] args) {
            floatCharacter();
            floatComparison();
        }
    }
        
    // 返回
    d1和d2的比较结果是 false
    d3和d4的比较结果是 false
    0.5
    0.5000000000000001
    true
    
  • 相关阅读:
    终端创建scrapy项目时报错(转)
    redis的一些命令
    pom.xml中build标签
    spring与mybatis四种整合方法
    linux lsof/netstat查看进程和端口号相关命令:
    ps -ef |grep 输出的具体含义
    java web项目在linux部署、启动,查看系统配置常用的linux命令总结
    linux mysql操作命令大全
    mysql中between...and..的使用,及时间范围的查询
    mysql中if()函数使用
  • 原文地址:https://www.cnblogs.com/rongyupan/p/12670448.html
Copyright © 2020-2023  润新知