점프 투 자바 학습노트 : 01 자바란 무엇인가?

thoho·2023년 6월 26일
0

점프 투 자바

목록 보기
1/1

다음 주 부터 SSAFY 시작이다!

전공자 수업은 JAVA를 기반으로 진행되는 것으로 알고 있는데, 그동안 Python으로 코딩테스트를 준비하고, 각종 코딩은 C++로 해결봤어서… JAVA에 대한 기억은 3학년 전공 수업이 마지막인 것 같다🤔

객체지향 언어는 비슷한 느낌이지만, 혹시 놓치고 있는 부분이 있을까 싶어 간단히 점프 투 자바로 JAVA 문법에 대한 기억을 되살리고 가려 한다.

빠르게 훑고 『스프링 입문을 위한 자바 객체 지향의 원리와 이해』를 읽을까 싶은데, 아직은 모르겠다.

아무튼, 제목에 나와있다시피 점프 투 자바 전체 페이지를 훑는 식으로 공부할 것이고, 핵심 키워드를 위주로 노트로 정리할 예정이다. 아직 초반이라 어느 부분을 넘어가고 어느 부분을 적어야할지 감이 좀 안 잡히는데, 하다보면 잡히겠지.


☕JAVA?

JAVA에 대하여

  • 1995년에 발표된 객체 지향 프로그래밍 언어
  • 현재 웹 애플리케이션, 모바일 앱 개발에 가장 많이 사용
  • 우리나라 기업이 사용하는 프로그램의 80% 이상.

JAVA의 특징

  • 간단 (Simple)
  • 객체 지향적 (Object-oriented)
    • 숫자, 논리값 제외 모든 것이 객체로 구성됨.
  • 인터프리터 언어 (interpreted)
    • 컴파일 언어인 동시에 인터프리터 언어.
    • 소스를 컴파일해 이진 파일(클래스 파일)로 만듦 → 자바 런타임이 클래스 파일을 인터프릿. ⇒ 컴파일 언어에 가까운 속도, 시스템 독립성 획득.
  • 강력 (robust)
    • 포인터 연산 지원하지 않음 ⇒ 시스템 붕괴 우려 없음
    • 모든 메모리 접근을 자바 시스템이 관리 ⇒ 메모리 누출에 대한 고민 필요 없음
  • 안전 (Secured)
    • 자료형 타입에 민감함. 자료형으로 오류가 날 가능성 감소
  • 플랫폼 독립적 (Platform independent)
    • 클래스 파일로 실행하기 때문에, 자바 런타임이 설치된 시스템에서는 어디든 자바 프로그램 실행 가능.
    • 한번 작성한 프로그램은 OS에 관계없이 실행 가능(가상머신 사용)
  • 멀티 쓰레딩 지원 (Multithreaded)
  • 동적 (Dynamic)
    • 하나의 모듈을 갱신할 때 다른 모듈을 모두 갱신할 필요 없음.

JAVA가 할 수 있는 일

  • 웹 프로그래밍
  • 안드로이드 애플리케이션
  • 게임 개발
  • 데이터베이스 처리
  • 빅 데이터 및 분산 처리

JAVA가 할 수 없는 일

  • 시스템 프로그래밍
  • 높은 성능을 요구하는 경우
  • iOS 애플리케이션 개발




환경설정

JDK 설치

JDK 환경변수 설정

책에서는 cmd를 통해 PATH를 설정하는데, 나는 윈도우를 통해 설정하는 것이 편해서 해당 내용을 작성.
시스템 속성 > 고급 > 환경 변수 > 시스템 변수

  • 새로 만들기누르고 이름은 JAVA_HOME, 변수 값은 JDK 설치 경로 입력. 나같은 경우는 C:\Program Files\Java\jdk-17
  • 시스템 변수 항목 중 Path찾아서 새로만들기 누르고 %JAVA_HOME%\bin 입력. 이는 C:\Program Files\Java\jdk-17\bin과 같다.

설치 확인

java -version
javac -version

결과가 제대로 나오는지 확인 (Not found 같은 문구가 나오면 설치에 문제가 있었거나 환경 변수 설정이 잘못된 것이다)


자바 소스와 컴파일

  • .java : 자바 소스 파일. 우리가 작성하는 파일
  • .class : 자바 소스 파일을 컴파일해 나오는 바이너리 파일.
  • JAVA VM이 .class파일을 실행함.

왜 exe파일이 아니라 class 파일로 내보내는가?
하려면 가능은 하지만 JVM을 exe 파일에 포함시켜야해서 exe파일이 커진다.

C, C++과의 비교

  • C, C++은 JVM이라는 중간단계를 거치지 않기 때문에 JAVA보다 실행이 빠르다
  • C, C++은 운영체제마다 별도의 실행파일을 작성해야하는 반면, JAVA에서 작성한 class 파일은 어느 OS에서도 사용이 가능하다.

💡 자바 또한 발전을 통해 속도를 크게 개선시키고 있다.




JAVA 코드 작성, 실행하기

cmd로 JAVA 파일 생성, 컴파일

# java 파일 컴파일. 이 명령어 실행 후 class 파일이 생성됨.
C:\Users\SY> javac HelloWorld.java

# 'java 클래스파일명' 으로 실행.
C;\Users\SY> java HelloWorld

intelliJ로 JAVA 프로젝트 생성

JAVA 프로젝트를 생성한 후 HelloWorld라는 Java파일을 생성하였다.

public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}
  • 파일명과 클래스명이 같은 경우 클래스 앞에 public을 붙여주어야한다.

main 메소드 관련 상세

  • public : 메소드의 접근제어자. 누구나 접근 가능
  • static : 인스턴스 생성 없이도 이 메서드 사용이 가능함
  • void : 메소드가 아무것도 반환하지 않음

실행

Hello World!

profile
어떻게든 굴러가고 있는

0개의 댓글