java笔记day04

Java语言基础

  1. for循环嵌套练习(具体见java_practice的代码)
打印:
一、
 ****
 ***
 **
 *
二、
  *
  **
  ***
  ****
三、
  4321
  432
  43
  4
四、九九乘法表
  1. 其他流程控制语句
  • break :跳出,只能作用于switch语句和循环语句。(一般用if语句控制break)

break如何跳出指定循环?①将break放到指定循环下;②给for循环命名,break指定名称。

outer:for(int x=1;x<6;x++)
		{
			inner:for(int y=1;y<x;y++)
			{
				System.out.print(x);
        break outer;//直接跳出外循环,这里break inner=break;因为break默认跳出最近的循环
			}
			System.out.println("");	//这里加个break inner;无法运行,因为超出inner循环的范围了		
		}
  • continue:继续,作用于循环结构,(结束本次循环,继续下次循环)continue也可以指定循环名称。
for(int x=0; x<9; x++)
{
    if(x%2==0)
      continue;//满足if语句的条件,则不再执行continue 后面的语句
    System.out.println("x="+x);
}//最后输出结果为打印奇数

函数

定义

在java中函数即方法

格式

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,···){ 执行语句;return 返回值;}
Tips:

  • 函数名由多个单词组成时,第一个单词小写,其余都大写表示
  • static为修饰符,对应public static void
  • 特殊情况:功能没有具体的返回值。当出现这种情况时,返回值类型用void表示,且函数中的return语句可以省略
  • 函数中只能调用函数,不能定义函数
  • 除非是必要,定义的函数里面不要打印输出,输出交给调用者处理

练习

需求一:定义一个功能,判断两个数是否相等

需求二:定义一个功能,获取两个整数中较大的那个数

需求三:根据考试成绩获取分数对应的等级

内存加载

程序中要运行的函数加载到栈中,最先加入的是主函数main(),放在栈底,然后按照函数调用顺序依次加载,由栈底往上叠加,最上面的最先执行,执行后的函数将其从栈内取出,若再次调用,则再次加入,直至栈内函数全部运行完毕。(类比于弹匣和子弹的关系)

函数重载

什么叫函数的重载?

  1. 两个及以上的函数属于同一个类;
  2. 这些函数都同名;
  3. 各个函数的参数个数不同或参数类型不同;
  4. 函数重载和返回值类型无关。

数组

定义

同一种类型数据的集合,其实数组就是一个容器。

元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
int[] ar = new int[3];
System.out.println(ar[1]);
//输出为0,因为数组ar中的元素还没有被赋值,默认值为0
内存空间划分
  1. 寄存器(供CPU使用)
  2. 本地方法区
  3. 本地区
  4. 栈内存
  5. 堆内存
栈内存

存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放。局部变量都在方法里,所以方法先进栈。

堆内存

存储的是数组和对象(数组就是对象)凡是new建立的,都存在堆中。堆存实体,实体是存储多个数据的地方。

特点:

  • 每一个实体都有首地址值
  • 堆内存中的每一个变量都有默认初始值,根据类型的不同而不同,整数是0,小数是0.0或0.0f,boolean false,char ‘\u0000’(\u表示unicode码表,四个0表示两个字节)
  • 垃圾回收机制

如下图所示:首先,new在堆内根据数据类型和元素个数创建一个实体,堆给这个实体安排一个内存地址0x0045,然后将该地址赋予栈中的数组变量arr,arr就根据该地址对实体进行操作,将null赋值给arr后,无法再进行操作。
数组的存储过程
在这里插入图片描述
可能引发的问题:

int[] arr = new int[3];
System.out.println(arr[3]);
//ArrayIndexOutOfBoundsException:访问数组中不存在的角标
arr = null;
System.out.println(arr[0]);
//NullPointerException:引用型变量没有任何实体指向,还在用其操作实体。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值