Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 놀러와요_해커톤
- 렌더 트리
- Java
- 변수
- 멤버십
- 타입
- DB #데이터베이스
- 부스트캠프7기
- 부스트캠프
- javascript
- 모던 자바스크립트
- 모던자바스크립트
- 브라우저 렌더링
- 확인문제
- 우선순위역전
- 부스트컨퍼런스
- 부스트캠프웹모바일
- CRDT
- 우선순위상속프로토콜
- OS
- 데이터독립성
- js
- CSSOM
- GDSC
- 인프콘
- GDSC_PKNU
- 상태관리
- 운영체제
- 그룹프로젝트
- 회고
Archives
- Today
- Total
dohun.log
[Java]01.자바 시작하기 본문
1.1 프로그래밍 언어란?
❓ 컴퓨터가 이해할 수 있는 언어 → 기계어
❓ 기계어 → 0과 1로 이루어진 이진 코드
❓ 고급언어(c++, java …) → 컴파일러 → 기계어
1.2 자바란?
자바의 특징
- 이식성이 높은 언어이다.
- ❓ 이식성 → 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것
- 자바 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도
- 자바 실행 환경이 설치되어 있는 모든 운영체제에서 실행 가능하다.
- 객체 지향 언어이다.
- ❓ OOP(객체 지향 프로그래밍) → 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
- 자바는 100% 객체 지향 언어 → 캡슐화, 상속, 다형성 기능 완벽하게 지원
- 함수적 스타일 코딩을 지원한다.
- ❓ 함수적 프로그래밍 → 대용량 데이터의 병렬 처리, 이벤트 지향 프로그래밍에 적합
- 자바는 Lambda식 지원
- 메모리를 자동으로 관리한다.
- 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당
- 사용 완료 시 Garbage Collector를 실행히켜 자동적으로 사용하지 않는 객체 제거
- 개발자는 메모리 관리의 수고스러움을 덜고, 핵심 기능 코드 작성에 집중할 수 있다.
- 다양한 애플리케이션을 개발할 수 있다.
- 자바는 다양한 운영체제에서 실행되는 프로그램을 개발할 수 있다.
- 단순 콘솔 프로그램
- 클라이언트용 윈도우 애플리케이션
- 서버용 웹 애플리케이션
- 모바일용 안드로이드 앱
- 다양한 운영체제에서 사용할 수 있는 개발 도구와 API를 묶어 에디션 형태로 정의
- Java SE(Standard Edition) - 기본 에디션
- Java SE는 자바 프로그램들이 공통적으로 사용하는 자바 가상 기계를 비롯해서 자바 프로그램 개발에 필수적인 도구와 라이브러리 API를 정의
- 자바 프로그램을 개발하고 실행하기 위해서는 반드시 Java SE 구현체인 자바 개발 키트(JDK)를 설치해야 한다.
- Java SE(Standard Edition) - 기본 에디션
- 멀티 스레드를 쉽게 구현할 수 있다.
- ❓ 멀티 스레드 프로그래밍 → 하나의 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하는 것
- 스레드 생성 및 제어와 관련된 라이브러리 API를 제공 → 운영체제 상관없이 멀티 스레드를 쉽게 구현할 수 있다.
- 동적 로딩을 지원한다.
- 자바 애플리케이션은 여러 개의 객체가 서로 연결되어 실행
- 이 객체들은 클래스로부터 생성
- 애플리케이션이 실행될 때 모든 객체가 생성 ❌
- 객체가 필요한 시점에 클래스를 동적 로딩해서 객체 생성
- 개발 완료 후 유지 보수가 발생하더라도 해당 클래스만 수정하면 됨 → 전체 애플리케이션 컴파일할 필요 없음
- 막강한 오픈소스 라이브러리가 풍부하다.
- 자바는 오픈소스 언어 → 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스가 넘쳐난다.
자바 가상 기계(JVM)
자바는 완전한 기계어가 아닌 중간 단계인 바이트 코드이다.
이 바이트 코드를 해석하고 실행할 수 있는 가상의 운영체제가 필요하다. → 자바 가상 기계(JVM)
바이트 코드는 모든 JVM에서 동일한 실행 결과를 보장하지만 운영체제에 종속적이다.
- 소스 파일
- 컴파일러
- 바이트 코드 파일
- JVM 구동
- 윈도우 용 JVM
- 윈도우에서 실행할 수 있는 기계어로 번역 후 실행
- 맥 용 JVM
- 맥에서 실행할 수 있는 기계어로 번역 후 실행
- 윈도우 용 JVM
출처: 이것이 자바다 Chater01 자바 시작하기
'Study > Java' 카테고리의 다른 글
[Java]05.참조 타입 (2) | 2022.01.18 |
---|---|
[Java]04.조건문과 반복문 (0) | 2022.01.11 |
[Java]03.연산자 (0) | 2022.01.10 |
[Java]06.클래스-확인문제 (0) | 2021.12.29 |
[Java] 02.변수와 타입 (0) | 2021.12.20 |
Comments