志之所趋,无远弗届,穷山距海,不能限也。
- 志向所趋,没有不能达到的地方,即使隔着重山,相距江海,也是不能限制的
- 常有人嘲笑Java基础,各种框架名词,新潮的框架,侃侃而谈,我想说:做好自己,默默前行,打下扎实的基础,方能无远弗届。
在此和Java学习者们,学习、回顾、重温、总结,尽力涵盖知识点,祝你在虚心求学的路上,风雨兼程。
1基础数据类型的强制转换
- 在适当的时候,Java会将一种数据类型自动转换成另一种。例如,假设我们为某浮点变量赋以一个整数值,编译器会将int自动转换成float。类型转换运算允许我们显式地进行这种类型的转换,或者在不能自动进行转换的时候在强制进行类型转换。–《Java编程思想》
package arithmeticOperators;
/**
* @author:180285
* @date: 2018/6/12 18:57
*/
public class BasicTypeConversion {
public static void main(String[] args) {
int a = 5;
double b = 6L;
//显式强转
int c = (int) (a+b);
//隐是转换
long d = a+b;
System.out.println("c:" + c);
System.out.println("d:" + d);
}
}
Console result:
c:11
d:11.0
再看例子
package arithmeticOperators;
/**
* @author:180285
* @date: 2018/6/12 18:57
*/
public class BasicTypeConversion {
public static void main(String[] args) {
int a = 10;
double b = 3;
int intC = (int)(a/b);
double doubleC = a/b;
int intD = (int) (a+b);
double doubleD = a+b;
System.out.println("intC:" + intC);
System.out.println("doubleC:" + doubleC);
System.out.println("intD:" + intD);
System.out.println("doubleD:" + doubleD);
}
}
在代码int intC = (int)(a/b);
中,强制转换丢失了小数点之后的精度。
Console result:
intC:3
doubleC:3.3333333333333335
intD:13
doubleD:13.0
题目:
(1)在上述程序中,有代码int c = (__) (a+b);填写完成。
(2)int c = (int) (a+b);
和long d = a+b;
同样是类型转换,有什么不同?
答:前者是显式强转,也叫做窄化转换,就是说,将能容纳更大数据信息的类型转换成无法容纳name多信息的类型,视类型范围的限制,可能面临数据丢失的危险(小数、超出类型范围),此时,编译器会强制我们进行类型转换。后者隐式转换,也叫扩展转换,基础数据类型会默认向上转型,新类型肯定能容纳原来的信息,不会造成任何信息的丢失,是安全的。例如int a = 1; long d = a;
int类型转long类型,编译器默认向上转型。
4求余数
package arithmeticOperators;
/**
* @author:180285
* @date: 2018/6/12 19:29
*/
public class Remainder {
public static void main(String[] args) {
//%取余数,又叫取模
//5除以2,余1
int i = 5;
int j = 2;
System.out.println("求余数:"+ i % j);
}
}
题目:
(1)求余是几目运算符,答:取余运算符是%是一个双目运算符。
(2)两个整数求余的过程什么,答:java的取余运算规则如下
整数求余规则:
a%b=a-(a/b)*b
5%3=5-(5/3)*3=2
5%-3=5-(5/-3)*-3=2
-5%3=-5-(-5/3)*3=-2
-5%-3=-5-(-5/-3)*-3=-2
(3)如果是两个浮点数求余呢?答:浮点数则采用的规则为其实完全符合a%b=a-(a/b)*b
规则
浮点数求余规则:
a%b=a-(b*q),这里q=int(a/b)
5.2%3.1=5.2-1*3.1=2.1
5.2%-3.1=5.2-(-1)*(-3.1)=2.1
-5.2%3.1=-5.1-(-1)*3.1=-2.1
-5.2%-3.1=-5.1-(-1)*(-3.1)=-2.1
下一篇:三年Java五年模拟—3 算数操作符(3)自增自减、计算BMI习题
上一篇:三年Java五年模拟—1 算数操作符(1)基本的加减乘除运算、Scanner使用