JAVA

· JAVA
클래스 로더는 컴파일 된 자바의 클래스 파일 ( *.class ) 을 동적으로 로드하고, JVM의 메모리 영역인 Runtime Data Areas에 배치하는 작업을 수행한다. 클래스 로더에서 class 파일을 로딩하는 순서는 다음과 같이 3단계로 구성된다 Loading ( 로드 ) : 클래스 파일을 가져와서 JVM의 메모리에 로드한다. 클래스를 메모리에 올리는 Loading 기능은 한번에 메모리에 올리는게 아니라 애플리케이션에서 필요한 경우 동적으로 메모리에 적재한다. Linking ( 링크 ) : 클래스 파일을 사용하기 위해 검증하는 과정이다. Initialization ( 초기화 ) : 클래스 변수들을 적절한 값으로 초기화한다.\ JVM은 실행될때 모든 클래스를 메모리에 올려놓지 않고, 그때마다 필요..
· JAVA
리플렉션 ( Reflection ) 이란 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드,타입,변수들에 접근할 수 있도록 해주는 자바 API 컴파일 단계가 아닌 런타임 단계에서 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법 자바 Class 클래스 ( Java.lang.Class ) 코드를 실행하기 전 컴파일 단에서 개발자가 직접 클래스를 선언하는것이 아닌. 코드 상에서 호출 로직을 통해 클래스 정보를 얻어와 다룸으로써 런타임 단에서 다이나믹하게 클래스를 핸들링하기 위해 사용하는 객체. Class 클래스는 java.lang.Class 패키지에 별도로 존재하는 독립형 클래스로서, 자신이 속한 클래스의 모든 멤버 정보를 담고 있기 때문에 런타임 환경에서 동적으로 저장된 클래스나 인터..
· JAVA
Optional 객체 생성 Optional의 객체생성 방법은 Optional.of , Optional.ofNullable() , empty() , stream()의 종료연산으로 생성이 가능하다. Optional.of Null을 허용하지 않는다. ( NPE발생 ) 어쩌다 Null이 들어갈 수도 있다면, Option.ofNullable()을 사용해야 한다. public static void of(String[] args) { Optional opStr1 = Optional.of("111"); Optional opStr2 = Optional.of(null); // NullPointerException } Optional.ofNullable() 이름처럼 Value가 Null인 경우에도 NPE를 발생시키지 않고 ..
· JAVA
REST의 정의 “Representational State Transfer” 의 약자 Represetational = 표현,묘사 State = 상태 Transfer = 전송 웹 어플리케이션의 상태(정보)를 전송하는 표현 방식 웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용”하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다고 한다 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 REST는 기본적으로 웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 떄문에 웹의 장점을 최대한 활용 할 수 있는 아키텍처 스타일이다. REST는 네트워크 상에서 Client와 Server사이의 통신 방식 중 하나..
· JAVA
생성자는 단점이 하나 있는데 선택적 매개변수의 수가 많아질경우 대응하기가 어려워 지는것, 예를 들어서 받아오는 매개 변수에 따라 계속해서 생성되는 생성자의 코드를 보았을 때 매개변수의 개수에 따라 호출되는 생성자를 짐작하기가 매우 혼잡해 진다. 또는 생성자를 호출 하기 위해서 내가 필요로 하지 않은 값까지 설정해 주어야 한다는 단점이 있다. 자바빈즈 패턴 자바 빈즈 패턴이란, 매개변수가 없는 생성자로 객체를 만들어 Setter를 호출하여 원하는 매개변수의 값을 설정 해주는 방식이다. 하지만 이 방법에도 심각한 단점이 있는데, 디폴트 생성자로 객체만 생성하고 필요한 매개 변수들을 Setter메소드로 값을 설정해준다고 할때 만약 설정 해야할 매개 변수의 수가 무수히 많다면 그만큼 많은 Setter 메소드를 ..
· JAVA
JAVA 9 버전 부터 Map이나 List에 대한 생성 방식을 기존의 set.add , list.add , map.put 으로 하나하나씩 선언 하는 방식 // 변경전 Set set = new HashSet(); set.add("제이든"); set.add("Jayden"); List list = new ArrayList(); list.add("제이든"); list.add("버나드"); list.add("자이노"); list.add("메이슨"); list.add("엘빈"); Map map = new HashMap(); map.put("J","Jayden"); map.put("B","Bernard"); map.put("Z","Zino"); map.put("M","Mason"); map.put("E","Elvi..
pows1011
'JAVA' 카테고리의 글 목록