Java基础(七)——流程控制与数组

今日内容:
1.流程控制
2.数组的使用

流程控制

以最简单的实例演示熟知的流程控制

package com.stx.practice;


public class AddOperation {
    /*三种方式求1到一百的和*/
    public static void main(String[] args) {
        // method_For();
        // method_While();
        method_DoWhile();
    }

    // for循环
    public static void method_For(){
        int sum = 0;
        String str = "";
        for (int i=1;i<=100;i++){
            sum += i;
            str = str + i + "+";
        }
        str = str.substring(0,str.length()-1);
        // String substring(int beginIndex, int endIndex)
        //返回一个字符串,该字符串是此字符串的子字符串。 (相当于从左边的索引截取到右边的索引)

        System.out.println(str+"="+sum);
    }

    // while循环
    public static void method_While(){
        int n = 1;
        int sum = 0;
        String str = "";
        while(n<=100){
            sum += n;
            str = str+n+"+";
            n++;
        }
        str = str.substring(0,str.length()-1);
        System.out.println(str+"="+sum);
    }

    // dowhile循环
    public static void method_DoWhile(){
        int sum = 0;
        int i = 1;
        String str = "";
        do {
            sum += i;
            str = str + i +"+";
            i++;
        }while (i<=100);

        System.out.println(str.substring(0,str.length()-1)+"="+sum);
    }
    
}
增强for循环------foreach

更便于遍历集合和数组
注:使用foreach循环迭代数组时,并不能改变数组元素的值,不要对foreach的循环变量进行赋值
错误示例:
在这里插入图片描述
foreach循环中的循环变量只是一个临时变量,它只是保存了数组元素的值。

数组

数组引用变量是访问堆内存中数组元素的根本方式
如果要访问这个数组要使用p[index]这种方式(p:引用变量)
在这里插入图片描述
为什么会有栈内存和堆内存之分?

在一个方法执行时,每个方法都会建立自己的内存栈,方法中定义的变量都会逐个放在这个栈内存中,一单方法结束调用,那么这块栈内存便会自己销毁。
创建一个对象时,对象将被保存到运行时的数据区中(这个数据区就是堆内存),堆内存中的对象不会随着方法的结束而被销毁,方法结束后,还可以被其他的引用变量引用。当一个对象没有被任何引用变量引用时,它才会等待回收。

代码讲解

int[] a = {5,7,20}
// 数组a的长度是3
int[] b = new int[4];
// 数组b的长度是4
b = a;
// 因为a和b都是int[]类型,所以可以将a赋值给b

定义并初始化一个数组后,在内存中分配了两个空间,一个用于存放引用变量(栈内存),一个用于存放数组的元素(堆内存)
如上代码,就产生了4块内存,首先创建栈内存存放引用变量a,b,在堆内存中也创建了两块内存区,分别存储a,b引用所指向的数组本身
在这里插入图片描述
当语句 b = a 执行后,b的引用变量就会指向a的内存地址,那么b的元素(4个0)就会闲置,失去了引用就会等待回收。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值