在线 Java 编译器
在浏览器中编写、编译并运行 Java 代码,适合学习、练习与快速验证。
Java 代码编辑器
标准输入(可选)
程序参数(可选)
输出
执行信息
状态与耗时:
标准输出(stdout)
就绪。程序输出将显示在此处。
标准错误(stderr)
(无错误)
使用说明
- 编写一个包含 public static void main(String[] args) 入口方法的单文件 Java 程序。
- 需要输入?把内容写到 标准输入 框中,它会通过 stdin 传给程序。
- 程序参数以空格分隔。例如:hello world 会变为 args[0]=hello、args[1]=world。
- 点击“运行代码”即可在线编译并执行程序。
- 超时:编译和运行各自有 2000ms 限制,请保持程序简洁。
- 限制:不可访问网络,运行在沙箱中。长时间运行或交互式程序可能被终止。
- 提示:使用 Scanner 读取输入,使用 System.out.println 输出。可加载下方示例快速开始。
示例
你好,世界
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
} 从标准输入读取
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
int n = sc.nextInt();
System.out.println("Name: " + name);
System.out.println("Twice: " + (2*n));
}
} 试试标准输入:Alice\n7
程序参数
public class Main {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("arg[" + i + "] = " + args[i]);
}
}
} 试试参数:hello world
类与方法
class Greeter {
String greet(String name) {
return "Hello, " + name + "!";
}
}
public class Main {
public static void main(String[] args) {
Greeter g = new Greeter();
System.out.println(g.greet("Java"));
}
} Java 基础
变量与类型
Java 拥有基本类型(byte、short、int、long、float、double、char、boolean)与引用类型(类、数组)。自 Java 10 起,var 可用于推断局部变量类型。
public class Main {
public static void main(String[] args) {
byte b = 1;
int i = 42;
long l = 10000000000L;
float f = 3.14f;
double d = 2.71828;
char c = 'A';
boolean ok = true;
var s = "Java"; // type inference
System.out.println(b + " " + i + " " + l);
System.out.println(f + " " + d);
System.out.println(c + " " + ok + " " + s);
}
} 流程控制
使用 if/else、switch、for 与 while 控制程序流程。break 与 continue 可改变循环执行。
public class Main {
public static void main(String[] args) {
int n = 7;
if (n % 2 == 0) {
System.out.println("even");
} else {
System.out.println("odd");
}
String day = "MON";
switch (day) {
case "MON":
case "TUE":
case "WED":
case "THU":
case "FRI":
System.out.println("weekday");
break;
case "SAT":
case "SUN":
System.out.println("weekend");
break;
default:
System.out.println("unknown");
}
for (int i = 0; i < 3; i++) System.out.println("i=" + i);
int j = 3;
while (j > 0) { System.out.println("j=" + j); j--; }
}
} 集合(List、Map)
集合框架提供了如 List、Map 等动态容器。可使用增强 for 循环遍历。
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a"); list.add("b"); list.add("c");
for (String s : list) System.out.println(s);
Map<String,Integer> map = new HashMap<>();
map.put("alice", 3); map.put("bob", 5);
System.out.println("bob=" + map.get("bob"));
for (Map.Entry<String,Integer> e : map.entrySet()) {
System.out.println(e.getKey() + ":" + e.getValue());
}
}
} 异常(try/catch/finally)
使用 try/catch/finally 处理异常。优先捕获具体异常;使用 finally 做清理。
public class Main {
static int parse(String s) {
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) {
System.out.println("Not a number: " + s);
return -1;
} finally {
System.out.println("Done parsing: " + s);
}
}
public static void main(String[] args) {
int a = parse("42");
int b = parse("hello");
System.out.println("a=" + a + ", b=" + b);
}
} 字符串
字符串是不可变的。常见操作包括拼接、大小写转换、子串提取、替换与包含检查。
public class Main {
public static void main(String[] args) {
String s = "Java";
String t = "Spring";
String u = s + " " + t;
System.out.println(u.toUpperCase());
System.out.println(u.toLowerCase());
System.out.println(u.substring(0, 4));
System.out.println(u.replace("Spring", "World"));
System.out.println(u.contains("Java"));
}
}