简介

  • Java 是一种高级的、面向对象的编程语言,以其可移植性、健壮性和可扩展性而闻名。

  • Java 由 Sun Microsystems(现为 Oracle)开发,遵循“一次编写,随处运行”原则,允许代码在任何具有 Java 虚拟机 (JVM) 的设备上运行。

  • 它广泛用于构建大型企业应用程序、Android 移动应用程序和 Web 服务。

  • Java 具有自动内存管理(垃圾回收)、庞大的标准库和强大的安全功能,使其成为后端系统、分布式应用程序和基于云的解决方案的热门选择。

配置

  1. 安装JDK

  2. 设置环境变量

  3. 第一个Java程序

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

    编译:javac Main.java

    运行:java Main

  4. 用IntelliJ IDEA

Java程序的生命周期:

  1. 编辑程序

    在文本编辑器中键入程序,以.java扩展名保存

  2. 编译

    javac编译器:输入 Java 源代码,输出字节码(独立于机器或平台),生成.class文件

  3. 执行字节码

    Java虚拟机(JVM):输入字节码,输出机器码(0和1),由本地机器的 CPU 执行

语法

基本结构

  • 每一行代码都必须位于class(类)内
  • 类名以大写字母开头
  • Java 区分大小写
  • java 文件的名称必须与类名匹配
  • 注释:
    • 单行://
    • 多行:/* */
    • 文档:/** */

输出

  • System.out.println()

  • System.out.print() (不换行)

输入

导包:import java.util.Scanner;

创建对象:Scanner scanner = new Scanner(System.in);

读取:String name = scanner.nextLine();

输入类型:

方法 作用
nextBoolean() 读取一个boolean
nextByte() 读取一个 byte
nextDouble() 读取一个 double
nextFloat() 读取一个 float
nextInt() 读取一个 int
nextLine() 读取一个 String
nextLong() 读取一个 long
nextShort() 读取一个 short

变量

  • 类型:Stringintfloatcharboolean……

  • 声明:type variableName = value;

  • 命名规则:

    1. 可以包含字母、数字、_$
    2. 可以 $_、小写字母开头
    3. 区分大小写
    4. 保留字(如 Java 关键字,如 intboolean)不能用作名称

数据类型

  1. 基本数据类型:byte, short, int, long, float, double, boolean,char
  2. 非基本数据类型:String,Array,Class
数据类型 描述 大小
byte 2^7~ 2^7 - 1 1B
short -2^15 ~ 2^15 - 1 2B
int -2^31 ~ 2^31 - 1 4B
long -2^63 ~ 2^63 - 1 8B
float $3.4\times10^{38}$,约 7 位小数 4B
double $1.79\times10^{308}$,约 15 位小数 8B
boolean true/false 1B
char 1个字符(ASCII,Unicode) 2B
  • long:以 L 结尾
  • float:以 f 结尾
  • double:以 d 结尾

科学计数法:eE

类型转换:

  1. 自动转换:byte -> short -> char -> int -> long -> float -> double
  2. 强制转换:double -> float -> long -> int -> char -> short -> byte(加括号)

条件 循环

  • if…else

  • 简写 ifvariable = (condition) ? expressionTrue : expressionFalse;

  • switch

  • while

  • do…while

  • for

  • for each:专门用于遍历数组(或其他数据集)中的元素

    1
    2
    for (type variableName : arrayName) {
    // code block to be executed

数组

  1. 创建:用方括号定义

    1
    2
    3
    4
    5
    6
    7
    String[] cars;
    int[] myNum = {10, 20, 30, 40};
    Man[] mans = {new Man(1, 1), new Man(2, 2)};

    int[] arrays = new int[2];
    a[0] = 1;
    a[1] = 2;
  2. 大小:.length

  3. 遍历:

    • for 循环
    1
    2
    3
    4
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    for (int i = 0; i < cars.length; i++) {
    System.out.println(cars[i]);
    }
    • for-each 循环
    1
    2
    3
    4
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    for (String i : cars) {
    System.out.println(i);
    }

多维数组

  1. 创建:

    1
    int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
  2. 遍历:

    • for 循环
    1
    2
    3
    4
    5
    6
    int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
    for (int i = 0; i < myNumbers.length; ++i) {
    for (int j = 0; j < myNumbers[i].length; ++j) {
    System.out.println(myNumbers[i][j]);
    }
    }
    • for-each 循环
    1
    2
    3
    4
    5
    6
    int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
    for (int[] row : myNumbers) {
    for (int i : row) {
    System.out.println(i);
    }
    }

字符串

String 变量包含一组用双引号括起来的字符

方法:

  • length():字符串长度

  • toUpperCase():转换为大写

  • toLowerCase():转换为小写

  • indexOf("..."):返回字符串中指定文本首次出现的索引(包括空格)

  • concat():连接两个字符串

  • +:数字相加,字符串串联

转义:

  • \:转换为普通字符串字符
  • \n:换行
  • \t:Tab
  • \r:回车
  • \b:退格
  • \f:换页符