编程基础

整数的数字常量默认是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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础 .NET概述 参考:http://www.cnblogs.com/yplong/p/3279934.html...
    donite阅读 1,727评论 0 8
  • C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...
    小辰带你看世界阅读 1,014评论 0 6
  • 注释 代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重...
    青貊阅读 360评论 0 0
  • C语言是面向过程的,而C++是面向对象的 第一章概述 1. C语言的特点 语言简洁、紧凑,使用方便、灵活。共有32...
    小辰带你看世界阅读 1,553评论 0 1
  • 标识符与关键字 标识符就是一个名称,用来标识JAVA程序中的变量名、类名、成员方法名、接口名等。 关键字又称为保留...
    Dafanzi阅读 362评论 0 0

友情链接更多精彩内容