Java和Scala都是运行在Java虚拟机(JVM)上的强大编程语言。Java多年来一直在企业领域占据主导地位,而Scala因其简洁、表达力强和函数式编程特性而逐渐受到关注。
public class ImmutablePerson {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}case class ImmutablePerson(name: String, age: Int)说明:
final,并提供构造函数来初始化它们。case class可以自动生成具有简洁语法的不可变类。import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class JavaFunctionalExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squares = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squares);
}
}object ScalaFunctionalExample extends App {
val numbers = List(1, 2, 3, 4, 5)
val squares = numbers.map(n => n * n)
println(squares)
}说明:
map等函数。public class JavaNullSafetyExample {
public static void main(String[] args) {
String name = null;
if (name != null) {
System.out.println(name.length()); // 空指针异常检查
}
}
}object ScalaNullSafetyExample extends App {
val name: String = null // 编译错误
// 上述行将无法编译,强制要求对空值进行明确处理。
}说明:
import java.util.concurrent.*;
public class JavaConcurrencyExample {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executor = Executors.newFixedThreadPool(2);
Future<String> future = executor.submit(() -> {
// 任务执行
return "任务完成";
});
String result = future.get();
System.out.println(result);
executor.shutdown();
}
}import scala.concurrent._
import ExecutionContext.Implicits.global
object ScalaConcurrencyExample extends App {
val future: Future[String] = Future {
// 任务执行
"任务完成"
}
future.onComplete {
case Success(result) => println(result)
case Failure(exception) => println(s"任务失败: $exception")
}
}说明:
Future和Promise构造实现异步编程,结合了Scala的表达力以生成简洁的代码。