전체 글

전체 글

    [JSP] 서블릿(Servlet)의 동작순서 및 생명 주기(Life cycle)그리고 선처리, 후처리

    서블릿의 동작 순서 웹브라우저 → 웹서버 →웹어플리케이션서버 →서블릿 컨테이너 * 쓰레드 생성 * servlet 객체 생성 Servlet 기술 : CGI를 대신할 수 있는 Java 기술(기존의 CGI의 차이점) 1) 기존 CGI의 로딩과 초기화 작업을 진행하기 때문에 서버에 대한 오버헤드가 크다. 서블릿 > 한번 메모리에 로딩되어 수행되면 작업이 모두 수행되어 끝나더라도 메모리에서 해제 되지 않는다.(재활용) 계속적인 수행 요청이 들어와도 메모리 로딩이나 초기화를 처리하지 않는다. 모든 서블릿은 한번만 메모리에 로딩 되어진다. 2) 특정 웹 서버에 비의존적이다. 서블릿 > Java 언어로 구현되는 프로그램이기 때문에 플랫폼(운영체제)과는 무관한 실행 파일을 만들 수 있다. 기존의 CGI는 성능향상을 꽤하..

    [Java] 다형성(Polymorphism)과 추상 클래스(abstract class) 그리고 추상 메소드(abstract method)

    다형성(Polymorphism) : 하나의 이름의 클래스나 메소드가 "여러 가지 형태의 동작을 하는 능력" 클래스의 다형성 : 한 타입의 참조변수로 여러타입의 객체를 참조 가능, 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조 가능한 것 메소드의 다형성 : 메소드 오버로딩, 메소드 오버라이딩 * 다형성의 유용성 : 다형성에 의해서, 자식타입 객체가 부모타입으로 자동 형변환 가능! 부모 타입만으로도 상속된 모든 자손 타이블을 담을 수 있다. * instanceof 연산자 : 객체 타입을 확인하는 연산자, true, false를 리턴한다. ex) 객체 + instanceof + 클래스 * 다형성의 어려움 OOP03 참고 (타입 및 인스턴스, casting 관련) * 클래스의 구조 : 멤버 변수 ..

    [Java] 메소드 재정의(Overriding)와 final 메소드

    메소드 재정의(Overriding) : "상속" 관계에서 "부모 클래스에 있던 메소드"를 "재정의"하는 것, 부모 클래스에 있는 메소드와 매개변수 리스트가 동일해야 한다. 부모 클래스에 있는 메소드와 접근권한 수식어가 동일 할 필요는 없지만, 접근권한의 범위가 축소될 수는 없다. 즉, 접근권한은 같거나 더 넓은 수식어를 사용해야 한다. * 메소드 오버로딩(Overloading)과 혼동하지 말자! * final 메소드 : 더이상 오버라이딩 불가 * final 클래스 : 더이상 상속 불가

    [Java] 상속(Inheritance)

    상속(Inheritance)의 이점 : 상속을 통하여 기존의 객체를 그대로 활용하면서, 새로운 객체에서 추가, 변경되는 부분만 작성함으로 개발 효율을 높일 수 있다. * 자바에선 오로지 "하나의 부모" 로부터 상속 받을 수 있다. (단일 상속, 다중 상속 허용하지 않음) * 상위클래스를 상속받아서 하위클래스를 정의하는 방법 → class 하위클래스 extends 상위클래스 * sub class(하위 클래스)에서는 super class(상위 클래스)가 가지고 있는 멤버 변수들은 선언하지 않아도 사용할 수 있다. * 자바의 모든 클래스는 java.lang.Object로부터 상속 받는다. 그러므로 java.lang.Object는 모든 클래스의 부모 클래스이다. * 상속에서 생성자 호출 순서 1. 자식 클래스의..