1.三种控制结构
顺序 选择 循环
2.Math.random()是令系统随机选取大于等于0.0且小于1.0的伪随机double值
3.switch中的表达式的结果值必须是整数、字符、或枚举量值
4.switch case语句:从匹配处顺序执行,直到遇到break或结束
5.switch语句中,default可以不写
6.循环结构模拟实现了现实世界中的形式逻辑,辩证逻辑和因果逻辑
7.循环结构的四种内部结构 for foreach while do while
8.while是先判断再执行,do while是先执行再判断
9.break和continue的区别
break:忽略该语句之后的语句,跳出循环体,执行循环体下面的语句
continue:忽略该语句之后的语句,执行循环体的下一次循环
10.return是在定义方法时使用;return的作用是返回这个方法执行后的结果,成功时返回什么值,失败时又返回什么值;return的返回值类型可以自定义
11.按值传递和按引用传递
java中,参数按值传递,传递的是值得拷贝,传递后互不相关
int a=3;
t.test(a);
java中,按引用传递,传递的是引用的地址,也就是变量所对应的内存空间的地址(传递前后都指向同一个引用,也就是同一内存空间)
A a=new A();
t.test(a);
12.形参和实参
定义函数void add(int a,int b)这里的a,b就是形参(定义时使用)
函数调用add(1,2),这里的1,2就是实参(调用时使用)
形参参数是没有赋值的变量(定义形参时,不一定要写变量类型)
实际参数是有赋值的变量
13.方法重载是指一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数;返回值可以相同可以不同(所以,不能使用返回值来区分方法重载)
14.递归的优缺点
优点:代码更简洁清晰,可读性更好
缺点:由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多
15.java语言的数组元素类型必须在编译期指定,数组大小可以运行时指定,但一经指定不可改变
16.数组是引用类型,也是对象,数组的类型可以为任意类型,数组的下标(索引)是[0,n-1]
17.数组中的元素就像对象中的成员变量一样,初始化方式也一样
18.数组中的三种初始化方式:
1.默认初始化:int[] a=new int[10];
2.静态初始化:int[] a={1,2,3}
3.for循环动态初始化
19.二维数组的正确定义:
int a[][]=new int[3][3];
int[][] a=new int[3][3];
int[][] a=new int[2][];
20.可变参数(java1.5新特性)
适用于参数个数不确定,类型确定的情况,java把可变参数当作数组处理
特点:
---只能出现在参数列表最后
---位于变量类型和变量名之间,前后有无空格都可以
---调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法中以数组的形式访问可变参数
21.main方法是java程序应用程序的入口;给main传递的参数只能是String类型字符串;传参有两种方式:(1)从命令行传参 (2)用IDE开发工具传递
22.foreach实现原理
for-each 主要用于集合和数组元素的遍历,对于它的原理是通过编译器一种隐藏方式实现的,也就是在源码中不能直接看到它的实现代码,基于理论分析可以分为数组实现和集合实现两种。
数组 for-each 实现:通过 javap 命令可以看到,它的实际执行就是循环遍历数组。(如
果不确定,可以通过 for 循环的方式对照一下)。
集合 for-each 实现:必须实现 Iterable 接口,这个接口中只定义了一个 Iterator<T> iterator()方法,同样通过 javap 命令输出可以看出,对于集合容器是输出是通过迭代来实现的。