美文网首页
#Java# 学习笔记-MOOC零基础学Java语言-翁恺

#Java# 学习笔记-MOOC零基础学Java语言-翁恺

作者: LeeMin_Z | 来源:发表于2018-07-02 21:22 被阅读29次

    课程小结:

    1. 适合零基础学习,如果之前学过python或者其他数据结构,过一下PPT就好了。遇到不会的再回去看视频。
    2. 里面都是代码片段,不是完整的可运行代码,适合入门练手。感觉还是java8文档代码比较适合跟着练。(但可以直接在jshell写片段)

    String 同一个还(same one)仅是值相同(same value)

    以下MOOC的说法不是最新的java8,java8/java10不一样了。赋值也是新建了内存赋值。

    ==input.equals()都是判断包含的字符串是否一样,不判断是否同一个东西/内存位置。

    //java8
    class test2{
        public static void main(String[] args) {
            String a = "Bill";
            String b = a ;
            a = "bill2";
            System.out.println(a);
            System.out.println(b);
        }
    }
    
    //output 
    bill2
    Bill
    this is test 2
    

    java8做下javap 反汇编,可以看到test2 是 aload_1,就是将a的值赋给b,然后重新存储astore_2。而test3 是新建了内存空间,并且存入值“Bill”。

    JAVAP.png

    以前的java版本

    以下存档一个java String类型的 a)判断是否同一个东西(有点像C的指针指向的内存,也有点像python指向同一个数组)。 b)判断String值是否相同。

    value.png

    这样是指向同一个内存块中的值。

    compare.png
    //code for same one thing 
    class test2{
        public static void main(String[] args) {
            String a = "Bill";
            String b = a ;
            System.out.println(a);
            System.out.println(b);
        }
    }
    
    //code for same value, different var 
    class test3{
        public static void main(String[] args) {
            String a = "Bill";
            String b = "Bill" ;
            System.out.println(a);
            System.out.println(b);
        }
    }
    

    String小结

    最好比较是否值相同或同一个东西,不要用"==",这个在不同版本的界定好像有点模糊,最好还是用string专用的对比工具x.equals()


    学习资料:
    中国大学MOOC 《零基础学Java语言》翁恺老师
    6.3 节 字符串

    2018.7.2

    相关文章

      网友评论

          本文标题:#Java# 学习笔记-MOOC零基础学Java语言-翁恺

          本文链接:https://www.haomeiwen.com/subject/rmfruftx.html