【JavaSE笔记】Java常见细节性问题(二)

来源:互联网 发布:公务员 网络课程 攻略 编辑:程序博客网 时间:2024/05/16 08:02

1. 跳转控制语句

break 、continue 、return

a. break:

i. 在switch语句中使用
ii. 循环语句中跳出当前时使用
1) 跳出单层循环—>跳出
2) 跳出多层循环—>带标签的语句跳出
例:
wc:for(int x = 0 ; x < 3 ; x ++){nc:for(int y = 0 ; y <4 ; y++){if(y==2){break nc ; //控住内层循环跳出break wc;//控制外层循环跳出}}}


b. continue:

i. 在循环语句中使用
ii. 跳出当前循环,进入下一次循环(break和continue区别)

例:

for(i=1;i<=10;i++){if(i%4==0)break/continue;System.out.println("Hello World");}§ break:输出3次§ continue:输出8次


c. return:

i. 在方法中使用,返回方法的返回值类型的值
ii. 遇见它,方法结束

2. 循环语句

a. do_while 和 while和 if 的区别:

i. do_while循环语句:循环至少执行一次


ii. while 和 for:
1) 先判断条件语句是否成立,成立才执行循环.
2) 如果循环结束,还想使用控制的那个变量,那么必须使用while循环.
3) 从内存的角度来说,使用for循环好处大于while循环.
4) 一般应用:知道范围用 for ;不明确循环次数用 while.

b. 死循环的格式:

i. while(true){
语句;

}


ii. for(;;){
语句;
}

3. 方法:存在独立功能的代码块

a. 两个明确:

i. 明确返回值类型(如 void、int、char、boolean…)
ii. 明确参数类型

b. 如何调用:针对有返回值类型的方法的调用

i. 单独调用:没有意义,没有输出;
ii. 输出调用:可以直接得到结果,无法对返回结果进行下一步操作
iii. 赋值调用:可以对结果进行下一步操作
例:
public static void main(String[] args){int a = 10 ;//实际参数int b = 20 //写一个功能:求和的功能//1)单独调用sum(a, b) ;//2)输出调用System.out.println(sum(a, b));//3)赋值调用int result = sum(a, b) ;System.out.println("result:"+result);}public static int sum(int a,int b){return a + b ;}

c. 方法定义的注意事项:

i. 方法和方法是平级关系,不能将一个方法写到main主程序里
ii. 方法不调用不执行
iii. 在main方法中调用其他方法时,实参不用带数据类型 (如 Fun(int a))
iv. 方法定义完毕:(有返回值类型的方法:返回具体的结果:否则不写return:编译不通过)

d. 方法重载(Overlook)

在同一个类中,出现同名的方法名,参数列表(参数个数,参数数据类型)不同,它与返回值没有关系
★方法重写(Override)(面向对象)

4. 数组:

a. 数组定义:

数据类型 [ ] 数组名;
数据类型 数组名 [ ];(C 、C++)

b. 初始化:

i. 动态初始化:定数组的长度,它的元素值由系统默认分配
int [ ] a= new int [10];
int a [ ]= new int [10];

ii. 静态初始化:指定的数组的具体元素,数组长度由系统默认分配

1) 注意事项:
数组的初始化:不能动静结合
int [] a = new int [3]{1,2,3};//错误的!!!

c. 在java中经常会出现的两种异常

运行时期异常:Runtime Exception
i. java.lang.ArrayIndexOutOfBoundsException:数组角标越界异常
出现这个异常的原因:访问了数组中不存在的索引
ii. java.lang.NullPointerException:空指针异常
出现这个异常的原因:数组的对象为空,都不执行内存地址值,还要输出元素.


5. Java中内存分配

为了提高程序效率,对数据进行不同空间的分配

a. 具体划分为5个内存空间:

栈、堆、方法区、本地方法区、寄存器
i. 堆内存的特点:
1) 每一个new出的东西都会在堆内存去分配空间都有地址值
2) 每个变量都有默认值
byte,short,int,long 0
float,double 0.0
char \u0000
boolean false
引用类型 null
3) 使用完毕就成为垃圾,会在gc(垃圾回收器)空闲的时候回收
ii. 栈内存的特点:
1) 先进后出。进栈:压栈,出栈:弹栈
2) 栈内存中的全局变量一旦调用完毕,输出完毕就会立即释放内存













原创粉丝点击