Java基础中因自己不认真学导致不熟悉的知识点(一)
Java基础中自己经常忘的知识点(一)
1.三元运算符
condition ? data1 : data2
三元运算符:如果?之前条件结果为true,这个式子的值为data1。如果?之前条件结果为false值为data2。
s示例:

2.为什么使用equqls
在比较两段字符串时,不用==,需要用equals。
因为==比较的是两段字符串的内存地址,而不是直接比较内容;而 equals 是直接比较内容。
示例:
public class Main {
public static void main(String[] args) {
String a = new String("Orange");
String b = new String("Orange");
if(a == b){
System.out.println("地址");
}
if(a.equals(b)) {
System.out.println("内容");
}
System.out.println("==========================");
String c = "Orange";
String d = "Orange";
if(c == d){
System.out.println("地址");
}
if(c.equals(d)){
System.out.println("内容");
}
}
}
运行结果:

由示例可知,String b = new String("Orange");这种形式可以使两个字符串有相同的内容但地址却不同,用=会使内容相等的字符串地址也相同。
3.最好避免使用浮点数进行数的比较(待补充)
在使用浮点数的时候,数值总会超出预期,现在我还不了解到底为什么会存在这种误差。尽管浮点数有“舍入误差”的机制,但丝毫不影响他的误差。
示例:
public class Main {
public static void main(String[] args) {
float a = 123234534;
float b = a + 1;
if(a == b){
System.out.println(true);
}
}
}
运算结果:

可以看出 b = a + 1,但计算机判断时却认为 a == b,由此得出最好不要用浮点数进行数值比较。

浙公网安备 33010602011771号