전체 글(126)
-
스레드(Thread)
스레드(Thread)는 컴퓨터 프로그램의 실행 흐름의 기본 단위입니다. 일반적으로 한 프로그램은 하나의 실행 흐름(메인 스레드)으로 실행되지만, 스레드를 사용하면 여러 개의 실행 흐름을 만들어서 동시에 실행할 수 있습니다. 스레드를 사용하면 프로그램의 성능을 향상시키고, 더 많은 작업을 동시에 처리할 수 있습니다. 예를 들어, 웹 브라우저에서 여러 개의 탭을 열고 각각의 탭에서 웹 페이지를 로드하는 동작을 생각해보면, 이는 각 탭마다 별도의 스레드를 생성하여 실행함으로써 가능해집니다. 스레드는 프로세스 내에서 독립적으로 실행되는 하나의 작업 단위로, 각 스레드는 독립된 스택과 레지스터 값을 가집니다. 스레드는 다른 스레드와 공유하는 메모리를 가지므로, 스레드 간의 데이터 공유와 동기화 문제를 해결하기 위..
2023.03.09 -
Lambda Expression
Java 8부터 도입된 lambda expression은 함수형 프로그래밍의 개념을 Java에 도입한 것입니다. lambda expression은 익명 함수를 만들어 표현할 수 있는 간단하고 강력한 기능으로, 코드의 가독성과 유연성을 높일 수 있습니다. lambda expression은 다음과 같은 형태로 작성됩니다. (parameter1, parameter2, ...) -> { expression } 위 형태에서 parameter1, parameter2는 매개변수를 의미하며, ->는 화살표 연산자입니다. expression은 메소드 몸체에서 수행할 코드를 의미합니다. 다음은 lambda expression을 사용한 간단한 예시입니다. List numbers = Arrays.asList(1, 2, 3, ..
2023.03.08 -
Enum
Java에서 enum은 서로 연관된 상수들의 집합을 정의할 때 사용하는 데이터 타입입니다. enum을 사용하면 코드의 가독성을 높이고, 타입 안정성을 보장할 수 있습니다. enum은 다음과 같이 선언합니다. enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } 위 코드에서 Weekday는 enum 타입의 이름이고, MONDAY, TUESDAY 등은 enum 상수입니다. enum 상수는 모두 대문자로 작성하며, 각 상수는 쉼표로 구분됩니다. enum은 switch 문과 함께 사용할 때 매우 유용합니다. switch 문에서 enum 값을 비교할 때는 case 문으로 각 상수를 나열하면 됩니다. enum Weekday ..
2023.03.08 -
Final
Java에서 final은 변수, 메소드, 클래스에 모두 사용될 수 있는 키워드입니다. final 키워드가 사용된 요소는 값을 변경할 수 없으며, 상속이나 오버라이딩 등에 대한 제약을 가지게 됩니다. 1.final 변수 final 변수는 값을 변경할 수 없는 상수를 의미합니다. 변수를 선언할 때 final 키워드를 사용하면, 선언된 변수는 값이 한 번 할당되면 변경할 수 없게 됩니다. final int a = 10; a = 20; // 에러 발생: final 변수는 값을 변경할 수 없음 2.final 메소드 final 메소드는 서브클래스에서 오버라이딩할 수 없는 메소드를 의미합니다. final로 선언된 메소드는 상속받은 클래스에서 오버라이딩을 할 수 없으며, 메소드의 동작이 변경될 수 없습니다. class..
2023.03.08 -
Generic
Java Generic은 자바에서 제공하는 타입 시스템의 일종으로, 클래스, 인터페이스, 메소드 등에서 사용할 수 있는 타입 매개변수를 정의하여 타입 안정성을 보장하는 기능입니다. 타입 안정성을 보장하는 이유는 컴파일러에서 오류를 잡아내어 런타임 에러를 방지하고, 코드의 재사용성과 가독성을 높여줍니다. Java Generic을 사용하기 위해서는 타입 매개변수를 선언하여 클래스, 인터페이스, 메소드 등에서 사용해야 합니다. 타입 매개변수는 대문자 알파벳으로 표시되며, 일반적으로 T, E, K, V 등으로 사용됩니다. 예를 들어, 다음과 같이 제네릭 클래스를 작성할 수 있습니다. public class MyGenericClass { private T value; public MyGenericClass(T v..
2023.03.08 -
Optional
Optional은 자바 8에서 소개된 클래스로, 값이 없을 수도 있는(null 일 수도 있는) 객체를 감싸고 있는 래퍼 클래스입니다. 이 클래스는 null 처리를 간소화하고 예외를 방지하여 코드의 안정성을 높이는 데 사용됩니다. Optional은 주로 다음과 같은 상황에서 사용됩니다. null 값을 리턴할 수 있는 메소드의 결과를 받을 때 매개변수가 null일 수 있는 메소드를 호출할 때 컬렉션에서 요소를 검색하고, 해당 요소가 존재하지 않을 때 Optional 클래스는 값이 존재하지 않을 때 예외를 던지지 않으며, isPresent() 메소드로 값이 존재하는지 여부를 확인할 수 있습니다. 또한, orElse() 메소드를 사용하여 값이 존재하지 않을 때 기본값을 설정할 수 있습니다. 예를 들어, 다음과 ..
2023.03.08