[한화시스템 BEYOND SW캠프 7기] #18. Java - 입출력 / 변수

아로롱·2024년 6월 9일

BEYOND SW CAMP 7

목록 보기
19/30


초등학생 때 처음 들었던 java jive ...
나에게 자바는 아직도 자바자이브다...☕️
인도네시아 섬인 자바 섬에서 생산되는 자바 커피에서 나온 JAVA

개발자 '제임스 고슬링'은 자바 커피의 완전한 매니아로서 하루에도 10여 잔씩 이상을 마시는 자바 커피 예찬론자였는데, 프로그래밍 언어 명칭인 JAVA 도 유명한 커피 재배지인 인도네시아 섬인 자바에서 따왔다고 한다 !

☕️ JAVA

자바는 컴파일과 인터프리터가 혼합된 언어로,
소스코드 → 컴파일 → 인터프리팅의 과정.

  • 자바 컴파일러(Java compiler)
    • 자바를 설치하면 javac.exe 라는 실행 파일 형태로 설치됨.
    • 자바 소스 코드를 자바 바이트 코드로 변환.
  • 자바 바이트 코드(Java bytecode)
    • 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드.
    • 자바 바이트 코드의 확장자는 .class
  • 자바 가상 머신(JVM)
    • 자바 바이트 코드를 실행시키기 위한 가상의 기계.
    • java.exe 파일을 통해 JVM이 실행된다.

복잡한 과정이지만, 결국 javac 프로그램을 통해 class파일을 만들고,
java 프로그램을 통해 프로그램 실행.
.java 생성 > javac 를 통해 .class 변환 > java로 .class 파일을 실행해!
hello world 찍어줘! to CPU > hello world
그러나, java 다운로드 후 인텔리제이, vscode 등 편집툴을 사용하면, 위 과정을 실행버튼을 통해 한꺼번에 편리하게 처리


컴파일 에러 / 런타임 에러가 바로 이것 !

.java > .class 변환 에러 : 컴파일 에러 (문법 에러!)
연산이 잘못된 경우 > 런타임 에러


👋🏻 HelloWorld

자바는 프로그램이 실행되면 맨 먼저 main() 메소드를 찾아 실행.
main() 메소드는 반드시 public static void라는 구문을 붙여 선언.

  • 클래스의 명명 규칙
    • 소스파일의 이름은 반드시 해당 파일내의 public 클래스의 이름과 같아야 함.
  • 기본 코딩 규칙
    • 자바의 모든 명령문은 반드시 세미콜론(;)으로 끝.
    • 주석처리 ⇒ 컴파일에서 제외시킨다! (한 줄 주석 // , 여러줄 /* */)

🥅 자바 입출력

  • 표준 입출력 라이브러리 (= class)
    • 자바에서는 System이라는 표준 입출력 라이브러리를 정의하여 제공.
    • 라이브러리란 사전에 개발된 java 프로그램으로 이해.
  • 출력 System.out
    • System.out.println 은 자동 줄바꿈, print는 줄바꿈X
  • 입력 System.in
    • System.in 및 java.util.Scanner 사용.
    • System.in은 바이트 스트림형태의 입력을 받는 기능을 하고, 이는 일반적으로 키보드 입력을 의미.
    • Scanner 는 Java에서 입력을 읽어오는 도구로서, 키보드 입력의 바이트 스트림 뿐만 아니라 파일 입력 등을 읽어오는 도구로도 사용.
  • 메모리 해제
    • scanner.close();
    • Scanner는 java를 벗어나, 운영체제 등 시스템의 리소스를 사용해 JVM 의 자동 메모리 관리 범위를 벗어나므로 별도로 해제해주는 것.

      예시)
      System.out.println(”Hello World”);
      Scanner(클래스) sc(객체변수명) = new Scanner(System.in);
      문자열 입력 변환
      String str = sc.nextLine();
      정수형 입력 변환
      int number = sc.nextInt();
      실수형 입력 변환
      float floatNumber = sc.nextFloat();


📦 변수

변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당한 것.
데이터(data)를 저장할 수 있는 메모리 공간의 이름을 의미.

변수의 명명 규칙

  • 영문자(대소문자), 숫자 등으로만 구성
  • 숫자로 시작할 수 없음.
  • 이름 사이에는 공백을 포함할 수 없음.
  • 자바에서 미리 정의된 키워드는 변수로 사용할 수 없음.
  • camel case 가 일반적. ex) helloWorld

정수형 | int / long

  • int : 4바이트 메모리 할당.
    • java에서 정수형 타입 중 가장 많이 사용.
    • -2의31제곱 ~ +2의31제곱-1의 범위를 가짐.
  • long : 8바이트 메모리 할당.
    • 123456789L 이렇게 L을 붙여 해당 타입이 long형임을 명시적으로 표현하기도함.

실수형 | float / double

  • float : 4바이트 메모리 할당.
    • 1.234567F (빼면 컴파일 에러)
    • 10진법 기준 소수 부분 6자리까지 표현 가능.
  • double : 8바이트 메모리 할당.
    • 1.2345D (D 생략 가능)
    • 10진법 기준 소수 부분 15자리까지 표현 가능.
    • 실수형 타입 중 기본이 되는 타입 !

문자형 | char

  • char : 2바이트 메모리 할당.
    • 'a' , 'Z' 와 같이 작은 따옴표 ''로 감싸진 하나의 문자.
    • 비교) 문자열은 "hello", "world" 와 같이 큰 따옴표 !
    • 문자열은 기본 타입처럼 취급되나, 기본 타입이 아닌 클래스 기반의 타입.
    • 문자, 문자열 모두 초기값은 null

논리형 | boolean

  • 참 또는 거짓을 의미하는 자료형.
  • true, false 중 한 가지의 값을 가지며 제어문에서 중요하게 사용됨.

타입 변환 : 하나의 타입을 다른 타입으로 바꾸는 것.

  • 묵시적(자동) 타입 변환
    • java에서 자동으로 상황에 맞게 타입을 변환해주는 것.
  • 명시적 타입 변환
    • 개발자가 명시적으로 타입 변환을 지정하는 것.
public class Java {
	public static void main(String[] args) {
    	int N = 10;
        double M = 30.1;
        
        double T = N; // 묵시적 형변환
        int K = (int)M; // 명시적 형변환
	}
}
profile
Dilige, et fac quod vis

1개의 댓글

comment-user-thumbnail
2024년 6월 9일

자바자이브 ㅋㅋ
저는아이브 좋아합니다.

답글 달기