JVM ( Java Virtual Machine, 자바 가상 머신)
MVC ( Model-View-Controller, 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴.)
- MVC가 처리해주는 작업
- URL를 분석해서 적절한 컨트롤러 결정
- 컨트롤러에 필요한 메서드를 호출
- 컨트롤러의 결과 데이터를 view로 전달
- 처리결과를 보여줄 적절한 view를 결정 - 개발자가 직접 해야하는 작업
- 특정 URL에 동작하는 컨트롤러를 설계
- 컨트롤러 내에 원하는 결과를 메서드로 설계
- 서비스 객체의 생성
- DAO 객체의 생성(my Batis 사용시 X)
- view에서 전달 받은 데이터의 출력
- 모델: 데이터와 비즈니스 로직을 관리한다.
- 뷰: 레이아웃과 화면을 처리한다.
- 컨트롤러: 모델과 뷰로 명령을 전달한다.
1. 자바가 어떤 컴퓨터에서나 실행이 가능한 이유?
-> 특정한 컴퓨터가 아닌 중간적인 코드를 생성하고 이것을 해석하여 실행하는 구조로 되어 있기 때문에
2. 자바의 어떤 특징 떄문에 컴퓨터 구조에 중립적인가?
-> 바이트 코드와 자바가상기계(JVM)
3. 자바와 C언어의 비교
-> 객체지향 언어, 절차적 언어
4. 멀티스레딩이란?
-> 여러가지 작업을 동시에 실행
5. 메소드 오버라이딩과 오버로딩의 차이는?
-> 메소드 오버라이딩은 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의, 즉 상속받은 부모 클래스의 메소드를 재정의.
조건은 메소드의 동작만들 재정의 하는 것. -> 메소드의 선언부는 기존 메소드와 완전히 같아야 한다. 하지만 메소드의 반환타입은 부모 클래스의 반환 타입으로 타입 변환 할 수 있는 타입이라면 변경 가능, 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없다, 부모 클래스의 메소드보다 더 큰 예외를 선언 할 수 없다.
-> 오버로딩은 새로운 메소드를 정의 하는 것
6. 애플릿 : 웹 페이지 안에서 실행
7. 서블릿 : 웹 서버 안에서 사용자의 요청을 처리.
8. JRE는 자바 프로그램을 실행만 시킬 수 있는 환경, JDK는 개발도 할 수 있음.
9. 제네릭(generic) : 데이터 타입을 일반화(generalize) 한다.
클래스나 메소드 내부에서 사용 할 내부 데이터 타입을 컴파일 시에 미리 저장
클래스나 메소드 내부에서 사용되는 객체의 타입 안정성이 높다.
반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력이 적다.
10. OOP(Object-Oriented Programming), 객체 지향 프로그래밍에서는 모든 데이터를 객체(->우리가 인식할 수 있는 사물)로 취급. 이러한 객체의 상태와 행동을 구체화 하는 형태의 프로그래밍
- 객체를 만들어내기 위한 설계도 -> 클래스
- 클래스: 필드, 메소드
- 필드 : 객체의 상태를 나타내는 필드, 클래스에 포함된 변수
- 메소드 : 객체의 행동을 나타내는 메소드, 어떠한 특정 작업을 수행하기 위한 명령문의 집합, [중복코드 피함, 가독성이 올라가고 유지보수에 유리]
- 인스터스 : 메모리에 할당된 객체,
하나의 클래스에 같은 이름의 메소드를 둘 이상 정의 X -> 메소드 오버로딩을 이용하면 가능
- 생성자(constructor) : 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성
초기화되지 않은 상태 -> 객체 생성 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 메소드 제공.