초보 개발자의 기록

자바 (Java Programming Language) 본문

JAVA/Basic

자바 (Java Programming Language)

bambinodeveloper 2021. 7. 29. 18:39
728x90

Java 기본 소개 

자바는 썬 마이크로시스템즈 (Sun) 에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다

(네트워킹을 위해 고안된 언어 : 홈네트워크(스마트홈)를 위해 1990년대 초반에  oak라는 이름의 언어로 탄생)
이후 java라는 이름으로 개명. 2010년 오라클 사에 인수되면서 오라클사의 제품이 되었다.

C++의 장점을 채택, 잘 사용되지 않는 부분은 제외하여 비교적 배우기 쉽고 간결한 표현이 가능하도록 만들어졌다. 

풍부한 클래스 라이브러리(Java API) 를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공하기 꺠문에 클래스 라이브러리만을 잘 활용하여도 자바 프로그램을 작성할 수 있다.

 

자바언어의 특징

1. 운영체제 (Operating System , 플랫폼) 독립적

- 운영체제의 종류에 관계없이 실행이 가능.

- 일종의 에뮬레이터인 자바가상머신(JVM)을 통해 가능함 <Java Virtual Machine: 통역사의 기능을 한다고 보면된다>

  운영체제나 하드웨어사 아닌 JVM 하고만 통신, JVM이 자바응용프로그램으로 부터 전달받은 명령을 해당 운영체제가    이해할 수 있도록 변환하여 전달한다. 하지만, JVM은 운영체제에 종속적이어서 운영체제마다 다른 JVM을 제공한다.

- Write once, run anywhere - 한번 작성한 프로그램은 어떤 환경에서도 동일하게 동작한다.

 

JDK>JRE>JVM

JDK ( Java Development Kit ) 자바 개발 도구 (JRE+개발에 필요한 실행파일)
JRE ( Java Runtime Environment ) 자바 개발 환경 : 자바로작성된 응용프로그램이 실행되기 위한 최소환경 (JVM+API)
JVM ( Java Virtual Machine ) 자바 가상 기계 (OS와 Java Program 과의 통역자 역할) ,메모리관리의 기능을 함

                                      단점: Java 어플리케이션은 JVM을 한 번 더 거치고, 실행 시에 해석되어 속도가 느리다

Java 어플리케이션
JVM
OS(Windows)
컴퓨터( 하드웨어)

 

2. 객체지향 언어 (Object Oriented Programming Language)

- 객체지향개념의 특징인 상속, 캡슐화 다형성이 잘 적용된 언어이다.

-객체지향 개념 (객체, 클래스, 객체와 클래스의 관계, 객체의 구성요소)

  객체지향 (Object-Oriented)  분석설계 기법 중 하나
                                    시스템의 기본 단위를 객체로 상정하고 객체와 객체의 관계를 중심으로 분석 설계하는 기법

                                    객체(Object) -> 시스템의 기본 단위, 시스템을 구성하는 주요 사물이나 개념을 객체로 상징
                                                        객체는 속성과 기능으로 구성된다
                                                                  속성 : variable(변수) , attribute
                                                                  기능 : method, operation
                                                                   code ex> Person p = new Person(); //객체 생성

                                   클래스(Class) -> 객체(Object) 를 위한 틀 or 설계도(blueprint)
                                                          ex>붕어빵 틀(class) 로 부터 붕어빵(object)이 생성된다 
                                                              설계도(class)로부터 건물(object) 이 생성된다
                                                              code ex> class Person{}
 
                                   변수(variable) -> 정보를 저장하는 공간( 정보는 변경될 수 있다)
                                                         변수는 클래스 내부에서 정의된다

                                                         (인스턴스 변수, 지역변수, 클래스변수등이 있다)
                                                         code ex> String name ="man";

                                   메서드(method)-> 객채의 기능을 정의

                                                           code ex> public void eat(){}

 

3. 비교적 배우기 쉽다

- 객체지향 언어의 특징인 재사용성과 유지보수의 용이성 등의 많은 장범에도 불구하고 배우기가 어려웠으나,

  자바의 간결하고 명료한 객체지향적 설계로 인해 사용자들이 보다 쉽게 이해하고 활용할 수 있다.

 

4. 자동 메모리 관리 (Garbage Collector)

- 자바로 작성된 프로그램이 실행되면, 가비지 컬렉터가 자동으로 메모리를 관리해주기 때문에, 프로그래머는 메모리를

  따로 관리하지 않아도 된다.

 

5. 네트워크와 분산처리 지원

- 풍부한 네트워크 프로그래밍 라이브러리( Java API) 를 통해 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발가능하다

 

6. 멀티 쓰레드를 지원

- 자바 멀티쓰레드 프로그램은 시스템과는 관계 없이 구현가능하며, 관련된 라이브러리가 제공되므로 구현이 쉽다.

 

7. 동적 로딩 (Dynamic Loading) 지원

- 자바로 작선된 애플리케이션은 여러 개의 클래스로 구성이 되어있는데 동적 로딩을 지원하기 떄문에 실행 시에 모든      클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다. 일부 클래스가 변경되어도 전체 애플리케    이션 재 컴파일 하지 않아도 되며, 애플리케이션 변경사항 발생 시에도 적은 작업만으로 처리할 수 있는 유연한  애플    리케이션 작성이 가능하다.

 

 

728x90
반응형

'JAVA > Basic' 카테고리의 다른 글

객체지향 언어  (0) 2021.07.29
변수( Variable)  (0) 2021.07.29
주석 (Comment)  (0) 2021.07.29
터미널에서 자바 컴파일 & 실행  (0) 2021.07.29
Java 환경 설정  (0) 2021.07.29