2.控制语句和数组

 

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 命令输出可以看出,对于集合容器是输出是通过迭代来实现的。

 

原文地址:https://www.cnblogs.com/swifthua/p/7679127.html