重学java!

运行java程序

Hello.java =>(编译 javac) Hello.class =>(执行) Run on JVM

一个最基本的代码

1
2
3
4
5
public class Main {
public static void main(String[] args) {
System.out.println("Hello world");
}
}

数据类型

  • 整数: byte、short、int、long
  • 浮点数: float、double
  • 字符类型: char
  • 布尔类型: boolean

byte是一个字节
image

  • 数组类型,是引用类型,大小不可变
  • 整数数组int[] ns = new int[5]; 或者int[] ns = new int[] { 68, 79, 91, 85, 62 };或者int[] ns = { 68, 79, 91, 85, 62 };
  • 字符串数组String[] names = {"ABC", "xyz", "zoo"};
  • 二维数组int[][] ints = new int[4][2]或者只定义行的长度,列的每次动态初始化int[][] ints = new int[5][]

输入和输出

  • Java提供的输出包括:System.out.println() / print() / printf(),其中printf()可以格式化输出
  • Java提供Scanner对象来方便输入,读取对应的类型可以使用:scanner.nextLine() / nextInt() / nextDouble() / …

从控制台读取一个字符串和一个整数

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Input your name: ");
String name = scanner.nextLine();
System.out.print("Input your age: ");
int age = scanner.nextInt();
System.out.printf("Hi, %s, you are %d\n", name, age); //printf格式化输出
}
}

Arrays.sort

  • Arrays的静态方法,针对数组排序
  • Array.sort(int[] a),从小到大排序;Arrays.sort(int[] a, int fromIndex, int toIndex),对数组的部分排序
  • 如果需要从大到小排队, 需要自定义类MyComparator的对象
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    import java.util.Arrays;
    import java.util.Comparator;
    public class Main {
    public static void main(String[] args) {
    //注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
    //而要使用它们对应的类
    Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
    //定义一个自定义类MyComparator的对象
    Comparator cmp = new MyComparator();
    Arrays.sort(a, cmp);
    for(int i = 0; i < a.length; i ++) {
    System.out.print(a[i] + " ");
    }
    }
    }
    //Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口
    //而不是extends Comparator
    class MyComparator implements Comparator<Integer>{
    @Override
    public int compare(Integer o1, Integer o2) {
    //如果o1小于o2,我们就返回正值,如果o1大于o2我们就返回负值,
    //这样颠倒一下,就可以实现反向排序了
    if(o1 < o2) {
    return 1;
    }else if(o1 > o2) {
    return -1;
    }else {
    return 0;
    }
    }
    }

string int

  • string转int:Integer.parseInt(str) or Integer.valueOf(str)
  • int转string:String.valueOf(int) or Integer.toString(int)