본문 바로가기
728x90

[JAVA]/JAVA 기본44

[Java] 람다식(Lambda Expression) 람다식(Lambda Expression) 함수형 프로그래밍 기법을 지원하는 자바의 문법 요소로, 메서드를 하나의 식으로 표현하기 때문에 코드를 매우 간결하고 명확하게 표현할 수 있다. 자바에서 함수는 반드시 클래스 안에 정의되어야 하기 때문에 메서드가 독립적으로 있을 수 없고 반드시 클래스 객체를 먼저 생성한 후에 그 객체로 매서드를 호출해야 한다. 따라서 람다식은 객체이며, 이름이 없는 익명 클래스라고 할 수 있다. 1. 익명 객체이다. 2. 객체를 컨트롤하기 위해 함수형 인터페이스를 사용한다. public class Main { public static void main(String[] args) { AddFunction add = (num1, num2) -> num1 + num2; // 람다식 Sy.. 2022. 9. 15.
[JAVA] 애너테이션(Annotation) 주석(Comment) & 애너테이션(Annotation) 주석은 개발자의 입장에서 코드의 가독성을 높이고, 다른 개발자와의 협업에서 코드에 대한 설명을 제공하는 역할을 수행하지만, 애너테이션은 특정 코드를 사용하는 프로그램에게 정보를 전달한다. 쉽게 이야기하면 프로그램을 위한 주석이라고 할 수 있다. 애너테이션의 주요한 역할 컴파일러에게 문법의 에러 여부를 체크하도록 정보를 제공한다. 프로그램을 빌드할 때 코드를 자동으로 생성할 수 있게 정보를 제공한다. 런타임에 특정 기능을 실행하도록 정보를 제공한다. 애너테이션의 종류 표준 애너테이션 : 자바에서 기본으로 제공하는 애너테이션 표준 애너테이션 설명 @Override 컴파일러에게 메서드를 오버라이딩 하는 것이라고 알림 @Deprecated 기존의 필드나 .. 2022. 9. 15.
[JAVA] 컬렉션 프레임워크 컬렉션 프레임워크(Collection Framework) 객체들을 효율적으로 검색, 추가, 삭제할 수 있도록 관련된 인터페이스와 클래스를 포함시킨 일종의 컬렉션(데이터 집합)을 말한다. Collection 인터페이스 메소드 리턴 타입 설명 add(Object 0) / addAll(Collection c) boolean 주어진 객체 및 컬렉션의 객체들을 컬렉션에 추가 contains(Object o) / containsAll(Collection c) boolean 주어진 객체 및 컬렉션이 저장되어있는지 여부를 리턴 iterator() Iterator 컬렉션의 iterator를 리턴 equals(Object o) boolean 컬렉션이 동일한지 여부 확인 isEmpty() boolean 컬렉션이 비어있는지 .. 2022. 9. 14.
[JAVA] 예외 처리 정리 예외처리(Exception Handing) 예외처리는 에러로 인한 프로그램의 종료를 방지하고, 정상적으로 실행시키기 위해 사전에 미리 코드를 작성하여 대응하는 것을 말한다. 에러(Error) 자바에서 에러는 논리적 오류로 인한 논리적 에러(Logicla Error)와 발생 시점에 따른 컴파일 에러(Compile Time Error), 런타임 에러(Run Time Error)로 구분된다. 컴파일 에러 컴파일할 때 발생하는 에러로, 문법적인 문제인 신텍스(syntax) 오류로 인해 발생하기 때문에 신텍스 에러(Syntax Error)라고 부르기도 한다. 일반적으로 IDE에서 런타임 실행 전에 에러를 자동으로 찾아 알려주기 때문에 쉽게 수정할 수 있다. 런타임 에러 런타임 시에 발생하는 에러이다. 프로그램이 .. 2022. 9. 14.
[JAVA] 제네릭 & 와일드 카드 📌 제네릭(Generic) 제네릭이란 클래스나 메서드를 작성할 때, 타입을 구체적으로 지정하지 않고 추후에 지정하고 변경할 수 있도록 타입 매개변수를 이용하여 타입을 일반화하는 것을 의미한다. 제네릭 클래스 class Box { private T item1; // O static T item2; // X } public class Main { public static void main(String[] args) { Box Box1 = new Box("this is Box"); Box Box2 = new Box(1); Box Box3 = new Box(1.11); // 제네릭 클래스로 인스턴스화할 때에는 타입 매개변수에 치환될 타입을 지정해주어야 한다. System.out.println(Box1.getIt.. 2022. 9. 14.
[JAVA] 열거형 열거형(Enum) 서로 연관된 상수들의 집합을 의미한다. 여러 상수를 정의하는 기존의 방식은 상수명 중복이라는 문제가 발생한다. 정수 값을 상수에 할당할 때, 같은 정수 값을 할당하게 되면 상수의 이름이 중복이 되어 컴파일 에러가 발생한다. public static final int A = 1; public static final int B = 1; // 상수명 간의 중복 인터페이스를 사용하여 상수를 구분하는 방법으로 해결할 수 있지만, 타입 안정성이라는 새로운 문제가 발생한다. interface i { int A = 1 } interface j { int B = 1 } if (i.A == j.B){...} // 의미적으로 전혀 다른 값이지만, 코드에 문제가 없어 에러가 발생하지 않는다. (타입 안정성이.. 2022. 9. 13.
[JAVA] 래퍼 클래스(Wrapper Class) int와 Integer의 차이 int = 자료형(Primitive Type) 변수의 데이터 타입이다. 데이터 타입에는 기본형과 참조형이 있는데 그중에서 int는 기본형에 속한다. 산술 연산이 가능하며, null로 초기화가 불가능하다. Intger = 래퍼 클래스(Wrapper class) 기본형을 객체로 다룰 때 사용하는 클래스를 래퍼 클래스(Wrapper class)라고 하는데 Integer는 int의 래퍼 클래스이다. Unboxing하지 않으면 산술 연산이 불가능하며, null 값을 처리 가능하다. ※ Unboxing이란 래퍼 클래스를 자료형으로 변환하는 것을 말함 Primitive Data Type Wrapper Class double Double float Float long Long int In.. 2022. 9. 13.
[JAVA] 형변환 총정리 String to int (문자열에서 인트로) String str = "123"; int i = Integer.palseInt(str); int to String(인트에서 문자열) int i = 123; String str = Integer.toString(i); String to char(문자열에서 문자 추출) String str = "abc"; char c = str.chatAt(0); //str의 index값 입력 char to String(문자형에서 문자열로) char a = 'a'; String str = String.valueOf(a); int to float (정수형에서 실수형으로) int a = 1; int b = 2; int c = 5; float f1 = (a+b+c)/3; // 2.0.. 2022. 9. 12.
728x90