编程基础

作者: 想象不到2019 | 来源:发表于2020-04-23 18:21 被阅读0次

    整数的数字常量默认是int
    小数常量默认是double

    // 规范写法,避免了编译器默认的类型转换
    long a = 33L;
    long b = 44l;
    float f1 = 333.33F;
    float f2 = 444.44f;
    

    int[] a = new int[]{1,2,3};
    int[] b = new int[]{1,2,3};
    a 和 b 存储的是数组的首地址,所以 a != b
    数组的具体值也是存储在堆上

    程序最终都是一条条的指令
    如果分支比较多,switch效率比if/else效果高
    跳转表,存储了条件值以及要跳转的地址
    跳转表可以使用二分查找,来提高效率
    如果值是连续的,跳转表还可以特殊优化为一个数组

    可变长度的参数

    // 可变长度的参数会转换为数组参数
    public static int max(int min, int ...a) {
    }
    

    递归是有开销的
    异常类型 java.lang.StackOverflowError
    栈一般是从高位地址向地位地址扩展
    栈底的内存地址是最高的

    递归函数每调用一次,都要执行入栈一次,直到有返回值,
    才会一个一个出栈
    所以,一旦递归调用层次过大,超出栈顶,就会报异常java.lang.StackOverflowError

    相关文章

      网友评论

        本文标题:编程基础

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