Java基础知识

140 阅读1分钟

0. Introduction

此文是关于Java的一个简单梳理,为了重新梳理个人知识体系所作。

1. What

Java是一门面向对象的高级语言。在C++的基础上诞生,去掉了C++中一些影响健壮性的特性(比如:指针、内存的申请与释放等),语法相当于C++的简化版。

基于跨平台、面向对象、分布式、多线程等特性,Java成为了服务器端最主要的编程语言。

image.png

2. Why

为什么选择Java?

  1. 跨平台和面向对象,使得Java开发能节省移植成本和拓展成本。
  2. Java语言下限更高,初级程序员也能实现较高的生产力。
  3. 简单易学,企业更容易招到搬砖人。

3. How

Java SE有以下这些基础语法。

image.png

4. Practice

做几个简单的小练习吧。

  1. 【回文数】

1)打印5位数中的所有回文数,每行打印10个数,并统计总数;

2)输入任意整数,判断是否为回文数。

import java.util.Scanner;

public class Palindrome {
    public static void main(String[] args) {
        //  1)打印5位数中的所有回文数,每行打印10个数,并统计总数。
        int count = 0;
        for (int i = 10001; i <= 99999; i++){
            if (i / 10000 == i % 10 && (i / 1000) % 10 == (i % 100) / 10){
                System.out.print(i + "\t");
                count++;
                if (count % 10 == 0) System.out.println();
            }
        }

    /*  int count = 0;
        //Dig_1表示个位数字,Dig_2表示十位数字,Dig_3表示百位数字
        for (int Dig_1 = 1; Dig_1 < 10; Dig_1 ++)
            for (int Dig_2 = 0; Dig_2 < 10; Dig_2 ++)
                for (int Dig_3 = 0; Dig_3 < 10; Dig_3 ++){
                    System.out.print(Dig_1 + "" + Dig_2 + "" + Dig_3 + "" + Dig_2 + "" +Dig_1 + "     ");
                    count ++;
                    if (count % 10 == 0)
                        System.out.println();
                }*/
        System.out.println("\n5位数中,一共有" + count + "个回文数。");

        //  2)输入任意整数,判断是否为回文数。
        Scanner sca = new Scanner(System.in);
        System.out.print("请输入需要判断的任意整数:");
        here: if (sca.hasNextInt()){
            int n = sca.nextInt();
            String str = Integer.toString(n);  //整数转字符串
            char[] arr = str.toCharArray();   //字符串存入数组
            for (int i = 0; i <= arr.length / 2; i++){
                if (arr[i] != arr[arr.length - i - 1]){
                    System.out.println("这个数不是回文数。");
                    break here;
                }
            }
            System.out.println("这个数是回文数。");
        }
        else{
            System.out.println("输入的不是整数!");
        }
        sca.close();
    }
}
  1. 【排序】

题目:给出一个元素小于10且长度为10的乱序数组,并进行排序。

import java.util.Random;

public class ArrSort {
    //给出一个元素小于10且长度为10的乱序数组,并进行排序。
    public static int[] getRandomArr(int n){//获得随机数组
        int[] arr = new int[n];
        for (int i = 0; i < arr.length; i++)  arr[i] = new Random().nextInt(arr.length);
        return arr;
    }
    public static void print(int[] arr){//打印输出
        for (int value : arr) System.out.print("\t" + value);
        System.out.println();
    }
    public static void swap(int[] arr, int i, int j){//交换元素
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    public static void selectSort(int[] arr){//选择排序
        for (int i = 0; i < arr.length - 1; i++){
            for (int j = i + 1; j < arr.length; j++){
                if (arr[i] > arr[j]){
                    swap(arr, i ,j);
                }
            }
        }
        print(arr);
    }
    public static void bubbleSort(int[] arr){//冒泡排序
        for (int i = arr.length - 1; i > 0; i--){
            for (int j = 0; j < i; j++){
                if(arr[j] > arr[j + 1]){
                    swap(arr, j, j + 1);
                }
            }
        }
        print(arr);
    }
    public static void insertSort(int[] arr){//插入排序
        for (int i = 1; i < arr.length; i++){
            for (int j = i - 1; j >= 0; j--){
                if (arr[j + 1] < arr[j]){
                    swap(arr, j, j + 1);
                }
                else break;
            }
        }
        print(arr);
    }

    public static void main(String[] args) {

        System.out.print("随机数组为:");
        int[] arr = getRandomArr(10);
        print(arr);

        System.out.print("选择排序后:");
        selectSort(arr);

        System.out.print("冒泡排序后:");
        bubbleSort(arr);

        System.out.print("插入排序后:");
        insertSort(arr);
    }
    //归并排序、快速排序、堆排序暂不涉及
}