일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리액트프로젝트
- 밤비노
- two pointers
- Bambino
- jsp
- C
- 웹개발기초
- DB
- MSA
- 코드잇
- sql
- CSS
- microservices
- 자바
- SpringFramework
- servlet
- 웹개발자
- 웹개발
- jvm메모리구조
- Java
- MVC
- BCIT
- job
- html
- msa개념
- coding test
- mysql
- 데이터베이스
- Programming
- 안드로이드
- Today
- Total
초보 개발자의 기록
자바 (Java Programming Language) 본문
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) 지원
- 자바로 작선된 애플리케이션은 여러 개의 클래스로 구성이 되어있는데 동적 로딩을 지원하기 떄문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다. 일부 클래스가 변경되어도 전체 애플리케 이션 재 컴파일 하지 않아도 되며, 애플리케이션 변경사항 발생 시에도 적은 작업만으로 처리할 수 있는 유연한 애플 리케이션 작성이 가능하다.
'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 |