📅  最后修改于: 2023-12-03 15:27:01.295000             🧑  作者: Mango
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")
Java 的 Lambda 表达式是一种轻量级、简洁的语法,用于替换匿名内部类,提供更加便利的函数式编程。
MyInterface myInterface = (a, b) -> a + b;
Java 的流式 API 是一种函数式编程的方式,用于实现对集合或数组的操作,如过滤、映射、遍历等。
list.stream().filter(x -> x % 2 == 0).forEach(System.out::println);
以上是 Java 的一些基础语法和高级特性,更多内容可以参考 Java 编程语言、Java 核心技术等经典书籍。