小白的20天Java学习打卡day4

太原理工大学机器人团队20天学习打卡day4


1、浮点型

float 单精度【4个字节】

double 双精度【8个字节,精度较高】

double的精度相对来说还是很低,

所以sun在SE类库当中为程序员准备了精度更高的类型,只不过这种类型是一种引用数据类型,不属于基本数据类型,他是java.class.BigDecimal

在java语言当中,所有的浮点型字面值,默认被当作double类型处理

要想该字面值当作float类型来处理,需要在字面值后面添加f/F【与昨天的整形类似】

注意

  • double和float在计算机内部二进制储存的时候储存的都是近似值
  • 在现实世界当中有些数据是无限循环的,计算机的资源是有限的,用有限的资源存储无限的数据只能存储近似值

2、布尔型 boolean

  • 在java语言当中boolean类型只有两个值:true和false,没有其他值。

在底层存储的时候boolean类型占用一个字节,因为实际储存的时候false底层是0,true底层是1。

布尔类型在实际开发当中非常重要,经常使用在逻辑运算条件控制语句当中。

public class DataTypeTest06
{
    public static void main(String[] args){
		
        boolean loginSucess = true;
        
        if(loginSucess){//if语句以后讲【条件控制语句】
            System.out.println("恭喜你登录成功");
        }
        else{
            System.out.println("对不起,用户名不存在或密码错误");
        }
    }
}

3、基本数据类型之间的互相转换

  • 转换规则【6种】
    • 八种基本数据类型当中除布尔类I型之外七种类型之间都可以互相转换
    • 小容量向大容量转换,称为自动类型转换,容量从小到大排序:
              byte < short (char) < int < long < float < double

    注意
          任何浮点型不管占用多少个字节,都比整数型容量大。
          char和short克表示的种类数量相同,但是char可以取更大的正整数

    • 大容量转换成小容量叫做强制类型转换,需要加强制类型转换符,程序才能通过,但是在运行阶段可能会损失精度,所以谨慎使用。
    • 当整数字面值没有超出byte,chort,char取值范围,可以直接赋值给byte,short,char
    • byte,short,char混合运算的时候,各自先转换成int类型再做运算
    • 多种数据类型混合运算,先转换成容量最大的那种类型再做运算

注意
byte b = 3;可以编译通过,3没有超出byte类型取值范围

​int i =  10;
byte b = i/3;编译报错,编译器只检查语法,不会运算i / 3

4、运算符

①算数运算符 :

+(求和) ,-(相减),*(乘积),/(商),%(求余数,取模),++(自加1),–(自减1)

注意:一个表达式当中有多个运算符,运算符有优先级,不确定的加小括号,优先级的到提升。

关于++运算符【 - - 类似】
public class OperatorTest01
{
	public static void main(String[] args){
        
        int k = 10;
        //++运算符可以出现在变量后面【单目运算符】
        k ++;
        
        System.out.println(k);//11
        
        int y = 10;
        //++运算符可以出现在变量前面【单目运算符】
        ++ y;
        System.out.println(y);//11
        
        //++ 出现在变量后
        //规则:先做赋值运算,再对变量中保存的值进行自加1.
        int a = 100;
        int b = a ++;
        System.out.println(a);//101
        System.out.println(b);//100
        
        //++出现在变量前
        //规则:先进行自加1操作,然后再进行赋值操作.
        int m = 20;
        int n = ++ m;
        System.out.println(m);//21
        System.out.println(n);//21
        
        int e = 100;
        System.out.println(e ++);//100
        
        int s = 100;
        System.out.println(++ s);//101
    }
}

++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要++运算结束,该变量中的值一定会自加1

②关系运算符:

>(大于),>=(大于等于),<(小于),<=(小于等于),==(等于),!=(不等于)

注意:=是赋值运算符,==是关系运算符

关系运算符的结果一定是布尔类型:true/false

关系运算符的运算原理:

int a = 10 ;

int b = 10;

a > b 比较的是a中保存的10这个和b中保存的 10 这个之间的大小比较

③逻辑运算符

&(逻辑与),|(逻辑或),!(逻辑非),^(逻辑异或),&&(短路与),||(短路或)

! :取反,!false就是true,!true就是false,这是一个单目运算符

^:两边算子不一样,结果就是true

  • 逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
  • 短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象
  • 短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象
什么情况下发生短路现象呢

【逻辑与和短路与】

public class OperatorTest02
{
	public static void main(String[] args){
        
		int x = 10;
        int y = 8;
        //逻辑与
        System.out.println(x<y & ++x<y);
        System.out.println(x);//11 说明计算了后面的表达式
        
        int a = 10;
        int b = 8;
        //短路与
        System.out.println(a<b && ++a<b); 
        //a < b结果是false,整个表达式结果已经确定false
        //后面所有表达式没有再执行,这种现象被称为短路现象。
        //短路与才会有短路现象,逻辑与是不会存在短路现象的
        System.out.println(a);//10 说明后面的表达式没有计算
        
        /*从某个角度来看,短路与更智能,由于后面的表达式可能不执行,所以执行效率较高。这种方式在实际开发中			使用较多。短路与比逻辑与使用的多。短路与更常用。
        
       	 但是,在某些特殊业务逻辑当中,要求运算符两边的算子必须全部执行,此时必须使用逻辑与,不能使用短路		  与,使用短路与可能导致右边的表达式不执行
        */
    }
}
  • 第一个表达式执行结果是true,会发生短路或
  • 第一个表达式执行结果是false,会发生短路与

小结

今天主要学习了变量类型中的浮点型,布尔型,基本数据类型间的转换规则。运算符中的算术运算符,关系运算符,逻辑运算符,逻辑运算符中的短路现象

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值