java (1) - 배경 및 기본 예약어

ysh·2023년 6월 29일
1

Spring Boot

목록 보기
16/53

java 배경

- 컴파일 언어
단점 - os마다 새로 개발해야 함
- 인터프리터 언어
단점 - 느리다


C언어

  • 컴파일 언어
  • 메모리 관리 직접 해야함
    • 메모리 누수 - 필요 없는 데이터를 없애주지 않은 것
    • 효율적인 메모리 관리가 가능하지만 개발자가 직접 해야한다.
  • 메모리 주소 직접 컨트롤

JAVA - 제임스 고슬링

  • 여러 환경에서 작동되는 프로그램 필요
  • JVM을 만들고 그 위에서 작동되는 프로그램을 제작
  • OS마다 JVM(프로그램 작동 환경)만 만든 후 그 위에서 작동 가능한 언어 개발
  • Java는 가비지 컬렉터 보유 (사용하지 않는 데이터를 메모리에서 자동 삭제)

JDK - 자바 개발 키트 : 개발용
JRE - 자바 런타임 환경(JDK에 포함) : 실행용
JVM - 자바 가상 머신(JRE에 포함)


규칙

// java 파일은 맨 첫 글자 무조건 대문자
// 자바 파일 안에 파일명과 동일한 public class 만듦
// 모든 자바 코드는 class 내부에서만 작성 가능
public class Study01 {
    // main 안의 함수가 실행된다
    public static void main(String[] args) {
        // java에는 기본적으로 사용할 수 있는 기능들이 있다 (표준 라이브러리)
        System.out.print("hello world");
        System.out.println("hello world");
    }
}

vs code plugin install

JDK 17

https://drive.google.com/file/d/1BF_BxCc1CHDlLkgRag-f5iahgDiHNIPN/view?usp=drive_link

기본

데이터 타입

public class Study02 {
    // 한 프로그램 내에 main 함수는 하나만
    public static void main(String[] args) {
        // 변수
        // 자바 프로그램이 살행되는 동안 유지할 때 사용

        // 기본형 타입 변수 (예약어 첫 글자가 소문자)

        // 정수형 데이터를 저장할 때 int 사용
        // 소수가 아닌 수 ) -1, -2, 100
        int num = 1;
        // int보다 큰 숫자 저장
        long longNum = 2;

        // 실수형 데이터(무조건 f 붙어야 함)
        float floatNum = 1.2f;
        // float 보다 큰 데이터
        double doubleNum = 1.2;

        // 논리형 데이터
        boolean bool = true; // 또는 false 

        // 문자 데이터 (character 줄임말 char)
        // 홀 따옴표
        char ch = 'a';

        // 참조형 타입 변수 (예약어 첫 글자가 대문자)

        // 문자열 데이터
        // 쌍 따옴표
        String str = "hello world";
    }
}

연산

public class Study03 {
    public static void main(String[] args) {
        // 문자는 더하면 합쳐짐
        // System.out.println("hello" + "world");

        // 숫자는 연산됨
        // System.out.println(1 + 1);
        
        // 문자(열) + 숫자 = 문자열
        // System.out.println("hello" + 1);

        // 문자(열) + 논리 = 문자열
        // System.out.println("hello" + false);

        // int num = 2;
        // double doubleNum = 3;
        
        // 정수 + 실수 = 실수
        // System.out.println(num + doubleNum);

        // 정수 - 실수 = 실수
        // System.out.println(doubleNum - num);

        // 정수 * 실수 = 실수
        // System.out.println(num * doubleNum);

        // 정수 / 실수 = 실수
        // System.out.println(num / doubleNum);
        // System.out.println(doubleNum / num);
        
        // 정수 / 정수 = 정수(나머지 소수 X, 몫만)
        // System.out.println(3 / 2);

        // %는 나머지
        // System.out.println(3 % 2);

    }
}

함수

public class Study04 {
    // 함수 - 반복적으로 사용하는 로직들을 하나로 모음
    // 함수명 printAdd, 소괄호 안의 데이터는 외부에서 받아옴
    public static void printAdd(int num1, int num2) {
        System.out.println("계산 시작");
        System.out.println(num1 + num2);
        System.out.println("계산 끝");
    }

    public static void main(String[] args) {
        // 함수 사용 시 함수명을 적고 괄호 안에 요구 데이터 타입의 데이터 입력
        printAdd(5125, 123125);
    }
}
profile
유승한

0개의 댓글