Java-Spring

자바 / 스프링 / 스프링부트 스터디 정리
Java-Spring/열혈 Java 프로그래밍

[Java] 네스티드 클래스와 람다

✔ 네스티드 클래스와 이너 클래스 네스티드 클래스의 구분 클래스 내에 정의된 클래스를 가리켜 네스티드 클래스라고 하며 이를 감싸는 클래스는 외부 클래스라고 함 기본적으로 클래스 내에 정의되는 모든 클래스는 네스티드 클래스라고 하며, static의 선언 여부를 기준으로 Static 네스티드 클래스, Non-static 네스티드 클래스로 나뉨 이 중에서 Non-static 네스티드 클래스를 가리켜 이너 클래스라고 함 이너 클래스는 정의되는 위치나 특성에 따라 멤버 이너 클래스, 로컬 이너 클래스, 익명 이너 클래스로 다시 나뉘며 중간에 위치한 이너를 생략하고 멤버 클래스, 로컬 클래스, 익명 클래스로 부르는 것이 일반적 class OuterClass { static class StaticNestedClass..

Java-Spring/열혈 Java 프로그래밍

[Java] 열거형, 가변 인자 그리고 어노테이션

✔ 열거형 인터페이스 기반의 상수 정의 인터페이스 내에 선언된 변수는 public, static, final이 선언된 것으로 간주되므로 이를 통해 의미가 부여된 이름을 갖는 상수들을 하나의 인터페이스로 묶어서 선언할 수 있음 하지만 자료형이 같지 않더라도 값이 같을 경우 실행 오류가 발생하지 않는 문제점이 발생함 interface Animal { int DOG = 1; int CAT = 2; } interface Person { int MAN = 1; int WOMAN = 2; } Person.MAN // 1 Animal.DOG // 1 자료형의 부여를 돕는 열거형 열거형은 열거형 값을 정의하며, 참조변수의 선언으로 사용될 경우 해당 열거형 내에 선언된 열거형 값만 대입이 가능함 enum Scale { ..

Java-Spring/열혈 Java 프로그래밍

[Java] 컬렉션 프레임워크

✔ 컬렉션 프레임워크의 이해 컬렉션 프레임워크란? 프레임워크는 잘 정의된 구조 또는 골격을 뜻하며 자바에서 말하는 프레임워크는 잘 정의된 구조의 클래스들을 뜻함 즉 프로그래머들이 쓸 수 있도록 잘 정의된 클래스들의 모임 컬렉션 프레임워크는 데이터의 저장 방법, 그리고 이와 관련 있는 알고리즘에 대한 프레임워크를 뜻함 또는 자료구조와 알고리즘을 제네릭 기반의 클래스와 메소드로 미리 구현해 놓은 결과물이라고 할 수 있음 이로 인해 자료구조를 몰라도 트리 기반으로 데이터를 저장할 수 있고, 알고리즘을 몰라도 이진 탐색을 수행할 수 있음 예) 자료구조 : 리스트, 스택, 큐, 트리, 해쉬 / 알고리즘 : 버블 정렬, 퀵 정렬, 이진 탐색 등 컬렉션 프레임워크의 기본 골격 컬렉션 클래스들이 구현하는 인터페이스들의..

Java-Spring/열혈 Java 프로그래밍

[Java] 제네릭

✔ 제네릭의 이해 제네릭이란? 제네릭이란 자료형을 대상으로 일반화하는 것 이로 인해 자료형에 의존적이지 않은 클래스를 정의할 수 있게 됨 자료형에 의존적이지 않은 형태로 클래스를 정의하기 위해서는 Object를 타입 매개변수인 T로 대체하고 T가 인스턴스 생성 시 자료형을 결정하기 위한 표식 임을 알린 후, 인스턴스를 생성할 때 T의 자료형을 타입 인자로써 전달하여 매개변수화 타입(제네릭 타입)을 결정하면 됨 이로 인해 필요 시 형 변환을 해야 하는 불편함이 사라지고 프로그래머가 자료형과 관련된 실수를 할 경우 컴파일 과정에서 드러나게 할 수 있게 됨 // 제네릭 이전 (AppleBox, OrangeBox) class Apple { public String toString() { return "I am ..

