JavaBase—Day3笔记

数据类型转换

        在java中,任何情况下,整数型的字面量默认都被当做int类型处理。

        如果希望该整数型字面量被当做long类型来处理,需要在字面量后面添加L/l,建议使用L,小写和1差不多。

自动类型转换

小容量可以自动赋值给大容量;这种操作被称为自动类型转换。

注意:如果字面量本身在赋值前就超过int的范围,就会在赋值前报错

强制类型转换

        大容量不允许直接向小容量赋值,编译会报错,可以使用强制转换符,但是转换后会损失精度。

        long x = 100L;

        int y =x;//编译报错,需要写成强制类型转换符,格式如下

        //数据类型 变量名=(数据类型)变量名;

        注意:强制类型转换后将会将原有数据类型的字节数“砍断”剩余至被强制转换后的数据类型字节数,如上述long类型8字节强转后剩余int类型4字节数

数据类型转换规则

  1. 1、八种数据类型中,除去Boolean不能转换,其余都可以。
  2. 2、如果整数字面量没有超过byte、short、char、的取值范围,可以直接赋值该三种类型的变量。
  3. 3、小容量转换大容量为自动类型转换,容量从小到大的排序为:byte<short(char)<int<long<flort<double,其中short和char都占用两个字节,但是char可以表示更大的正整数。
  4. 4、大容量转换小容量为强制类型转换,编写时必须添加强制类型转换符,但是运行时可能会出现精度损失,谨慎使用。
  5. 5、byte,short,char类型混合运算时,先各自转换为int类型再做运算,他们之间不能相互转换(重点)
  6. 6、多种数据类型混合运算,各自先转换成容量最大的那一种再运算

运算符

关系运算符

        所有关系运算符的运算结果都是布尔类型。

        注意:关系运算符之间不能有空格

        <=对的,< =不对的

逻辑运算符(&,|,&&,||,!)

  1.         逻辑运算符两边要求字面值是布尔类型,其他数据类型的字面值是错误的,并且运算结果也是布尔类型,这是逻辑运算符的特点。
  2.         &两边有一个false,结果就是false
  3.         |两边有一个true,结果就是true
  4.         短路与&&和逻辑&运行结果没有区别,完全相同,只是&&会发生短路现象。
  5.         什么是短路现象呢?
  6.         使用短路与&&的时候,左边的表达式为false的时候,右边的表达式不执行,这种现象就是短路现象,而逻辑与&并没有这个现象,它两边的表达式都会执行,代码执行效率低于短路与&&。
  7.         什么时候用&&?
  8.         大部分时候使用&&,只有在特殊业务两边表达式都需要执行的时候使用&。
  9.         短路或||道理相同。

赋值运算符

赋值运算符分为基本赋值运算符=,和扩展赋值运算符+=,*=,/=,%=

赋值运算符=右边优先级高,限制性右边的表达式

i+=10,和 i = i+10一样吗

不一样,相似,本质完全不一样。

重要的语法机制:使用扩展赋值运算符的时候,永远不会改变运算结果的数据类型。

byte i = 1;

i +=1;//该代码等同于强制转换i = (byte)(i + 1);

注意:如果所+数值结果超出原有变量数据类型的范围,将会损失精度。

条件运算符(又叫三目运算符或者三元运算符)

        语法格式:

                布尔表达式?表达式1:表达式2

执行原理是:

布尔表达式的结果为true时,表达式1的结果就是整个运算符的结果

布尔表达式的结果为false时,表达式2的结果就是整个运算符的结果

注意:条件运算符不能单独为代码语句,需要表达式值数据类型相同类型的变量接受

运算符优先顺序:

        算术运算符>关系运算符>逻辑运算符>赋值运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值