본문 바로가기

JAVA

(33)
JVM (JAVA VIRTUAL MACHAIN) JAVA VIRTUAL MACHAIN ▶ JAVA 프로그램 실행구조 코드를 작성할 때 메모리 관리가 중요하다. 컴퓨터의 메모리 공간은 한정되어 있고, 불필요한 메모리가 누적되다 보면 시스템 속도 저하는 물론이고 컴퓨터의 메로기 공간을 초과하게 된다. 일반적인 프로그램은 windows나 Linex 같은 운영체제(os) 위에서 실행하게 됩니다. JAVA프로그램의 실행은 운영체제가 JVM을 실행시키고, JVM이 자바 프로그램을 실행시키는 구조를 가지고 있습니다. JVM (JAVA VIRTUAL MACHAIN) JVM은 Java Virtual Machine의 약자로, 가상의 하드웨어 역할을 해주는 software입니다. - Virtual : 가상화, 즉 Hardware 적인 형태가 아닌 Software 적인 형..
Generic(제네릭) 제네릭 인스턴스(객체)화 시에 다룰 데이터 타입을 확정하여 명시한다. 다양한 타입의 객체들을 다루는 메서드나 클래스에 컴파일 시의 타입 체크를 해주는 기능 다룰 객체의 타입을 미리 명시하여 객체의 형 변환 불필요 (불러올때 형 변환이 필요없음) List test = new ArrayList(); //와일드 카드라고 하며, 아무 참조타입 대입가능 List test = new ArrayList(); // 위와 같은 지정된 참조타입으로만 데이터 저장과 호출 가능 ▶ 제네릭의 장점 - 타입의 안정성 - 형 변환 작업 필요하지 않음. - 코드가 더 간결해진다. 형 변환 코드 생략으로 인해 ▶ 제네릭 다형성 슈퍼클래스가 참조타입으로 올 수 있는 형태로 제네릭도 사용이 가능하다. 클래스, 인터페이스도 활용이 가능하다..
필터 (Filter) 필터란? ▶ javax.servlet.filter 인터페이스 구현 - 요청 URL에 따른 HTTP 요청과 응답을 변경할 수 있는 재사용 web.xml 혹은 어노테이션으로 url 설정이 가능하다 ▶ 필터 생명주기 및 주요 메서드 - init( ) : 최초 1회 실행 메서드 - doFilter() : 필터 실힝시 매번 실행되는 메서드 - destory() : 필터 제거시 1회 실행 메서드 ▶ 필터 실행 순서 - 경로 요청 : http://localhost/member/memberList
Servlet (서블릿) 서블릿 (Servlet) 자바를 사용하여 웹을 만들기 위해 필요한 기술. 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램으로, Java Thread를 이용하여 동작한다. 자바로 구현 된 CGI(공통 게이트웨이 인터페이스의 약어.) - CGI : 웹서버는 요청에 의해 응답을 HTML로만 보여준다. HTML만으로는 모든 정보를 다 처리할 수가 없고, 따라서 요청과 응답에 따른 양방향으로 정보처리를 하기위해 외부 프로그램을 수행한다. 이 결과를 HTML 형태로 보여주는 것. 클라이언트가 웹서버에 요청(request)하면 웹서버는 그것을 서블릿에서 분석,처리하여 클라이언트에게 response에 담아 넘겨준다. ▶ HttpServlet GenericServlet(추상클래스)을..
인터페이스 인터페이스 일반적으로 서로 다른 하드웨어 장치들이 상호접속하여 데잍를 주고받을 수 있는 규격. Java에서는 추상 클래스와 거의 비슷한 메커니즘을 인터페이스라는 기능을 사용하여 표현할 수 있다. ▶ 인터페이스 선언 interface iVehicle{ void show(); //추상메소드 } 클래스를 선언하는 방법과 유사하지만, 'class' 대신 'interface' 키워드를 사용한다. 인터페이스 선언 규칙 - 인터페이스의 멤버는 추상메소드와 상수로만 구성된다. - 모든 메소드는 public이며 생략이 가능하다. - 인터페이스의 객체를 생성할 수 없다. - 다른 인터페이스에 상속될 수 있다. - 인터페이스도 레퍼런스 변수의 타입으로 사용이 가능하다. ▶ 인터페이스 구현 public class Car im..
추상 클래스 추상 클래스 클래스 이름 앞에 abstract 라는 키워드를 사용한다. 이런 클래스를 추상 클래스라고 부르며, 추상 클래스는 객체를 생성 할 수 없다. 즉, 내 자신이 인스터스화 할 수 없다. 따라서 상속을 이용해서 서브클래스를 인스턴스화 하여 추상클래스 슈퍼클래스에 접근해보자. 추상 클래스를 상속받은 모든 서브 클래스는 추상 메소드와 같은 이름의 메소드를 가지고 있다. - 강제적으로 구현하기 위함이다. 또한, 추상화 된 클래스를 상속받은 서브 클래스의 참조타입은 슈퍼클래스의 클래스 타입으로 객체화 되어야 한다. 추상 클래스가 직접 인스턴스화 하는게 아니라 슈퍼클래스 참조타입으로 서브클래스가 인스턴스화된다. ▶ 추상 클래스 특징 - 클래스명 앞에 abstract 키워드가 붙는다. - abstract 키워..
메소드 오버라이딩 오버라이딩 슈퍼클래스의 메서드와 동일하 메서드 명과 인수로 재 구현하는 방식 슈퍼클래스의 메서드를 재 구현 할 시 @Override 어노테이션이 붙는다. 이클립스에서 해당 메소드명. 하고 ctrl+space 입력-> 해당 메소드 선택 ▶ 오버라이딩 / 오버로딩 차이점 - 오버로딩 : 메소드 이름이 같지만 인수의 형과 갯수가 다른 메소드를 정의하는 것. - 오버라이딩 : 서브 클래스에서 이름과 인수의 형, 개수까지 슈퍼 클래스의 메소드와 동일한 메소드를 정의하는 기능이다.
상속(extends) 상속 이미 설계된 클래스를 바탕으로 새로운 클래스를 만들수 있다. 기존에 있던 클래스를 확장하며 필드를 물려받는다. 이를 상속 받는다고 한다. 서브 클래스는 슈퍼 클래스의 필드 및 메서드를 가진다. class 서브 클래스 이름 extends 슈퍼 클래스 이름{} - 슈퍼클래스 : 기존의 클래스 - 서브클래스 : 기존의 클래스를 상속받은 클래스 슈퍼클래스를 상속받아(확장해) 선언한 클래스는 서브클래스이며, extends 키워드가 필요하다. extends 키워드가 없는 경우는 Object 클래스를 상속받는다. 또한, 확장을 하더라도 접근지정자에 영향을 받는다. 서브클래스 에서 슈퍼클래스 메소드를 호출할 수 있다. 슈퍼클래스는 서브클래스에 접근 할 수 없다. 내 위치에서 나 자신을 가르킬 때는 this 키워드..