자바 14 - 새로운 기능

안녕하세요, 자바 프로그래밍에 도전하는 여러분! 자바 14와 그 새로운 기능들에 대해 안내해드리게 되어 기쁩니다. 컴퓨터 과학을 가르쳐온 경험을 가진 저로서는 자바를 배우는 것은 모험을 떠나는 것과 같습니다. 항상 새로운 것을 발견할 수 있습니다. 그麼, 자바 14의 마법을 함께 탐험해보겠습니다!

Java 14 - New Features

자바 제어 문장

자바 14의 새로운 기능에 들어가기 전에, 기본 제어 문장을 간단히复習해보겠습니다. 이 것들은 모든 자바 프로그램의 기초이며, 언어를 마스터하기 위해서 이해하는 것이 중요합니다.

If-Else 문장

If-Else 문장은 길목에서 나가는 것과 같아요. 특정 조건에 따라 프로그램이 결정을 내릴 수 있게 해줍니다.

int age = 18;
if (age >= 18) {
System.out.println("You can vote!");
} else {
System.out.println("Sorry, you're too young to vote.");
}

이 예제에서, 나이가 18이상이면 프로그램은 "You can vote!"를 인쇄합니다. 그렇지 않으면 "Sorry, you're too young to vote."를 인쇄합니다.

For 반복문

For 반복문은 회전木馬와 같아요. 지정된 횟수만큼 코드 블록을 반복할 수 있게 해줍니다.

for (int i = 1; i <= 5; i++) {
System.out.println("Count: " + i);
}

이 반복문은 1에서 5까지의 숫자를 각각 새로운 줄에 인쇄합니다.

객체 지향 프로그래밍

자바는 객체 지향 프로그래밍(OOP) 언어로, "객체"라는 개념에 기반하여 데이터와 코드를 포함하고 있습니다. 간단한 클래스 예제를 보겠습니다:

public class Dog {
String name;
int age;

public void bark() {
System.out.println(name + " says: Woof!");
}
}

여기서 우리는 Dog 클래스를 정의했으며, 속성(name과 age)과 메서드(bark)를 가지고 있습니다. 이 클래스의 객체를 만들고 사용할 수 있습니다:

Dog myDog = new Dog();
myDog.name = "Buddy";
myDog.age = 3;
myDog.bark(); // 출력: Buddy says: Woof!

자바 내장 클래스

자바는 우리의 삶을 더 쉽게 만들어주는 많은 내장 클래스를 제공합니다. 가장 흔히 사용되는 것 중 하나는 String 클래스입니다.

String greeting = "Hello, Java 14!";
System.out.println(greeting.length()); // 출력: 16
System.out.println(greeting.toUpperCase()); // 출력: HELLO, JAVA 14!

자바 파일 처리

파일 처리는 많은 애플리케이션에 필수적입니다. 파일에 쓰는 간단한 예제를 보겠습니다:

import java.io.FileWriter;
import java.io.IOException;

public class FileWriteExample {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("output.txt");
writer.write("Hello, Java 14!");
writer.close();
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}

이 코드는 "output.txt"라는 파일을 생성하고 "Hello, Java 14!"를 씁니다.

자바 오류 및 예외

오류와 예외는 프로그래밍 생활의 일부입니다. 자바는 이를 처리하기 위한 강력한 메커니즘을 제공합니다. 다음은 예제입니다:

public class DivisionExample {
public static void main(String[] args) {
try {
int result = 10 / 0;
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: Cannot divide by zero!");
}
}
}

이 프로그램은 0으로 나누려고 시도하지만, 이를 try-catch 블록으로 감싸서 예외를 부드럽게 처리합니다.

자바 14의 새로운 기능

이제 자바 14의 흥미로운 새로운 기능들을 탐험해보겠습니다!

레코드

레코드는 자바 14에서 새로운 종류의 클래스로, 간단하고 불변한 데이터 캐리어를 만들기 쉽게 해줍니다. 데이터를 가지고 있는 클래스가 필요할 때 완벽합니다.

public record Person(String name, int age) { }

이 간단한 선언은 두 필드(name과 age), 생성자, 그리고 equals(), hashCode(), toString()과 같은 메서드를 포함하는 클래스를 만듭니다. 이는 훨씬 더 긴 전통적인 클래스 정의와 동일합니다!

instanceof에 대한 패턴 매칭

자바 14는 패턴 매칭을 포함한 개선된 instanceof 연산자를 도입했습니다. 이는 코드를 더 간결하고 가독성 있게 만듭니다.

if (obj instanceof String s) {
// 여기서 s를 String으로 사용할 수 있습니다
System.out.println(s.length());
}

이 예제에서, obj가 String이면 자동으로 String으로 캐스트되고 변수 s에 할당됩니다.

스위치 표현식

스위치 표현식은 이전 버전에서 사전 보기된 것으로, 이제 자바 14에서 표준이 되었습니다. 스위치를 표현식으로 사용하여 값을 반환할 수 있습니다.

String dayType = switch(dayOfWeek) {
case MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY -> "Weekday";
case SATURDAY, SUNDAY -> "Weekend";
};

이 스위치 표현식은 dayOfWeek의 값을 기준으로 dayType에 "Weekday" 또는 "Weekend"를 할당합니다.

유용한 NullPointerExceptions

자바 14는 더 유용한 NullPointerException 메시지를 제공하여, 정확히 어떤 변수가 null인지를 가리킵니다.

Person person = null;
System.out.println(person.name);

일반적인 NullPointerException 대신, "Cannot invoke "Person.getName()" because "person" is null"과 같은 메시지를 받게 됩니다.

이것들은 자바 14의 새로운 기능들 중 일부입니다. 자바 여정을 계속하면서 이 강력한 언어의 더 많은 흥미로운 기능을 발견할 것입니다. 기억하시기 바랍니다, 프로그래밍은 연습을 통해 기술이 향상되는 것입니다. 따라서 두려워하지 말고 많은 코드를 작성해보세요!

미래의 자바 전문가 여러분, 행복하게 코딩하세요!

Credits: Image by storyset