📜  深度内容 - Java (1)

📅  最后修改于: 2023-12-03 15:27:01.295000             🧑  作者: Mango

深度内容 - Java

简介

Java 是一种面向对象、跨平台、高性能的编程语言,由Sun公司于1995年推出,现在是由Oracle公司维护。Java 应用广泛,包括企业应用、嵌入式系统、移动应用、Web应用等。

基础语法

Java 的基础语法包括变量定义、控制语句、数组、函数、类等。以下是一个简单的样例:

public class Main {
    public static void main(String[] args) {
        int a = 1;
        String b = "hello";
        System.out.println(b + " world " + a);
    }
}
变量定义

Java 的变量定义包括数据类型和变量名称。常见的数据类型有整型、浮点型、字符型、布尔型等。变量名称需要符合标识符的规则,即不能以数字开头,只能包含字母、数字、下划线和美元符号等。

控制语句

Java 的控制语句包括 if-else、for、while、switch 等。其中 if-else 用于条件判断,for 和 while 用于循环,switch 用于多分支判断。以下是一个样例:

int a = 1;
if (a == 1) {
    System.out.println("a is 1");
} else {
    System.out.println("a is not 1");
}

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

int i = 0;
while (i < 10) {
    System.out.println(i);
    i++;
}

int b = 2;
switch (b) {
    case 1:
        System.out.println("b is 1");
        break;
    case 2:
        System.out.println("b is 2");
        break;
    default:
        System.out.println("b is other number");
        break;
}
数组

Java 的数组定义包括数组类型、数组名称和数组长度。数组类型可以是任意类型,包括基本类型和对象类型。数组名称需要符合标识符的规则,数组长度必须是整数。

int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
    arr[i] = i * i;
}
System.out.println(Arrays.toString(arr));
函数

Java 的函数定义包括函数名、参数列表、返回类型和函数体。参数列表可以包含多个参数,返回类型可以是任意类型,函数体包含了函数的具体逻辑。

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

public static void main(String[] args) {
    int c = add(1, 2);
    System.out.println(c);
}

Java 的类定义包括类名、成员变量、成员函数和构造函数。成员变量和成员函数必须要有访问修饰符,可以是 public、protected、private 或者默认访问权限。构造函数是类的特殊函数,用于初始化对象。

public class Person {
    public static int count = 0;

    public String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
        count++;
    }

    public void sayHello() {
        System.out.println("Hello, my name is " + this.name + ", I'm " + this.age + " years old.");
    }

    public static void main(String[] args) {
        Person p1 = new Person("Tom", 20);
        p1.sayHello();
        System.out.println(Person.count);
    }
}
高级特性

Java 的高级特性包括泛型、反射、注解、Lambda 表达式、流式 API 等。以下是一个简单的样例:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) throws Exception {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        System.out.println(list);

        Class<?> clazz = Class.forName("java.util.ArrayList");
        System.out.println(clazz.getSimpleName());

        MyAnnotation myAnnotation = new MyAnnotationImpl();
        System.out.println(myAnnotation.value());

        MyInterface myInterface = (a, b) -> a + b;
        System.out.println(myInterface.add(1, 2));

        list.stream().filter(x -> x % 2 == 0).forEach(System.out::println);
    }

    interface MyInterface {
        int add(int a, int b);
    }

    @MyAnnotation(value = "test")
    static class MyAnnotationImpl implements MyAnnotation {
        @Override
        public String value() {
            return "impl";
        }
    }
}

@interface MyAnnotation {
    String value();
}
泛型

Java 的泛型是指在定义类、接口、方法时使用类型参数,在使用时再指定具体的类型。泛型可以提高代码的安全性和可读性。

List<Integer> list = new ArrayList<>();
反射

Java 的反射是指在运行时获取和操作对象的信息,包括类、方法、属性等。反射可以实现动态加载、动态代理等功能。

Class<?> clazz = Class.forName("java.util.ArrayList");
注解

Java 的注解是一种元数据,用于为程序的类、方法、变量等添加上额外的信息,如作者、版本、参数验证等。

@MyAnnotation(value = "test")
Lambda 表达式

Java 的 Lambda 表达式是一种轻量级、简洁的语法,用于替换匿名内部类,提供更加便利的函数式编程。

MyInterface myInterface = (a, b) -> a + b;
流式 API

Java 的流式 API 是一种函数式编程的方式,用于实现对集合或数组的操作,如过滤、映射、遍历等。

list.stream().filter(x -> x % 2 == 0).forEach(System.out::println);

以上是 Java 的一些基础语法和高级特性,更多内容可以参考 Java 编程语言、Java 核心技术等经典书籍。