티스토리 뷰
- 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 프로그램
- 클래스가 프로그램 구성의 기본단위
- 데이터(필드)와 알고리즘(메소드)이 클래스에 캡슐화되어 있음
- 클래스 정의로부터 객체들이 만들어지고 객체들 간의 상호작용으로 프로그램이 동작함
'java' 카테고리의 다른 글
[Java] 배열, 참조형 변수, 접근제어자 (0) | 2021.03.28 |
---|---|
[Java] 연산자와 제어문 (0) | 2021.03.21 |
[Java] OkHttpClient로 동기, 비동기 요청하기 (0) | 2021.02.13 |
[Java] OAuth인증을 통해 Request Token, Access Token 발급받기 (0) | 2020.11.25 |
[Java] return true; return false; (0) | 2020.05.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 입출력장치
- 소프트웨어
- 알고리즘
- Stack
- 인접행렬
- react
- Java
- 병행프로세스
- 인접리스트
- server side rendering
- javascript
- 자료구조
- 재귀함수
- 운영체제
- stackframe
- 퀵정렬
- C++
- dfs
- 최단경로
- 동적프로그래밍
- client side rendering
- 스텍
- 배열
- 교착상태
- 구조체
- 클래스
- 세마포어
- C
- BFS
- 이진탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함