I about me

[MidTerm] 0. Introduction to Java 본문

Java

[MidTerm] 0. Introduction to Java

ssungni 2024. 4. 22. 12:51

History

# 1.

  • Programming language // 프로그래밍 언어
  • API
    • Advanced tasks such as DB management // 데이터베이스 관리와 같은 고급 작업
  • Platform // 여러 곳에서 사용 가능하며, 환경에 국한되지 않습니다.
  • Library (애초에 있는거)
더보기

라이브러리란

  • 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 / 리소스(클래스, 템플릿, 설정 데이터)를 모아둔 것
  • 태스크를 실행해야 할 때마다 이 기능에 대한 코드를 작성하는 대신, 태스크를 수행해야 할 때마다 루틴 사용
  • 리소스가 필요한 경우 프로그램은 해당 리소스에 대한 라이브러리를 호출합니다.
  • Framework (개발자의 유지보수 공간)
더보기

프레임워크는 라이브러리의 컬렉션이라고 할 수 있습니다.

이 둘 사이의 주된 차이점은 제어의 역전, 즉 프레임워크에는 작업을 호출할 수 있는 제어권이 있다는 것

프레임워크는 필요한 템플릿 또는 프레임을 이미 보유하고 있기 때문에, 기존 항목을 기준으로 필요한 리소스를 호출할 수 있습니다(코드의 비어있는 영역을 채워야 함).

  • Execution environment

# 2.

  • 몇 가지 사실
    • Can run anywhere/portable // 어디서나/휴대 가능하게 실행할 수 있음
    • Compiled and interpreted // 컴파일 + 인터프리터(스크립트)
    • Supports concurrency // 멀티 프로그래밍을 지원하여 동시에 여러 작업을 수행 가능
    • Support for dynamic binding // 동적 바인딩 지원

# 3.

  • What Java is Not
    • Proprietary // 오라클에 개발되어 Free/Open 소스로 완전히 지배되거나 통제x
    • just a scriting language //  + 컴파일
    • very slow compared to C++ // C++ 에 비해 상대적으로 느린 거지 완전 느린 거 아님
    • Less secured // 보안이 적음
    • Similar to JavaScript // 완전히 다름

Programming Environment

# 4.

  • How Java work?

Source code

사람이 이해할 수 있는 형태의 코드

Compiler

소스 코드를 바이트 코드로

Byte code

JVM이 이해할 수 있는 중간 언어

Target machine/VM

각 특정 플랫폼에 맞게 구현되어 있으며,
바이트 코드를 해당 플랫폼에서 실행 가능한 기계어로

# 5.

  • JDK
    • Compiler →  javac // javac는 자바의 컴파일러로, 자바 소스코드를 바이트코드로 바꿔줌
    • jar archiver // 여러 파일을 jar로 묶는 것을 의미
    • javadoc //  여러 파일을 jar로 묶는 것을 의미 
  • Interpreter / loader
    • JRE, java, part of JDK
  • Flavors
    • SE (Standard edition) : 일반 데스크탑에 서버를 위함
    • EE (Entertain edition) : 대규모 어플을 개발을 위함.
    • ME (Mobile edition) : 모일 및 임베디드 시스템
  • IDE vs. command line tools
    • IDE는 통합된 환경과 풍부한 기능을 제공함
      • 종류: Eclipse, NetBeans, IntelliJ IDEA
    • 명령 줄 도구는 가벼우며 유연성이 높음.

Code Structure

Source File → Class File (파일명과 동일시)    Method 1, 2, 3

Javac // 자바 소스코드를 바이트코드로 바꿔줌

Java, JVM // 바이트 코드를 기계어로 바꿔줌

'Java' 카테고리의 다른 글

[Final] Abstract Classes  (0) 2024.05.07
[MidTerm] 1. Java Elements  (0) 2024.04.22
TypeCasting  (1) 2024.02.08
Constants  (0) 2024.02.08
VariableNaming  (0) 2024.02.08