본문 바로가기

JAVA

(9)
[JAVA] 리플렉션(Reflection) 이란? 리플렉션(Reflection) 이란? 리플렉션은 힙 영역에 로드된 Class 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메소드를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API이다.  여기서 로드된 클래스라고 함은, JVM의 클래스 로더에서 클래스 파일에 대한 로딩을 완료한 후, 해당 클래스의 정보를 담은 Class 타입의 객체를 생성하여 메모리의 힙 영역에 저장해 둔 것을 의미한다.   리플렉션의 장점?런타임 시점에서 클래스의 인스턴스를 생성하고, 접근 제어자와 관계 없이 필드와 메소드에 접근하여 필요한 작업을 수행할 수 있는 유연성을 가지고 있다.리플렉션의 단점?캡슐화를 저해한다.런타임 시점에서 인스턴스를 생성하므로 컴파일 시점에서 해당 ..
[JAVA] 제너릭이란? 제너릭이란 ?List list1 = new ArrayList();List list2 = new ArrayList();Map map = new ArrayList();위와같이 꺽쇠안에 클래스 타입이 명시된 패턴을 자주 발견할 수 있다.이걸 제네릭(Generic) 이라고 부르며, 제네릭 파라미터는 꺽쇠안에 포함하여 전달한다. 제너릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다.다시 말해 특정 타입을 미리 지정하는 것이 아니라 필요에 따라 타입을 지정할 수 있도록 하는 일반 타입이라는 것. 제너릭의 장점 및 사용이유?타입에 대해 유연성과 안정성을 제공한다.타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.타입을 유연하게 처리하며, 잘못된 타입 사용으..
[JAVA] Inner Class 란?(내부 클래스) 내부 클래스 (Inner Class)클래스 내에 선언된 또다른 클래스를 내부 클래스라고 부른다.외부 클래스와 내부 클래스가 서로 연관되어 있을 때 사용한다.내부 클래스를 사용하면 외부 클래스의 멤버들에 쉽게 접근할 수 있다.내부 클래스는 외부 클래스 안에 선언하여 사용한다는 점을 제외하면 일반 클래스와 큰 차이점이 없다.즉, 외부 클래스와 내부 클래스가 연관되어 있을 때, 사용성을 높이기 위한 수단이다.또한, 불필요한 데이터를 감출 수 있어 캡슐화(Encapsulation)를 하는데 유용하다. 내부 클래스 장점클래스를 논리적으로 그룹화 할 수 있다.더욱 타이트한 캡슐화의 적용이 가능하다.가독성이 좋고 유지 관리가 쉬운 코드가 된다. 내부 클래스의 분류내부 클래스는 인스턴스 내부 클래스, 정적 내부 클래스..
[JAVA] Spring 어노테이션 @SuppressWarnings 이란? @SuppressWarnings 이란? 컴파일 경고를 사용하지 않도록 설정해주는 것으로이클립스에서 노란색 표시줄이 나타날 때 해당 어노테이션을 사용함으로 노란줄을 없앨 수 있다.즉, 경고를 제외시킬 때 사용한다.        (= 컴파일러가 경고하는 내용 중 "이 내용은 경고하지마"라며 제외 할 때 사용 하는 것)        + 이클립스에서 노란색 표시줄이 나타나는 이유?            1. 변수 선언 하였지만 사용하지 않았을 때            2.  스크립트나 구문이 버전이 맞지 않을 때            3. 버그를 발생할 수 있는 코드나 권장하지 않는 코딩을 할 때            그 외 문법상의 문제가 없는 경우에도 불구하고 나타날때도 있다. @SuppressWarnings 사용..
[JAVA] Map을 구현하는 클래스 종류 자바 컬렉션 프레임워크 _ Map 인터페이스  1. HashMapMap 컬렉션 클래스에서 가장 많이 사용되는 클래스이다.Map의 특징처럼 키와 값을 묶어서 하나의 데이터(entry)로 저장한다.해싱(hasing)을 사용하기에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다.HashMap은 키(key)와 값(value)에 null을 허용한다.동기화를 보장하지 않는다.동기화 처리를 하지 않기 때문에 검색속도가 빠르다. But 신뢰성과 안정성이 떨어진다.싱글 쓰레드 환경에서 사용하는 것이 좋다. ( thread-safe하지 않기 때문)  2. HashTableHashMap 클래스와 같은 동작을 하는 클래스이다.키와 값에 null을 허용하지 않는다.동기화를 보장한다.멀티 쓰레드 환경에서 사용할 수 있..
[JAVA] MAP과 HASH MAP의 차이? Map이란? - Map은 자바에서 키(key)와 값(value)을 저장하는 데이터 구조를 표현하는 인터페이스이다.  (= Map 인터페이스라고 불린다.) - 키와 값의 쌍을 '매핑(Mapping)'이라고 부른다.  - Map 인터페이스는 여러 구현체가 있으며, 그중 하나가 Hash Map 이다.   (Map 인터페이스의 여러 구현체 : Hash Map, Tree Map, Linked Hash Map 등)   Hash Map 이란? - Hash Map은 Map인터페이스를 구현한 클래스이며, 해시 테이블을 사용하여 키와 값을 저장한다. - 키와 값을 둘 다 null일 수 있으며, Hash Map은 키 중복을 허용하지 않지만 값의 중복은 허용한다. - Hash Map은 삽입순서를 유지하지 않는다. 대신 해시 ..
[JAVA] Maven 이란? Maven이란?라이프 사이클 종류플러그 인의존성(dependency)pom.xmlMaven디렉터리 구조 Maven 이란?  : 자바용 프로젝트 관리 도구. + Maven은 앞서 빌드에 대해서 알아볼 때 나왔던 빌드 툴 중 하나이다.  오늘은 자주 사용하고 있는 Maven에 대해 조금 더 자세히 알아봅시다.  Maven- Maven은 Apache사에서 만든 빌드 툴(build tool)이다.- pom.xml파일을 통해 정형화된 빌드 시스템으로 프로젝트 관리를 해준다.- 프로젝트의 전체적인 라이프 사이클을 관리한다.   Maven Life Cycle  및 종류Life Cycle ? Maven은 프레임워크 이기 때문에 동작 방식이 정해져 있고, 미리 정의하고 있는 빌드 순서가 있다. 이를 라이프 사이클(Lif..
[JAVA] Public Class 꼭 사용하는 이유? (feat. Public Class VS Class) 스터디 주제를 정하기 위해 서칭하는 중 'Public Class 꼭 사용하는 이유가 무엇일까 ?' 라는 글을 보게 되었다. 명확한 해답이 나와있지는 않았지만 궁금해져서 스터디 주제로 넣어보기로 했다. ♥ Public Class 꼭 사용하는 이유? 간단하게 말해 외부에 노출하고 싶은 class를 public class로 지정한다. (pubic 접근 제한자 특성) 객체 지향에서는 하나의 클래스 보다 작은 열개의 클래스가 더 좋은 경우가 많다. Main 부분에서 Public Class를 가져다 사용함으로 모든 클래스를 활용할 수 있게 만드는것이다. ♥ Public Class VS Class 두개의 차이점은 무엇인가? Public Class의 이름은 파일명과 동일해야하며, Class는 파일명과 동일하지 않아도 ..