编程基础
编程基础
数据类型
数组
1 | int[] arr0 = {1,2,3}; |
逻辑运算
与&
或|
非!
异或^
短路与&&
短路或||
条件和循环
条件
1 | if( 条件语句 ) { |
枚举(了解)类型也可以使用swich语法
1 | switch( 表达式 ) { |
循环
1 | while ( 条件语句 ){ |
1 | do { |
1 | for(int i = 0; i < arr.length; i++){ |
1 | for(int i : arr) { |
函数
可变长度参数
1 | public static int max(int min, int ... a) { |
函数重载,重复命名的函数,传入的参数类型或者个数有不同实现不同的功能。
函数的调用原理
栈的概念
计算机使用栈来存放函数调用过程中需要用到的数据,包括参数、返回地址、函数内的局部变量等。main函数的相关数据放在栈的最下面,后调用的函数在上,栈遵循先入后出,需把栈上方的函数调用后出栈后再调用栈下方的函数。
堆的概念
数组和对象的实际的内容一般是分配在堆上,但存放地址的空间是分配在栈上的。当java堆中的对象从新生代到老年代,当某对象失去引用对象时,就会被java的垃圾回收gc清理。垃圾收集器
递归栈溢出
函数代码虽然只有一份,但是在执行过程中,每调用一次,就会有一次入栈,生成一份不同的参数、局部变量和返回地址,直到栈溢出。
char的真正含义
char本质上是一个固定占用两个字节的无符号正整数,对应于Unicode编码,用于表示那个Unicode编码对应的字符。
程序编译和链接
从java源代码到运行程序有编译和链接两个过程。
编译是将源代码文件变成.class的一种字节码文件,这个工作一般由javac命令完成。
链接是在运行是动态执行的,.class文件不能直接运行,运行的是java虚拟机,虚拟机解析.class文件,转换为机器能识别的二进制代码,然后运行。链接就是根据引用到的类加载相应的字节码并执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 杨小白の博客!
评论