Programming/JAVA

[JAVA] JAVA의 특징(자바)

HoonSikE 2022. 2. 18. 01:08
반응형
SMALL
JAVA란?
 객체 지향 프로그래밍 언어로서 C/C++에 비해 간략하고 쉬우며 네트워크 기능의 구현이 용이하기 때문에, 인터넷 환경에서 가장 활발히 사용되는 프로그래밍 언어이다. 자바 프로그램은 운영체제의 종류에 관계없이 대부분의 시스템에서 실행 가능하다.

JAVA의 분류
자바는 응용프로그램, 서버, 임베디드 등 다양한 플랫폼을 제공한다. 이에 사용되는 종류별로 플랫폼 화하여 분류된다.
J2SE(Java SE) : Java 2 Standard Edition
  - 가장 기본적이고 표준적인 JAVA 버전으로 주로 데스크톱 환경용 응용 프로그램을 만드는 데 사용한다.
J2EE(Java EE) : Java 2 Enterprise Edition
  - 웹 서비스, 네트워킹, 서버 측 스크립팅 및 다양한 웹 기반 응용 프로그램 개발에 사용한다.  
  - 가장 널리 사용되는 웹 개발 표준 중 하나로 HTML, CSS, JavaScript 등을 지원한다.

J2ME(Java Me) : Java 2 Moblie Edition
  - 모바일을 위한 버전이지만 현재는 거의 사용되지 않는다.

JAVA의 특성
1. 이식성이 높다. (JVM : Java Virtual Machine)
 - 자바 가상 머신이란, JAVA와 OS 사이에서 중개자 역할을 수행하여 서로 다른 운영 체제(OS), 다른 CPU에서도 같은 코드를 사용이 가능하게 함으로써 재사용성을 높인다.
 - Write Once, Run Anywhere

 - 메모리 관리, Gabage Collection 기능

2. 단순하고 견고한 언어
 - C++ 언어와 비슷한 구문 사용
 - 다중 상속, 구조체, 전역 변수, 연산자 중복기능들을 제거하여 언어의 복잡성을 제거
 - 자동적으로 쓰레기 처리
   i) 메모리 포인터를 사용하지 않는다. (내부 포인터 사용)
   ii) 사용되지 않는 메모리를 자동으로 회수 (Garbage Collection)
 - 명시적 선언 및 엄격한 형 검사
   ex) float num = 9.7f;
 - 예외처리

3. 완벽한 객체지향 언어이다. (OOP : Object Oriented Programming)
 - OOP의 특징 (APIE)
    i) Abstraction(추상화)
      - 공통된 속성이나 기능을 묶어서 이름을 붙임
      - 개체 사용 시 그 안에 정확히 어떤 데이터가 있는지 알 필요 없음

    ii) Polymorphism(다형성)
      - 여러 개의 형태를 가짐  ex) 오버 로딩(매서드 중복 정의), 오버 라이딩 (매서드 재정의)

    iii) Inheritance(상속)
      - 상위 클래스의 데이터를 하위 클래스가 이어받는 것
      - 이미 존재하는 개체를 기반으로 확장된 개체를 만드는 방법

    iv) Encapsulation(캡슐화)
      - 서로 연관이 있는 데이터와 알고리즘을 하나로 묶어서 하나의 캡슐과 같은 형태로 만드는 것
      - 정보은닉 : 개체 안에 있는 데이터를 외부로부터 보호

 - 프로그램의 재사용, 생산성 향상
 - 설계 단계부터 객체지향 개념을 고려
 - 자식 객체가 부모 객체로부터 상속을 받으면 부모 객체의 데이터와 메서드를 사용할 수 있음

4. 분산 환경에 적합한 언어
 - TCP/IP 네트워킹 기능을 내장

5. 안전한 언어 (Secure)
 - 바이트 코드 검증기를 통해 코드를 검증
 - JAVA애플릿이 클라이언트에서 실행될 때 사용할 수 없는 기능의 리스트가 된다.

6. 다중 쓰레드 지원
 - 다중 쓰레드 : 여러 개의 작업을 동시에 실행할 수 있는 기능
 - 쓰레드와 관련된 라이브러리 클래스 제공

7. 동적인 언어
 - 기존 프로그램의 영향을 미치지 않고 라이브러리에 새로운 메서드나 속성을 추가할 수 있다.

JVM (Java Virtual Machine)의 메모리
1. 스택 영역 (Runtime Stack) : 실행 시 사용하는 메모리 영역
2. 힙 영역 (Garbage Collection Heap) : 동적 메모리 할당 영역
3. 상수 영역 (Constant & Code Segment) : 상수 데이터 및 static 데이터 할당 영역
4. 레지스터 영역 (Process Register) : 프로세서 실행 관련 메모리 할당 영역

Java의 실행 과정
 *.java 파일 → 컴파일(javac) → *.class 파일 → 인터프리터(java) → 실행

JAVA List
 

JAVA List

Start Java!!! ● 1 ● 2   기회는 준비된 자에게 찾아온다.

han-hoon.tistory.com


  

기회는 준비된 자에게 찾아온다.

 


 

반응형
LIST