Java-Spring/열혈 Java 프로그래밍

[Java] 자바의 기본 클래스

✔ Wrapper 클래스 기본 자료형의 값을 감싸는 래퍼 클래스 래퍼 클래스는 감싸는 클래스로, 감싸는 대상은 정수, 실수, 문자와 같은 기본 자료형의 값들임 int형 정수나 double형 실수와 같은 기본 자료형의 값들을 인스턴스로 표현하여 이에 대한 참조 값이 필요한 경우에 사용 Integer iInst = new Integer(3); 모든 기본 자료형을 대상으로 래퍼 클래스가 정의되어 있음 Boolean : public Boolean(boolean value) Character : public Character(char value) Byte : public Byte(byte value) Short : public Short(short value) Integer : public Integer(int ..

Java-Spring/열혈 Java 프로그래밍

[Java] Object 클래스

✔ Object 클래스 Object 클래스란? 모든 자바 클래스의 최상위 클래스 인스턴스 소멸 시 해야 할 일이 있다면? Obejct 클래스에 정의되어 있는 finalize 메소드 아무도 참조하지 않는 인스턴스가 가비지 컬렉션에 의해 소멸되기 전에 자동으로 호출됨 인스턴스 소멸 시 반드시 실행해야 할 코드가 있다면 finalize 메소드의 오버라이딩을 고려 Object와 같이 자바에서 제공하는 클래스의 메소드라면 오버라이딩 된 메소드를 호출하는 것이 안전 class Person { String name; public Person(String name) { this.name = name; } @Override protected void finalize() throws Throwable { super.fin..

Java-Spring/열혈 Java 프로그래밍

[Java] 예외처리

✔ 자바 예외처리의 기본 예외란? 오류는 단순한 문법적 실수를 뜻하므로 대부분의 오류는 컴파일 과정에서 그 잘못이 드러나게 됨 그러나 예외는 프로그램 실행 중에 발생하는 정상적이지 않은 상황을 뜻함 이때 가상머신은 예외가 발생하면 그 내용을 간단히 출력하고 프로그램을 종료하게 됨 이 외에도 예외의 원인도 설명하지 않으며 예외에 대한 처리를 제대로 해주지 않을 경우가 존재함 그러므로 자바에서 예외처리는 필수 그러므로 예외의 처리를 가상머신이 아닌 프로그래머가 원하는 예외의 처리 방식으로 해주면 됨 예외 처리를 위한 try ~ catch 자바는 예외 상황별로 상황을 알리기 위한 예외 클래스를 정의하고 있음 관련 오류가 발생하면 가상머신은 예외 클래스의 인스턴스를 생성하고 이 인스턴스를 프로그래머가 처리하면 ..

Java-Spring/열혈 Java 프로그래밍

[Java] 인터페이스와 추상 클래스

✔ 인터페이스의 기본과 그 의미 인터페이스란? 기본 골격은 클래스와 동일하나 class 대신 interface라는 선언이 붙어 있음 인터페이스의 메소드는 몸체 없이 세미콜론으로 마무리됨 이렇게 메소드의 몸체가 비어 있는 메소드를 가리켜 추상 메소드라고 함 interface Printable { public void print(String doc); } 인터페이스를 대상으로는 인스턴스 생성이 불가능함 다만 이러한 인터페이스는 다른 클래스에 의해 상속이 됨 이렇게 클래스가 인터페이스를 상속하는 행위를 구현이라고 함 구현할 인터페이스를 명시할 때는 키워드 implements를 사용 한 클래스는 둘 이상의 인터페이스를 동시에 구현할 수 있음 상속과 구현은 동시에 가능함 class Printer implement..

김깅긍
'Java-Spring' 카테고리의 글 목록 (10 Page)