0803 1일차 수업정리

JAVA
국비교육시간에는 자바를 중점적으로 배워 이용한다고 한다.
자바는 객체 지향 언어로 그 외에도 다양한 특징이 존재한다.
자바의 특징
- 객체 지향 프로그래밍
- 운영체제 (os)에 독립적
- 자동메모리 관리
- 멀테스레드 지원
- 동적로딩 가능
운영체제(OS)에 독립적
자바는 운영체제에 독립적이다.
이는 자바의 개발환경과 배포된 환경이 달라도 실행이 가능하다는것을 의미한다.
자바는 JVM(Java Virtual Machine)을 이용하여 별도의 컴파일러로 변환하여 실행하기 때문에
우리는 운영체제와 무관하게 어디서든 자바를 실행할 수 있다.
객체지향언어
자바는 객체 지향 언어로서 아래 5가지 특성을 가진다 .
- 상속
- 캡슐화
- 다형성
- 추상화
- 코드의 재사용 및 유지보수에 용이
- 상속
- 부모 클래스의 변수와 메서드를 자식 클래스가 전부 물려받아 이용이 가능하다.
- 캡슐화
- 객체의 변수와 함수를 하나의 클래스로 묶어 외부에서 쉽게 접근하지 못하도록 한다.
이 때, 객체가 제공하는 필드와 메소드 내에서먄 접근이 가능하다.
- 다형성
- 하나의 객체가 여러타입을 가질 수 있다.
- 오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅 등의 방법이 있다.
- 추상화
- 공통의 속성이나 기능을 묶어 이름을 붙이는 것.
- 추상클래스 , 인터페이스
- 코드의 재사용 및 유지보수에 용이
- 위 4가지의 특성들로 코드의 재사용과 유지보수가 용이하다.
자동메모리 관리
- Garbage Collection을 이용하여 메모리 관리를 자동으로 수행해준다.
- 직접 메모리를 해제하고 싶은 경우, System.gc();로 Garbage Collector를 호출하여
해제할 수 있다.
멀테스레드 지원
- 자바는 운영체제의 지원없이 멀티스레드를 이용할 수 있다.
- Thread와 Runnabl방식이 있다.
동적로딩
- 실행될 떄 모든 객체가 생성되는것이 아니라 객체가 필요한 시점에 클래스를 동적로딩하여 생성한다.
- 메모리를 적게 차지하는 장점이 있다.
- 반대되는 개념으로는 정적로딩이 있다. (C언어가 대표적 )
👀간단하게 정리해보았다. 추후 시간이 된다면 단락별로 상세히 정리하고 링크를 삽입해 두어야겠다.