一、笔记内容概述
函数-定义、函数-格式、函数-细节-void、函数-细节-错误格式、函数-细节-定义思想错误、函数-两个明确、函数-内存加载过程、函数-重载、数组-概述、数组-定义、数组-内存空间划分、数组-栈内存-堆内存、数据常见问题。
二、常用内容介绍
- 1.编写函数体时,两个明确
a.这个功能的结果是什么?(其实就是在明确函数的返回值类型)。
b.这个功能的实现过程中是否需要未知内容参与运算?(其实就是在明确参数列表)。
c.函数返回值类型与参数列表中的参数类型没有关系。
public static double add(int a,int b)
其中double的定义与参数列表int的定义没有直接关系。
- 2.函数的重载
定义:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
好处:
方便于阅读,优化了程序设计。
实现原理:
函数的功能一样,仅仅是参数运算的未知内容不同时,
可以定义多函数,却使用统一函数名称,这样方便阅读。
在调用时,虚拟机通过参数列表的不同来区分同名函数。
细节:
重载与返回值类型无关,只看参数列表。
- 3.栈内存和堆内存
a.栈内存:
用于存储局部变量,当变量所属的作用域一旦结束,所占空间会自动释放。
b.堆内存:
数组和对象,通过new方式建立的实例都存放在堆内存当中。
每个实体都有内存地址值。实体中的变量都有默认的初始化值,
根据类型的不同而不同。整数类型是0,小数类型是0.0或者0.0f
boolean类型值是false,char类型是'\u0000'
如果将数组的引用实体设置为null,也就是实体不再被使用,那么会在
确定的时间内被垃圾回收器回收。
三、经典示例及讲解
- 1.理解嵌套for循环的特点
package com.date4;
/**
*打印效果:
* * * * * *
* * * * *
* * * *
* * *
* *
*/
public class Demo1 {
public static void main(String[] args){
/**
*需求:分为两部分进行打印,先打印空格,在打印*
*/
//1.控制外循环次数
for(int i=0;i<5;i++){
for(int j=0;j<i;j++){
System.out.print(" ");
}
for(int z=0;z<5-i;z++){
System.out.print("*"+" ");
}
System.out.println();
}
}
}
- 2.理解break和continue的使用
package com.date4;
/**
*break和continue的使用
*1.break中止循环,离它最近的那个循环,对外循环没影响
* continue,是跳过这次循环,继续下个循环。
*2.这两个语句单独存在时,下面都不可以有语句,因为执行不到。
*
*/
public class Demo2 {
public static void main(String[] args){
method2();
}
private static void method1(){
for(int x=0;x<3;x++){
for(int j=0;j<4;j++){
System.out.println("x="+x);
break;
}
}
}
private static void method2(){
for(int x=0;x<3;x++){
if(x==1) continue;
System.out.println("x="+x);
}
}
}
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!