数组在内存分配图
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);
}
}
}
运算符优先级:
案例:评委打分
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