TIL 2023/10/23 Java

YEONGDO·2023년 10월 23일

그동안 어떻게 작성해야할 지 몰라 미뤘던 TIL을 작성하기 시작했다.
더 이상 미루면 안될 거 같아서 시작이 반이다! 라는 마음으로 작성을 시작.

학습목표!

  1. Java 프로그램을 만들때 사용하는 Java 언어에 대해서 이해합니다.
  2. Java 의 실행환경인 JVM 에 대해서 이해합니다.
  3. Java 의 데이터인 변수와 상수에 대해서 이해합니다.
  4. Java 의 변수를 담는 저장공간의 종류에 대해서 이해하고 사용법을 익힙니다.
  5. Java 의 저장공간 종류(변수 타입)간에 변환에 대해서 이해하고 사용법을 익힙니다.


1. 언어의 역사

A언어 > 첫 개발언어, 1960년, 입/출력, 문맥
B언어 > bell사, 1960년, A언어 기능+기계식 데이터타입, 연산기능, 메서드
C언어 > B언어보다 좋다는 의미로 B 다음인 C를 따서 C언어(ㅋㅋ)
Java > 어디서나 마시는 커피처럼 어디서나 동작가능한, 자바 커피에서 이름을 따서 만든 언어 (의미가 좋은 거 같다..), C언어 기능+공통실행환경, 클래스, 객체

2. Java를 왜?

1) Java는 공통 실행환경이 있어서 여러 기기에서 실행 가능!
2) Java는 세상과 닮아있는 개발언어라 이해하기 쉽고 유지보수에 좋다!
3) Java는 안정성이 높아 프로그래밍 오류를 방지하고 보안 상 안전!
4) 대규모 앱 개발 가능!
5) Java를 배우면 다양한 개발 도구와 라이브러리 사용 가능!

3. JVM??

  • Java Virtual Machine 의 약자로 “자바 가상 머신”이라는 뜻
  • 가상 머신이란 가상의 기기를 만들어주는 것을 의미
  • 다시 말해서, 여러가지의 기기위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미

3. Java 놀이터

JRE?

  • Java 의 놀이터인 JVM 을 설치하는 방법은 JRE를 설치하는 것 입니다.
  • JRE 는 Java Runtime Environment 즉, 자바 실행 환경 이라는 뜻을 가지고 있습니다.
  • 하지만, JRE(JVM) 만 있다면 Java 프로그램을 실행만 시킬 수 있습니다.
  • JRE 는 .class 파일만 실행 가능합니다.
    - JDK 가 javac 명령을 통해 .java 파일을 실행가능한 .class 파일로 변환해줍니다.

JDK?

  • Java의 놀이터기능과 함께 Java 프로그램을 개발할 수 있는 JDK라는 것이 존재
  • JDK는 Java Development Kit 즉, 자바 개발 키트 라는 뜻을 가지고있다.
  • JDK는 JRE(JVM)의 기능을 포함
  • JDK는 .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac) 기능
  • JDK는 코드를 디버깅하는 jdb 등의 기능
#   디버깅 = 중단점 일시정지 + 코드 라인단위 수행

4. 변수와 타입

변수(variable)란, 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름. 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있음

변수를 선언(생성)하고 값을 저장(초기화) 해줘야 한다.

변수 선언

int age;
double value;
    *변수 명명 규칙*
  • 첫 번째 글자는 문자이거나 '$','_' 이어야 한다. 숫자로 시작 XXXXX
  • 영어 대소문자를 구문한다 (firstname != firstName)
  • 카멜 케이스 명명 규칙을 따른다. (maxSpeed, firstName, carBodyColor)

값 저장
자바에서는 변수에 값이 저장되지 않으면 변수가 생성되지 않는다. '선언'과 '생성'은 다른 이야기. 자바에서는 반드시 변수를 선언하고 초기화를 해줘야한다.

int score = 100;

변수는 선언 시에 사용한 타입 값을 저장할 수 있다.

4-2. 기본 타입

정수 타입 > byte, char, short, int, long
실수 타입 > float, double
논리 타입 > boolean

byte    1byte	8bit	 -128 ~ 127
short	2byte	16bit	 -32,768 ~ 32,767
char	2byte	16bit	  0 ~ 65535(유니코드)
int	    4byte	32bit	 -2,147,483,648~2,147,483,647
long	8byte	64bit	 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

long 타입을 사용하고자 할 때는 정수 리터럴 뒤에 L을 붙여주면 된다.

  • char 타입
  • 작은따옴표(')로 감싼 하나의 문자(문자 리터럴)를 저장하는 타입이다. 문자 리터럴은 유니코드로 변환되어 저장된다.
  • String 타입
  • 유니코드로 변환되지 않는 큰따옴표(")로 감싼 문자열을 저장하는 타입이다.
  • 논리 타입
  • 1byte 크기이다.
    boolean stop = true;
    boolen state = false;

    4-2. 타입 변환

    1) 자동 타입 변환

    byte < short < int < long < float < double

    작은 타입이 큰 타입으로 저장될 때는 자동으로 형변환

    2) 강제 타입 변환

    double doubleValue = 3.14;
    int intValue = (int) doubleValue; //정수 부분인 3만 저장

    ++ 문자열 입력받기

    import java.util.Scanner;
    
    //시스템의 입력 장치로부터 읽는 Scanner 생성
    Scanner scanner = new Scanner(System.in);
    //Enter 입력되기 전까지의 내용을 읽음
    String inputData = scanner.nextLine();
    profile
    개발 블로그

    0개의 댓글