JAVA

yunuyununu·2024년 10월 26일
0

개발 상식

목록 보기
1/17
post-thumbnail

Java는 1995년에 Sun Microsystems에서 개발한 객체 지향 프로그래밍 언어이다.

자바의 특징


1. 객체지향 언어이다.

  • 객체지향 프로그래밍(OOP, Object Oriented Programming)이란 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 조립 및 연결하여 전체 프로그램을 완성하는 것(상호작용을 통해 만들어지는 방식)
  • 객체를 만들기 위해서는 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다.
  • 객체지향 언어의 특징인 캡슐화, 상속성, 다형성,추상화를 완벽하게 지원한다.

객체지향언어의 특징
캡슐화(Encapsulation) : 데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법.
상속성(Inheritance) : 상위 클래스의 모든걸 하위 클래스가 모두 이어 받는 것. 즉, 부모가 자식에게 유전자를 물려주듯 부모의 특징을 자식에게 모두 물려주는 것.
다형성(Polymorphism) : 상속과 연관이 있는 개념으로 한 객체가 다른 여러형태(객체)로 재구성 되는 것. ->오버로딩/오버라이딩
추상화(Abstraction) : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것.

* 절차지향언어란?
순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법

* 오버로딩?
- 상속과 관련 없음.
- 한 클래스에서 같은 이름의 메소드를 여러개 정의하는 것.(method 중복)
- 매개변수의 타입,개수,순서가 달라야 한다.

* 오버라이딩?
- 상속에서 나온 개념
- 상위 클래스(부모 클래스)의 메소드를 하위 클래스(자식 클래스)에서 상속받은 상태에서 본문 내용만 수정하는 것.(method 재정의)


2. 이식성이 높다.

  • 서로 다른 실행환경을 가진 시스템간에 프로그램을 옮겨 실행 할 수 있는 것을 말한다.

  • 자바가상머신(Java Virtual Machine)만 설치하면 컴퓨터의 운영체제에 상관없이 작동함. (운영체제가 독립적)

  • 자바는 자바 실행환경(JRE)이 설치 되어 있는 모든 운영체제에서 실행이 가능하다.

    * JVM에서 바이트코드를 기계어코드로 변환하는 작업을 한다.


3. 인터프린터 언어이다.

  • 컴파일 언어인 동시에 인터프리터 언어이다.
  • 텍스트 소스를 컴파일 하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트 하면서 실행한다.
  • 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있다.
컴파일 언어인터프린터 언어
코드 실행 전, 컴파일 타임에 소스 코드 전체를 한번에 기계어로 변환 후 실행. 실행 파일 생성. 실행 속도 빠름.코드가 실행 단계인 런타임에 코드 한 줄씩 중간 코드인 바이트 코드로 변환 후 실행. 실행 파일 생성X. 실행 속도 느림.
C, C++, C#, JAVA 등Python, JavaScript, Ruby 등

4. 메모리를 자동으로 관리한다.

  • 자바는 개발자가 직접 메모리에 접근 할 수 없으며 메모리는 자바가 직접 관리한다.
  • 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

5. 멀티스레드(Multi-thread) 구현이 쉽다.

  • 운영체제에 따라 멀티스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관없이 멀티스레드를 쉽게 구현할 수 있다.

    * 멀티스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것.


6. 동적 로딩을 지원한다.

  • 실행 시 모든 클래스가 로딩되는 것이 아니라 필요한 시점에 클래스를 로딩하여 사용할 수 있다.
  • 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 장성할 수 있다.

7. 분산 네트워크 기술을 지원한다.

  • 자바에는 TCP/IP 라이브러리가 기본적으로 포함되어 있다.
  • 또한 http와 http 프로토콜을 기본적으로 지원한다.

TCP/IP
TCP/IP는 네트워크 프로토콜 스위트로, 온라인상의 안전하고 효율적인 데이터 전송의 필수 요건을 정의한다.
TCP는 전송 제어 프로토콜(Transmission Control Protocol)의 약자이며 한 기기에서 다른 기기로 데이터를 전송하는 것을 담당한다. IP는 인터넷 프로토콜(Internet Protocol)의 약자이며 이 프로토콜은 데이터의 조각을 최대한 빨리 대상 IP 주소로 보내는 역할을 표시한다.
데이터 전송 과정에서 TCP와 IP는 각각 담당하는 작업이 있지만, 결국에는 같은 결과를 목표로 하기 때문에 한 명칭으로 알려지기도 한다.


8. 오픈소스 라이브러리가 풍부하다.

  • 자바는 오픈소스(Open Source) 언어이고 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스의 양이 방대하다.
  • 고급 기능을 구현하는 코드를 작성하는 대신 검증된 오픈소스 라이브러리를 사용하면 애플리케이션을 다시 컴파일 할 필요가 없다.
  • 즉, 유지보수에 용이하다.

자바의 단점

  • 실행을 위해 자바 가상 머신(JVM)을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
  • 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다.
  • 비교적 작성 코드의 길이가 긴 편이다.
profile
코딩이의 끄적끄적

0개의 댓글