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,由此得出最好不要用浮点数进行数值比较。

以上问题均为没认真学习Java基础导致的对基础知识不熟悉,其中有众多疏漏,需要持续补充

posted @ 2021-04-20 19:13  小豆芽hj  阅读(84)  评论(0)    收藏  举报