java程序设计语言基础,扼要复习


    归类
        类型检查
            编译时:C,C++,Java,Go
            运行时:python,Perl,JavaScript,Ruby
        运行/编译
            编译为机器代码运行:C,C++
            编译为中间代码,在虚拟机上运行,java,C#
            解释执行:Python,Perl,JavaScript
        编程范式(programming paradigm)
            面向对象:Java,C#,C++,Scala
            面向过程:C,vb
            函数式:Hashkell

    数据类型(java)
        boolean,byte,char
        short,int,long,float,double
        String,Enum,Array
        Object...

        整数类型
            32位int的范围?
                -2^31 ~ 2^31-1

            补码
                取反加1
                例:-1
                    0000…1 -> 取反 -> 1111…0 -> +1 -> 1111...1
                1000…0        -2^31
                1111…1        -1
                0000…0         0
                0111…1        2^31-1

                    -1    +         1=              0
                1111…1    +    0000…1    = 0000…0
                唯一表示0,没有+0,-0
                总共表示2^32

    浮点数与定点数
        浮点数 (+/-)1.xxx*2^y
            符号位|指数部分|基数部分
            64位double范围:+/-10^308
            64位double精度:10^15
        浮点数比较
            a==b?
            Mmath.abs(a-b)<eps?
            使用BigDecimal算钱

    primitive type vs Object
        primitive type(值类型):int,long,float..
        Object(引用类型):Integer,Long,Float,String...
            值类型,用a==b判断相等
            引用类型,用a==b判断是否为同一个Object
            用a.equals(b)[这个a需要判断是否为null],或Objects.equals(a,b)判断是否相等

    Boxing and Unboxing
        Integer a = 2; //boxing
        Integer b = new Integer(2); //显示boxing
        int v = a.intValue(); //unboxing

        new Integer(2) ==2? y
        new Integer(2)==new Integer(2)? n
        Integer.valueOf(2)==Integer.valueOf(2)? y
        Integer.valueOf(1000)==Integer.valueOf(1000)? n 由系统决定,可能相等,可能不想等
        Integer.valueOf(2).intValue()==2? y
        new Integer(2).equals(new Integer(2))? y 

猜你喜欢

转载自blog.csdn.net/weixin_42898914/article/details/85078529