Java学习笔记04

本文介绍了Java中不同数值类型的无损转换和可能产生精度损失的转换,例如int到float的转换可能导致精度损失。此外,还讲解了枚举类型、强制类型转换、浮点数的舍入运算、三元运算符、位运算符的使用,以及运算符的优先级。通过实例展示了如何在Java程序中进行这些操作,并讨论了关系和布尔运算符的应用。
摘要由CSDN通过智能技术生成
数值类型之间的转换
byte -> short -> int -> long
char -> int -> double
float -> double
以上为无信息丢失的转换

int -> float   long -> float   long -> double
以上为可能有精度损失的转换

例如  123 456 789 是一个大整数
它所包含的位数比float类型所能表达的位数要多
当这个整型数值转换成float类型时
将会得到同样大小的结果
但却失去了一定的精度

import static java.lang.Math.*;

public class Step4 {
    //        枚举类型
//        自定义枚举类型
    enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARGE};// 不能在本地进行枚举,要在主方法之外进行声明
    public static void main(String[] args){
        Size s = Size.LARGE;
        System.out.println(s);


        int n = 123456789;
        float f = n;
        System.out.println(f);// print 1.23456792E8

        //  强制类型转换 (cast)
        //  例如
        double x = 9.97;
        int nx = (int) x;
        System.out.println(nx);// print 9

//        对浮点数进行舍入运算,以便获得最接近的整数
//        需要使用Math.round方法
        double i = 9.997;
        int ix = (int) round(i);
        System.out.println(ix);// print 10
//        在调用round方法时,仍然需要使用强制类型转换
//        原因是round方法返回的时long类型
//        由于存在信息丢失的可能性,
//        所以只有使用显式的强制类型转换才能将long类型转换成int类型

        int k = 11;
        k++;
        System.out.println(k);
//        前缀形式 ++k
//        后缀形式 k++
//        在表达式中,两者略有区别
//        前缀形式会先完成加1,而后缀形式会使用变量原来的值
        int m = 5;
        int p = 5;
        int a = 2 * ++m;
        int b = 2 * p++;
        System.out.println(m + " " + a);// 前缀形式,m = 6 ,a = 12
        System.out.println(p + " " + b);// 后缀形式,使用变量原来的值  p = 6, b = 10

//        关系和boolean运算符
//        检测两者相等性,使用==
        System.out.println(3==7);// 返回false
//        使用!=检测不相等
        System.out.println(3!=7);// 返回true
//         从!=可以想到,感叹号!是逻辑非运算符
//        &&与,||或

//        三元操作符  ? :
//        x < y ? x : y
        double y = 10;
        System.out.println(x < y ? 1 : 2);// ?表示,判断前面的表达式,如果true,则返回:前面的,否则返回后面

//        位运算符
//        处理整型类型时,可以直接对组成整型数值的各个位完成操作
//        位运算符包括
//        &("and")  |("or")  ^("xor")  ~("not")
//        如果n是一个整数变量,
//        而且二进制表示的n从右边数第四位为1,则
        int fourthBitFromRight = (n & 0b1000) / 0b1000;
        System.out.println(fourthBitFromRight);

//        同一级别的运算符按照从左往右的次序进行计算
//        如
//        由于&&的优先级比||的优先级高,则
//        a && b || c
//        等价于
//        (a && b) || c
//        又因为+=是右结合运算符,则
//        a += b += c
//        等价于
//        a += (b += c)



    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值