자바 프로그래밍 되돌아보기
객체지향 프로그래밍 : 데이터를 객체로 취급하여 프로그램에 반영한 것으로 순차적으로 동작하는 기존의 프로그램과 다르게 객체와 객체의 상호작용을 통해프로그램이 동작하는 것
객체지향 프로그래밍의 특징
1. 코드의 재사용성이 높다
2. 개발속도 향상
3. 상속을 통한 장점 극대화
자바(JAVA) : 자바는 JVM에서 동작하므로 운영체제에 독립적이다. JVM에서 GC(Garbage Collection)가 자동으로 메모리를 관리해주며, 객체지향 프로그래밍을 위해 여러 언어적 지원을 하고 있다. (캡슐화, 상속, 추상화, 다형성 등)
자바의 단점 : 자바는 한 번의 컴파일로 실행 가능한 기계어가 만들어지지 않고, JVM에 의해서 기계어로 번역된 후 실행하는 과정을 거치기 때문에 기계어보다 속도가 느린 단점이 있다.
접근 지정자
public : 같은 프로젝트 내 어디서든 접근 가능
private : 같은 클래스 내에서만 접근 가능
protected : 상속받은 식 클래스에서만 접근 가능
default : 같은 패키지 내 어디서든 접근 가능
자바의 메모리 영역
1. 메서드 영역 : static 변수, 전역변수, 코드에서 사용되는 Class 정보 등이 올라간다,
2. Stack : 지역변수, 함수(메서드) 등이 할당되는 LIFO(Last In First Out) 방식의 메모리
3. Heap : new 연산자를 통한 동작할당된 객체들이 저장되며, 가비지 컬렉션에 의해 메모리가 관리되어 진다.
Servlet : 자바로 웹 개발을 위해 만들이진 것으로, Container가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것
JSP : html 기반에 JAVA 코드를 블록화하여 삽입한 것으로 Servlet을 좀 더 쉽게 접근할 수 있도록 만들어 진 것
JDBC(Java Data Base Connection) : Java에서 DB에 접근할 수 있는 프로그래밍
다형성(Polymorphism) : 같은 자료형에 여러 가지 객체를 대입하여 다양한 결과를 얻어내는 성질
오버로딩(Overloading) : 같은 이름의 매소드를 여러개 정의하는 것으로 매개변수의 타입이 다르거나 개수가 달라야 한다.
오버라이딩(Overriding) : 부모 클래스의 메소드를 자식 클래스에서 재정의하여 사용하는 것
추상 메서드 : 메서드의 정의부만 있고 구현부는 있지 않은 메서드
추상 클래스 : 추상 메서드를 적어도 하나 이상 가지고 있는 클래스로 자식클래스에서 오버라이딩(재정의)이 필요한 추상 메서드를 가지고 있기 때문에 객체화 할 수 없다.
인터페이스 : 모든 메서드가 구현부가 없는 추상메서드로 이루어진 클래스로, abstract 키워드를 붙이지 않아도 자동으로 모든 메서드는 추상메서드로 정의가 된다.