面试题.01
1. 浮点型精度丢失?怎么解决?
import java.math.BigDecimal;
public class Test_MST01 {
public static void main(String[] args) {
float f1 =2.3f;
float f2 =2.5f;
System.out.println(f1-f2);
BigDecimal f3=new BigDecimal("555.55");
BigDecimal f4=new BigDecimal("555.56");
System.out.println(f3.subtract(f4));
}
}
为什么浮点型精度会丢失?
计算机识别的是二进制的形式,对于小数使用二进制不能够精确表示,只能接近值.
解决方式:
可以使用BigDecimal ,替换掉浮点类型,定义完浮点类型变量后再通过BigDecimal 类提供的算术方法进行操作,建议使用参数为String类型的构造方法.
2. int的大小?
int占4个字节 32位(1字节=8位) 范围: -2的31次方到+2的31次方-1
int 类型变量数值最大是2147483647(10位)
3. byte的大小?最大值+1的结果会是怎样?
范围: -128 ~ 127
public class Test_MST02 {
public static void main(String[] args) {
byte x=-128;
System.out.println(--x);
byte y=127;
System.out.println(++y);
}
}
4. int 和 char是否可以相互转换?
public class Test_MST03 {
public static void main(String[] args) {
int num=65;
char c=(char) num;
System.out.println(c);
char c2='A';
int num2=c2;
System.out.println(num2);
char c3='A';
String string=c3+"";
System.out.println(string);
System.out.println(string.getClass());
}
}