728x90
부트캠프 초에 배워서 정리한거보다 조금 더 깊이 들어가서 특징이나 장, 단점을 정리하려고 한다.
1. 자바의 특징, 장단점
- 자바의 특징
: 자바는 객체지향 프로그래밍 언어로 다양한 라이브러리와 프레임워크가 존재해 생산성이 높은 언어, 자바는 멀티쓰레드를 지원하고 안정성이 높다. - 자바의 장점
- 객체 지향 설계와 개발이 가능하여 유지보수와 확장이 용이하다.
- 대용량, 복잡한 시스템 개발에 적합하다.
- 안정성이 높고 다양한 운영체제에서 호환성이 좋음
- 개발 생산성이 높으며 빠른 개발이 가능하다.
- 객체 지향 설계와 개발이 가능하여 유지보수와 확장이 용이하다.
- 자바의 단점
- 실행 속도가 느릴 수 있다.
- 런타임 에러가 발생할 가능성이 높다.
- 실행 속도가 느릴 수 있다.
2. 객체 지향 프로그래밍의 개념과 원칙
- 객체 지향 프로그래밍의 개념
- 객체들이 상호작용하는 방식으로 프로그램을 설계하는것
- 데이터와 그 데이터를 처리하는 메서드로 이루어졌다.
- 캡슐화, 상속 등 다양한 개념을 사용하여 유지보수와 확장이 유리하다.
- 객체들이 상호작용하는 방식으로 프로그램을 설계하는것
- 객체 지향 프로그래밍의 원칙
- SOLID원칙 : 단일 책임 원칙, 개방 - 폐쇄적 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존 역전 원칙
- 캡슐화 : 객체의 필드와 메서드를 하나로 묶어 외부에서 접근을 제어하는 것
- 상속 : 부모 클래스에서 상속 받은 속성과 메서드를 자식 클래스에서 재사용하는 것
- 다형성 : 같은 이름의 메서드를 서로 다른 객체에서 다르게 동작하도록 하는 것
- 추상화 : 객체의 공통적인 특성을 추출하여 일반적인 개념을 만드는 것
- SOLID원칙 : 단일 책임 원칙, 개방 - 폐쇄적 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존 역전 원칙
3. 자바의 기본 데이터 타입과 객체 타입의 차이
- 기본 데이터 타입(Primary type) : int, double, long, boolean 등의 기본적인 데이터 타입, 값 자체를 저장한다.
- 객체 타입(Reference type) : String, Array, class, interface 등의 데이터와 해당 데이터를 처리하는 메서드.
4. 자바의 예외 처리?
- 프로그램 실행 중 예기치 않은 상황이 발생했을 때, 예외 상황을 미리 예측하여 처리하는 것이다.
- 프로그램이 비정상적으로 종료되는 것을 방지할 수 있다.
- try - catch문으로 예외상황을 처리할 수 있다.
5. 자바의 스레드
- 동시에 실행되는 실행 단위를 말한다.
- 하나의 자바 프로그램은 여러개의 스레드를 가질 수 있고, 각 스레드는 독립적으로 실행된다.
- 스레드를 사용하면 병렬작업이 가능해서 프로그램의 처리 속도를 높일 수 있다.
6. 오버로딩, 오버라이딩
- 오버로딩
: 같은 이름의 메서드를 여러 개 정의하는 것이다. 메서드 이름은 같지만, 파라미터의 개수, 타입, 순서 등이 서로 다른 경우를 말한다. - 오버라이딩
: 상위 클래스의 메서드를 하위 클래스레서 재정의 하는 것이다. 메서드의 이름, 파라미터의 개수, 타입, 순서 등이 모두 같아야 한다.
7. 컬렉션 프레임워크?
- 테이터를 저장하고 관리하기 위한 클래스들의 집합이다.
- 대표적인 인터페이스로 List, Set, Map등이 있다.
- 컬렉션 프레임워크를 이용하면 데이터를 효율적으로 저장하고 관리할 수 있고, 코드의 재사용성과 유지보수성을 높일 수 있다.
8. 자바에서 제공하는 입출력 스트림(I / O Stream)의 종류와 기능?
- 바이트 스트림(Byte Stream) : InputStream, OutputStream이 있고, 바이트 단위로 데이터를 읽고 쓰는데 사용된다.
- 버퍼 스트림(Buffered Stream) : BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter 등이 있고, 입출력 속도를 높이는데 사용한다.
9. JVM(Java Virtual Machine)이란?
- 자바의 가상 머신을 의미한다.
- 운영체제에 종속되지 않으며, 자바 프로그램을 실행하기 위해 필요한 모든 기능을 제공한다.
- 프로그램과 운영체제의 중개자 역할을 수행한다.
10. 자바 프로그램이 실행되는 과정?
- 컴파일(Compilation)
: 자바 소스 코드(.java 파일)를 자바 컴파일러를 사용하여 바이트 코드(.class 파일)로 변환한다. - 클래스 로딩(Class Loading)
: JVM은 클래스 로더를 사용하여 .class파일을 메모리에 로드한다.
: 클래스 로더는 클래스를 필요로 할 때마다 로드하며, 로드된 클래스는 메모리의 "메모리 영역"에 자장된다. - 실행(Execution)
: JVM은 메모리에 로드된 클래스를 실행한다.
: 실행 중에는 JVM이 가비지 컬렉션(Garbage Collection)을 수행하여 더 이상 사용되지 않는 객체를 제거한다.
: 다중 스레드를 지원하여 동시에 여러 작업을 수행할 수 있다.
'Basic > 코딩기초' 카테고리의 다른 글
[Cloud] Cloud? (0) | 2023.03.23 |
---|---|
[HTTP] HTTP기초 (0) | 2023.03.22 |
[코딩기초] 의사코드(pseudo code) (0) | 2023.03.13 |
[코딩기초] SSR vs CSR (0) | 2023.02.22 |
[객체지향] 객체지향 프로그래밍(OOP)?? (0) | 2023.02.21 |