java
[Java] 언어의 기원
tonirr
2021. 3. 14. 16:12
- Java 언어의 기원
- Sun Microsystems의 제임스 고슬링
- 1990년 그린 프로젝트와 Oak 언어
- 1995년 Java와 HotJava 발표
- 웹의 확산과 함께 주목을 받음
- 1996년 1월 JDK1.0발표
- 1998년 Java2 SDK, SE 1.2(J2SE 1.2부터 Java2라고 함)
- 2014년 Java Paltform(JDK) SE 8
- 2020년 9월 Java SE 15
- 2009년 Oracle이 Sun을 인수함
- Java 언어의 특징
- C/C++(하이브리드 언어) 언어와 유사하나 단순함
- 플랫폼에 독립적
- 완전한 객체지향 언어
- 웹 또는 네트워크 프로그래밍이 용이
- 엄격한 자료형의 검사
- 컴파일하면서 변수의 자료형을 엄격하게 검사함
- 예외 처리 기능제공
- 오류가 발생이 예상되는 경우 예외처리를 해줄 수 있음
- 예외처리 코드에서 발생된 예외를 처리해서 프로그램이 비정상적으로 종료되지 않게함
- 멀티 스레딩 지원
- C/C++은 하나의 스레드만 사용하는 반면 Java는 멀티 스레딩이 가능함
- Java 프로그램의 실행
- 자바소스파일(HelloWorld.java) --> Complier --> 자바 바이트코드(HelloWorld.class) --> Java VM --> HelloWorld 실행
- Java 소스 프로그램의 확장자는 .java
- 바이트 코드
- Java 소스를 컴파일한 결과물
- 확장자는 .class이며 클래스 파일이라고도 함
- 자바 플랫폼의 Java VM에서 실행 가능한 코드
- 어떠한 운영체제이든 자바 플랫폼이 있다면 실행 가능함
- write once, run anywhere
- 애플리케이션과 애플릿
- 애플리케이션
- Java 플랫폼에서 실행되는 프로그램
- 실행을 위해 main()함수가 필요함
- 애플릿
- HTML 웹페이지에 포함되어 웹 브라우저를 통해 실행(최근에는 잘 쓰이지 않고 있음)
- 애플리케이션
<APPLET CODE="HelloApplet.class" width=200 height=100></APPLET>
- Java 플랫폼
- 플랫폼(platform)
- 프로그램의 실행을 위한 하드웨어와 소프트웨어 환경
- Java플랫폼은 Java 프로그램의 개발과 실행을 위한 환경
- 운영체제에 맞는 Java 플랫폼을 설치해야 함
- Java 플랫폼의 구성
- Java API + Java VM = Java platform
- Java VM
- Java 프로그램의 실행환경을 제공하는 가상기계
- Java 프로그램의 구동 엔진
- 실행에 필요항 사항을 관리
- 메모리 정리를 자동으로 수행
- Java API(Application Programming Interface)
- 프로그램의 개발에 필요한 클래스 라이브러리
- 패키지(클래스 묶음)들이 계층 구조로 분류되어 있음
- JDK의 설치(Java platform)
- Java 홈페이지에서 다운로드 받아 설치
- JavaSE Development Kit(JDK) 15를 설치
- JavaSE(Java Standard Edition): 표준판
- JavaEE(Java Enterprise Edition): 기업용
- JavaSE Development Kit(JDK) 15를 설치
- 환경변수 PATH를 수정
- 환경변수 JAVA_HOME을 생성
- Java 홈페이지에서 다운로드 받아 설치
- Eclipse의 설치
- Eclipse IDE for Java Developers
- 압축파일을 다운받음
- 적당한 곳에 압축파일을 풀면 설치됨
- Eclipse IDE for Java Developers
- 플랫폼(platform)
- 간단한 Java 애플리케이션
- Hello 애플리케이션
- 대소문자 구분
- 주석, public class, main() 메소드, 출력문
- Hello 애플리케이션
- Java 프로그램 살펴보기(1)
- 주석
- /* ... */ : 사이의 내용을 무시함
- /** ... */ : javadoc을 이용한 API 문서 만들기
- // ... : 이후 내용을 무시
- 클래스의 정의
- public class Hello { ... } : public class는 파일에 최대 1개 파일 이름은 '퍼블랙클래스의이름.java'
- main() { ... } : main() 메소드의 형식은 public static void main(String[] args) {}
- 주석
- Java 프로그램 살펴보기(2)
- 출력
- System.out : 표준출력을 담당하는 객체, print() 또는 println()을 수행함
- 실행
- 프로그램 작성: Hello.java로 저장함
- 컴파일 명령: > javac Hello.java '클래스이름.class'가 만들어짐
- 클래스마다 하나씩 만들어짐
- 소스파일에 A, B, C class가 있다면 세개의 클래스가 만들어짐
- 실행 명령: > .java
- 출력
- 클래스와 객체
- 추상화
- 구체적인 모든 사실이 아니라 전형적이고 필요한 부분만을 발췌하여 사물을 이해하고 표현하는 것
- 클래스
- 클래스는 객체를 만들기 위한 모형 또는 틀
- 공통적인 특징을 가지는 객체들을 추상화하기 위한 수단
- 객체의 상태는 필드(데이터)로 행위는 메소드로 구현됨
- 객체는 특정 클래스의 인스턴스
- 인스턴스: 클래스가 실체화 된 것
- 추상화
- Java 프로그램
- 클래스가 프로그램 구성의 기본단위
- 데이터(필드)와 알고리즘(메소드)이 클래스에 캡슐화되어 있음
- 클래스 정의로부터 객체들이 만들어지고 객체들 간의 상호작용으로 프로그램이 동작함