基础语法¶
Java 是一种面向对象的编程语言,程序的基本单位就是 class,所有的代码必须在类的上下文中定义和执行。
/**
* 特殊的多行注释
* 需要写在类和方法的定义处,可以用于自动创建文档
* @auther test
*/
/*
定义一个公开的类,一个文件只能有一个 public class
public 是访问修饰符
*/
public class Hello {
/*
Java 规定程序必须从 main() 开始,而且必须是静态的,且参数必须是 String 数组
static 表示静态方法,void 为返回值类型,表示没有返回值,String[] 是参数类型
*/
public static void main(String[] args) {
System.out.println("Hello, world!"); // 代码行以分号结尾,打印一个字符串到屏幕上
}
}
必需保存为与类名完全一致的文件名:Hello.java
运行
javac Hello.java # 先编译,生成 Hello.class
java Hello # JVM 会自动查找与 Hello 对应的 .class 运行
'
Hello, world!
'
基本类型¶
不同数据类型占用的字节数不一样
整数类型:最高位表示符号位
byte 1字节
short 2字节
int 4字节
long 8字节
浮点数类型
float 4字节
double 8字节
布尔类型
boolean 4字节
字符类型
char 2字节
int i = 15;
int i = 0xf;
int i = 0b1111;
float f = 3.14f;
double d = 1.79e308;
boolean b1 = true;
boolean b2 = false;
// 字符,单引号,保存一个Unicode字符
char a = 'A'; // 等价于 char a = '\u0041';
char zh = '中';
引用类型¶
类似于 C 语言的指针,它内部存储一个地址,指向某个对象在内存的位置
字符串¶
// 字符串,双引号,保存任意个字符
String s = null; // 空值
String s = ""; // 空字符串
String s = "hello";
// 多行字符串
String s = """
SELECT * FROM
users
WHERE id > 100
ORDER BY name DESC
""";
数组¶
存储一组相同类型的值
数组所有元素初始化为默认值,整型都是 0
,浮点型是 0.0
,布尔型是 false
// 初始化之后大小不可变
int[] ns = new int[5];
ns[0] = 11;
ns[1] = 22;
// 也可以初始化的时候同时指定元素,编译器会自动推算数组大小
int[] ns = new int[] { 11, 22, 91, 85, 62 };
// 简写
int[] ns = { 68, 79, 91, 85, 62 };
ns.length // 获取长度
// 字符串数组
String[] names = {
"ABC", "XYZ", "zoo"
};
语句¶
输出¶
System.out
标准输出流
double d = 12900000;
// print 不换行
System.out.print();
// print line 结尾会换行\n
System.out.println(d); // 1.29E7
// 格式化输出,两个 %% 表示 %
System.out.printf("%.2f\n", d); // 3.14
输入¶
可以直接使用标准输入流 System.out
获取用户输入,但需要复杂的代码,而通过 Scanner
可以简化后续的代码,并且会自动转换数据类型
读取不同类型需要不同的方法
scanner.nextInt()
scanner.nextDouble()
scanner.nextLine()
读取字符串
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建 Scanner 对象
Scanner sc = 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);
}
}
if¶
if (n >= 90) {
System.out.println("优秀");
} else if (n >= 60) {
System.out.println("及格了");
} else {
System.out.println("挂科了");
}
System.out.println("END");
// 当{}内只有一行语句时,可以省略{},但不建议
if (n >= 60)
System.out.println("及格了");
for¶
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=100; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}