java基础3

数组

数组定义
数据类型[] 数组名;
int[] arr;

数组初始化
为数组每个元素开辟一块空间,并赋予初始值
静态初始化:给出初始值,由系统给定长度
int[] arr = {1, 2, 3};
动态初始化:给出长度,由系统给定初始值
数据类型[] 数组名 = new 数据类型[数组长度]
int[] arr = new int[3]
输出数组名地址 System.out.println(“arr:”+arr);
输出数组值 System.out.println(“arr[0]:”+arr[0]);

java内存分配

java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片内存空间都有特定的处理数据方式,和内存管理方式。

-栈 存储局部变量(定义在方法中的)
-堆 存储new出来的东西,对象,数组
-方法区
-本地方法区(系统相关)
-寄存器(给CPU使用)
堆内存使用完会在垃圾回收器,空闲回收
栈中局部变量使用完立即回收

如果两个数组拿的都是一个堆内存的地址,任何一个数组对堆内存修改,另一个访问也是修改过的。

数组练习

选手打分

/* 需求:有六个评委为参赛选手打分,分数为1-100分,选手最后得分为,去掉一个最高分,一个最低分,最后四个分数的平均分。*/
public class ArrayTest{
	public static void main(String[], args){
	int[] arr = new int[6];
	scanner sc = new Scanner(System.in);
	for(int x=0; x<arr.length; x++){
		System.out.println("请输入第"+(x+1)"评委给出的分数:")int score = sc.nextInt();
		arr[x] = score;
	}
	int max = arr[0];
	for(int x=1; x<arr.length; x++){
		if(arr[x]>max){
			max = arr[x];
		}
	}
	for(int x=1; x<arr.length; x++){
		if(arr[x]<min){
			min = arr[x];
		}
	}
	int sum = 0;
	for(int x=0; x<arr.length; x++){
		sum += arr[x];
	}
	int avg = (sum - max -min)/(arr.length - 2);
	System.out.println("该选手的最终成绩为"+avg)
}

兔子问题

/*要求:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月又生一对兔子,问第二十个月兔子是多少?*/
public class ArrayTest2{
	public static void main(String[] args){
		int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;
        for(int x=2; x<array.length; x++){
        	arr[x] = arr[x-1] + arr[x-2];
        }
		System.out.println("第二十个月的兔子对数是:"+arr[19]);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值