Basic/코딩기초

[코딩기초] 자바?

코딩공대 2023. 3. 22. 18:18
728x90

부트캠프 초에 배워서 정리한거보다 조금 더 깊이 들어가서 특징이나 장, 단점을 정리하려고 한다.

1. 자바의 특징, 장단점

  • 자바의 특징
     : 자바는 객체지향 프로그래밍 언어로 다양한 라이브러리와 프레임워크가 존재해 생산성이 높은 언어, 자바는 멀티쓰레드를 지원하고 안정성이 높다.


  • 자바의 장점
    1. 객체 지향 설계와 개발이 가능하여 유지보수와 확장이 용이하다.

    2. 대용량, 복잡한 시스템 개발에 적합하다.

    3. 안정성이 높고 다양한 운영체제에서 호환성이 좋음

    4. 개발 생산성이 높으며 빠른 개발이 가능하다.


  • 자바의 단점
    1. 실행 속도가 느릴 수 있다.

    2. 런타임 에러가 발생할 가능성이 높다.



2. 객체 지향 프로그래밍의 개념과 원칙

  • 객체 지향 프로그래밍의 개념
    1. 객체들이 상호작용하는 방식으로 프로그램을 설계하는것

    2. 데이터와 그 데이터를 처리하는 메서드로 이루어졌다.

    3. 캡슐화, 상속 등 다양한 개념을 사용하여 유지보수와 확장이 유리하다.

  • 객체 지향 프로그래밍의 원칙
    1. SOLID원칙 : 단일 책임 원칙, 개방 - 폐쇄적 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존 역전 원칙

    2. 캡슐화 : 객체의 필드와 메서드를 하나로 묶어 외부에서 접근을 제어하는 것

    3. 상속 : 부모 클래스에서 상속 받은 속성과 메서드를 자식 클래스에서 재사용하는 것

    4. 다형성 : 같은 이름의 메서드를 서로 다른 객체에서 다르게 동작하도록 하는 것

    5. 추상화 : 객체의 공통적인 특성을 추출하여 일반적인 개념을 만드는 것


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. 자바 프로그램이 실행되는 과정?

  1. 컴파일(Compilation)
     : 자바 소스 코드(.java 파일)를 자바 컴파일러를 사용하여 바이트 코드(.class 파일)로 변환한다.

  2. 클래스 로딩(Class Loading)
     : JVM은 클래스 로더를 사용하여 .class파일을 메모리에 로드한다.
     : 클래스 로더는 클래스를 필요로 할 때마다 로드하며, 로드된 클래스는 메모리의 "메모리 영역"에 자장된다.

  3. 실행(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