首页 > 编程语言 > 详细

Java基础回顾

时间:2021-02-05 01:05:56      阅读:26      评论:0      收藏:0      [点我收藏+]

流控制学习

Scanner

获取用户输入

/*
        用
        scanner.next();
        scanner.nextLine();
        接受数据
        用
        scanner.hasNext();  有效字符串之间空白会被放做分隔符或结束符
        scanner.hasNextLine(); 可接受空格,回车符为结束符
        判断用户有没有输入

        属于IO流,用完就要关掉
         */
        Scanner scanner = new Scanner(System.in);
        scanner.close();

增强for循环

numbers = {1,2,3,5,3};
for(int x : numbers){
  print(x)
}   //偷懒的

方法

方法定义及调用——一个方法只完成一个功能

System.out.println()

类,对象,方法

public static int add(int a, int b){
  //修饰符、数据类型、方法名字   (行参)
 	      int sum = a+b //方法体
        return sum;
    }
add(1,2);   //实参

方法重载

有相同名字,不同参数的方法

int add()
double add()

命令行传参

args[]

可变参数

void test(double x, int... i){
  
}
//在制定参数类型后加一个省略号
//一个方法治只能有一个可变参数,为最后一个参数
test(1);
test(1,1);
test(1,1,2);

递归——能不用就不用

A方法调用A方法

结构:

递归头

递归尾


边界条件

前阶段

返回阶段

java使用栈机制

简易计算器
public class Cacluator {
    /*
    实现思路:
    写四个方法,加减乘除
    利用循环进行交互:swatch
    传递需要操作的两个数
    输出结果
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        float result = 0;
        while (true){
            float a = 0;
            float b = 0;
            result = 0;
            String method;
            a = scanner.nextFloat();
            method = scanner.next();
            b = scanner.nextFloat();
            switch (method){
                case "+":
                    result = add(a,b);
                    break;
                case "-":
                    result = sub(a,b);
                    break;
                case "*":
                    result = mul(a,b);
                    break;
                case "/":
                    result = devid(a,b);
                    break;
            }
            System.out.println(result);
        }
    }

    public static float add(float a, float b){
        return a + b;
    }

    public static float sub(float a, float b){
        return a - b;
    }

    public static float mul(float a, float b){
        return a * b;
    }

    public static float devid(float a, float b){
        return a / b;
    }
}

数组

内存分析

  1. 方法区

int[] array = null;

![image-20210204224433686](/Users/lzy/Library/Application Support/typora-user-images/image-20210204224433686.png)

数组本书是对象,java中对象是在堆中的

new 出来的都在堆中

ArrayIndexOutofBounds——数组越界

Arrays类

数组操作:

打印数组、排序、比较、查找元素


冒泡排序

public class ArrayDemo01 {
    /*
    冒泡
    比较相邻元素,如果比后面数大,则交换位置
    下一轮可减少一次排序
    循环结束,排序完成
     */
    public static void main(String[] args) {
        int[] array = {5,4,3,2,1};
        sort(array);
    }
    public static void sort(int[] array){
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = i+1; j < array.length; j++) {
                if (array[i] > array[j]){
                    int temp = 0;
                    temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        for (int i : array){
            System.out.println(i);
        }
    }
}


稀疏数组

在数组中很多数为同一个值,

  1. 首先记录数组几行几列
  2. 具有不同元素的数组记录在一个小规模数组中
  3. 还原数组
public class ArrayDemo02 {
    public static void main(String[] args) {
        //1.创建一个而二维素组 0:无子  1:黑子  2: 白子
        int[][] array = new int[11][11];
        array[9][3] = 1;
        array[3][9]  = 2;
        //打印原数组
        for (int[] arr1 : array){
            for (int arr2 : arr1) {
                System.out.print(arr2+"\t");
            }
            System.out.println();
        }

        //转换为稀疏数组并保存
        //首先计算个数
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if (array[i][j] != 0){
                    sum++;
                }
            }
        }

        //定义稀疏素组
        int[][] array2 = new int[sum+1][3];
        //遍历二维数组,将非零值存入稀疏数组中
        array2[0][0] = 11;
        array2[0][1] = 11;
        array2[0][2] = sum;

        int count = 0;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if (array[i][j] != 0){
                    count++;
                    array2[count][0] = i;
                    array2[count][1] = j;
                    array2[count][2] = array[i][j];
                }
            }
         }
        System.out.println("稀疏数组");
        for (int i = 0; i < array2.length; i++) {
            for (int j = 0; j < array2[i].length; j++) {
                System.out.print(array2[i][j]+ "\t");
            }
            System.out.println();
        }
        System.out.println("========================");
        //还原数组
        int[][] array3 = new int[array2[0][0]][array2[0][1]];
        //取元素
        for (int i = 1; i < array2.length; i++) {
            array3[array2[i][0]][array2[i][1]] = array2[i][2];
        }
        System.out.println("输出还原数组");
        for (int[] arr1 : array3){
            for (int arr2 : arr1) {
                System.out.print(arr2+"\t");
            }
            System.out.println();
        }
    }

}

Java基础回顾

原文:https://www.cnblogs.com/liangzynb/p/14375631.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!