day12-java

文章展示了Java中数组的内存分配和使用,包括初始化和遍历。同时,它涵盖了运算符优先级的示例,特别是针对评委打分场景。文章还讨论了方法调用的过程,并提及了如何在计算平均分时忽略最高和最低分。此外,文章还涉及了二进制、八进制和十六进制之间的转换以及计算机中的补码表示法。
摘要由CSDN通过智能技术生成

数组在内存分配图

public class Demo02 {
    public static void main(String[] args) {
        int[] arr1 = new int[2];
        System.out.println(arr1);
        arr1[0] = 11;
        arr1[1] = 12;
        for (int x:arr1) {
            System.out.println(x);
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mUTvIN1F-1675781434002)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\1675758627620.png)]

运算符优先级:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tKbIg0E4-1675781385431)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\1675765491362.png)]

案例:评委打分

在这里插入图片描述

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //创建一个数组用于保存分数
        int[] grade = new int[6];
        //定义四个变量保存最大值、最小值、总分和平均分
        int max=0,min=0,sum=0,avg=0;
        //创建一个扫描器接收分数
        Scanner s = new Scanner(System.in);
        //接收分数并存入数组
        for (int i = 0;i<grade.length;i++){
            System.out.println("请第"+(i+1)+"位评委打分(0-100)");
            grade[i]=s.nextInt();
            //判断分数是否符合标准
            if(grade[i]>100||grade[i]<0){
                System.out.println("分数超出范围!");
                i--;
                continue;
            }
            //记录最高分数
            if (grade[i]>grade[max]){
                max=i;
            }
            //记录最低分数
            if (grade[i]<grade[min]){
                min=i;
            }
        }
        System.out.println("6个分数分别为:");
        for (int x=0;x<grade.length;x++) {
            System.out.print(grade[x]+"\t");
        }
        //计算总分
        for (int j=0;j<grade.length;j++){
            if (j!=max&&j!=min){
                sum+=grade[j];
            }
        }
        //计算平均分
        avg=sum/4;
        System.out.println("\n去掉最高分和最低分后选手最后得分为:"+avg);
    }
}

方法的调用过程

  • 方法没有被调用的时候,都在方法区的字节码文件中存储

  • 方法被调用的时候,需要进入到栈内存中运行

    注意事项:方法不能嵌套定义

    进制快速转换(8421码)

    二进制转八进制:将三个二进制位看为一组,对应421,加起来即可得到八进制值

    二进制转十六进制:将四个二进制位看为一组,对应8421,加起来得到十六进制值

    原码反码补码

    计算机中数据以补码状态运算

    正数的反码与原码相同,负数的反码是对其原码逐位取反,符号位除外。

    正数的补码与原码相同,负数的补码为其反码加一。
    例子:

public class jinzhi {
    public static void main(String[] args) {
        byte b =(byte)130;
        //-126
        System.out.println(b);
    }        
}

130int型二进制表示为:00000000 00000000 00000000 10000010
强转到byte型后为:10000010(补码),其中第一位为符号位
其反码为:补码-1
即:100000001
故原码为:11111110
11111110十进制表示为-126

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值