JAVA개념의 첫 글입니다.
이 것은 제가 그동안 노트로 정리한 것 들이고 앞으로도 계속 제가 정리한 것들을 적을 예정입니다.
1. 프로그래밍 언어: 사람의 언어와 컴퓨터의 기계어의 다리 역할을 해주는 언어
가. 종류 :
-고급언어 : 컴퓨터와 대화 할 수 있게 만든 언어중 사람이 쉽게 이해 할 수 있는 언어.
고급언어로 작성된 소스는 컴퓨터가 이해하지 못함 -> 컴파일이 필요하다. (=기계어로 변환)
예) C, C++, JAVA
-저급언어 : 사람이 쉽게 이해 할수없다.
예) 어셈블리어
일반적으로 프로그래밍 언어는 고급언어 이다.
이 언어들로 작성된 내용은 소스(Source)라고 한다.
흔히 프로그램 이란 컴퓨터에서 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한것이라 칭한다.
2. JAVA의 특징
가. 객체지향 언어 이다.
객체지향 프로그램(oop : Object Oriented Programming) : 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩
조립 및 연결 해서 전체프로그램을 완성함.
- 객체를 만들기 위해선 설계도인 클래스를 작성하고 객체와 객체를 연결해 목적에 맞는 프로그램을 만든다.
캡슐화, 상속, 다형성 기능을 지원
다형성: 하나의 이상의 형태를 가짐.
메서드: 객체와 관련된 서브루틴(또는 함수) 데이터와 맴버 변수에 대한 접근권한을 가짐.
객체 : 데이터(실체)와 그 데이터에 관련된 동작(방법, 기능, 절차)을 포함시킨 개념
예) 편의점에서 물건을 살경우 실체인 `손님`, 동작인 `물건사기`는 하나의 객체 실체인 `알바생`, 동작인
`물건판매`도 객체
같은 성질을 가진(형태와 구조) 객체는 등급으로 정의, 같은 등급에 속하는 객체는 그 등급의 인스턴스라 한다.
인스턴스: 어떠한 집합에서 그 집합의 개별적인 부분
나. 이식성이 높은 언어 이다.
이식성 : 서로 다른 시스템간(실횅환경이 다른) 프로그램을 옮겨 실행 할 수 있는것.
예) MS윈도우 에서 리눅스나 유닉스 에서도 실행 할수있음.
원래는 재컴파일 과정을 거쳐야 하지만 자바 실행환경(JRE:Java Runtime Enviroment)가 있으면 모든 운영체제에서
실행 가능
다. 함수적 스타일 코딩을 지원한다.
대용량의 병렬처리, 이벤트지향 프로그래밍을 위해 적합.
자바는 이를 위해 람다식(Lambda Expressions)를 지원.
람다식 사용이유 : 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고 간결해진다.
람다식: 어떠한 문제를 풀기 위한 과정을 수학적 함수를 이용하여 표현한 수식
라. 메모리 자동관리
자바는 개발자가 직접 메모리에 접근 하지 않음, 메모리는 자바가 관리한다.
객체 생성시 자동적으로 메모리 영역을 찾아 할당, 사용이 완료되면 쓰레기 수집기를 실행시켜 자동적으로 사용하지
않는 객체를 제거
->개발자는 메모리관리 수고를 없애주고 핵심기능 코드 작성에 집중
마. 멀티스레드를 쉽게 구현
자바는 스레드 생성 및 제어와 관련된 라이브러리Api를 제공하기 때문에 운영체제와 상관없이 멀티 스레드를 쉽게
구현함.
바. 다양한 애플리케이션 개발
자바는 다양한 운영체제에서 실행되는 프로그램을 개발 할 수 있다.
다양한 운영체제에서 사용할수있는 개발도구와 Api를 묶어 에디션 형태로 정의 한다.
사) 오픈소스 라이브러리가 많음
고급기능들을 구현하는 코드라도 오픈소스가 많아 쉽게 구현할 수 있다
아) 동적로딩지원(Dynamic Loading)
자바 애플리케이션은 여러개의 객체가 서로 연결되어 실행, 이객체들은 클래스로 부터 생성
애플리케이션이 실행될때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩하여 객체를 생성
->개발 완료후 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요 없음 => 유지보수를 빠르고 쉽게 진행
'프로그래밍 > ① JAVA(자바) 개념' 카테고리의 다른 글
① JAVA(자바) 개념-2 (자바가상기계 JVM, JAVA 프로그램 코드문 분석, 주석 ) (0) | 2017.04.23 |
---|
댓글