Day 03开篇:
"今天是java基础主要学习了强制转换,运算符中的算术运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,等。 "
知识点反馈:
今天的知识点总结的思维导图
一.强制类型转换
1.注意:
(1)boolean类型不参与任何形式的转换。
(2)基本数据类型当中,是没有字符串类型的,字符串类型是一个类属于引用数据类型【除了4类8种基本数据类型,其余的都引用数据类型】
2.怎么去定义一个字符串?
String str =new String("");
String str = "内容";
String也是不参与任何形式的转换的但是,String可以通过”+”的运算符,将任何数据都拼接成为一个字符串内容.
如果左边的数据是字符串,则后面的数据全部都是字符串
字符串和任意数据任何形式的拼接,其结果都是字符串,只不过要明确字符串是在前还是在后。
3.面试题:
(1)请问下面的代码有没有问题?
double d = 12.3567;
float f = d;
Double占8个字节,而float占用4个字节,4个字节的空间不能存储8个字节的空间,可能会造成数据溢出,JVM不允许,需要强制转换
(2)请问下面的代码有没有区别?
Float f1 = (float)12.345;
Float f2 = 12.345F;
有,f1是在声明变量的时候,将一个double数据类型,强制的转换为float数据类型
F2是在声明变量的时候,就告诉JVM这是一个明确的float的类型
(3)byte b1 = 3 ,b2 = 4 , b;
b = b1 +1;
b = 3 + 4;
哪里出问题?
b = b1 +1;有问题,因为byte的数据类型一旦参与任何形式的运算会直接的提升为int类型
b = 3 + 4;为什么没有问题?常量是先运算,后赋值。b = 7;
默认的常量数据类型为int类型,为何上面不需要强转?
7是常量,在Java编译的时候会先检查这个常量是否在byte的范围之,内如果在范围之类则不需要转换,如果超过byte,则上一级去转。
短整型:short
整型:int
长整型:long
二.运算符
其实就是多个操作数进行拼接的一个运算符号
三.算数运算符
1.注意:
(1)在Java当中,整数相除只能得到整数,需要浮点数时需要强制类型转换或者将其中任意一位作为浮点数即可。
(2)浮点数不要进行太精确的运算,因为目前的cpu没有办法处理高精度运算
2.++,--的运用:
(1)单独使用:无论++/--是在前面和后面,其结果是自身+1 -1
(2)参与运算使用:
<1>放在操作数的前面:
先进行自增或者自减,然后再去将运算后的结果进行赋值
<2>放在操作数的后面:
先将操作数进行赋值,然后在自增或者自减
3.常量无法使用自增自减
四.赋值运算符
面试题:
short s = 1;s = s + 1;
short s = 1;s += 1;
上面的代码有没有问题,如果有哪个有问题,为什么??
short s = 1;s = s + 1;有问题
这个出现问题的原因是因为short类型如果参与运算会直接的提升为int类型,此时需要进行强制类型转换
为什么short s = 1;s += 1;没有错误呢?
我们潜意识里就认为s += 1等价于 s = s + 1,但是要注意,扩展运算符是java本身就支持的一种人家在设计的时候就已经考虑好这个问题了,解决的方案是 s = (short)(s + 1),其实也就是扩展运算符隐藏了一个强制类型转换的问题。
五.比较运算符(开发当中用的比较多的一个运算)
1.注意:比较运算的,不管你写多简单或者多复杂,一定保证结果是boolean类型,否则非法
2.一定要记住,不要将== 写成 =
六.逻辑运算符
1. 逻辑运算符,不管你写的是简单还是赋值,其需要连接的两边表达式都必须是boolean类型
来源:CSDN
作者:Andia
链接:https://blog.csdn.net/weixin_45406656/article/details/104149547