컴파일·자료형·메인메서드

heeezni·2025년 4월 28일
0

Java 문법

목록 보기
1/14
post-thumbnail

Java의 변수와 자료형

Javascript와 Java

  • javascript는 interpreter 언어
    개발자가 변수에 할당한 데이터의 종류판단을 한 줄 한 줄 실행할 때마다 해석
    (즉시 읽고 즉시 해석한다. 브라우저로 실행할 때마다.. 매번...)
    수시로 데이터를 바꾸면서 그 결과를 확인할 때는 good

  • java는 compile 언어
    javac(컴파일러)가 자료형에 대한 판단을 ‘실행 전 문법 검사 시’에 시도
    그 결과를 파일로 저장해놓고(.class 파일) 프로그램을 실행할 때는 두 번 다시 자료형이나 문법에 대한 판단x
    이 .class 파일은 실행할 때 JVM(Java Virtual Machine) 이 읽어서 실행합니다.

Java 컴파일

.java 파일 → 사람이 읽는 코드 (Source code, 인간용)
.class 파일 → JVM이 읽는 바이트코드 (기계어는 아니고, JVM용 기계어 같은 거)

javac Test.java (컴파일)
java Test (실행)
ls (list 현재 작업 중인 폴더에 있는 파일과 디렉터리 이름들을 쭉 나열해서 보여줌)

  • 코드가 단 한 자라도 수정되면 다시 .class파일 만들어야함 (재컴파일)!

메인메서드

  • 자바 클래스 실행하려면 반드시 메인 메서드 정의
    이미 정해진 함수명이므로 절대 다르게 해서는 안됨
public static void main(String[] args)

[하나씩 해석]
public : 어디서든 호출할 수 있다 (접근 제한 없음)
static : 객체를 만들지 않고 바로 실행 가능하다
void : 돌려주는(return) 값이 없다
main : 자바 프로그램이 시작하는 특별한 이름
(String[] args) : 문자열 배열 매개변수 (명령줄에서 값을 넘길 때 사용)

class Test2{
	// 자바의 실행부. 이 함수가 없다면 java.exe의 대상이 될 수 없다 (메인메서드)
	// =실행될 수 없다
	public static void main(String[] args){
		String str = "대한민국";
		System.out.println(str);
	}	
}

자료형의 종류

java도 기존 언어의 전통을 이어받았기 때문에
기본 자료형은 문자, 숫자, 논리값 3가지

  • 자바의 문자는 문자와 문자열로 구분
    문자 자료형 char문자는 ‘작은 따옴표(’ ’) 안에 표기
    char a = '대'; // 한 글자를 '문자형'이라고 함 (character형)

문자열 자료형 String
(사실 클래스인데 워낙 자주 써서 기본형처럼 사용할 수 있게 특별 취급 ) 문자열은 큰 따옴표(” “)안에 표기
String str = "대한민국"; // 두 글자 이상의 문자집합을 '문자열'이라고 함

  • 자바의 논리값은 js 및 다른 언어와 동일 T/F
    boolean b = true;
    ※주의: 다른 언어에서는 1이 true, 0이 false를 대신할 수 있지만
    자바는 철저히 T/F로 표기해야함

  • 자바의 숫자형은 크게 정수와 소수점을 지원하는 실수로 구분
    정수는 용량에 따라 byte < short < int < long
    실수는 float < double
    int x = 75;
    y = 5.6; // 자바에서는 개발자가 소수점만 적으면 무조건 double 로 생각하므로
    float 쓰고싶으면 float z=7.2f

    double 을 기본으로 할까?
    double은 float보다 정밀도가 높아서(=더 많은 소수점 정확도를 가짐), 자바는 더 안전하고 정확한 계산을 기본으로 하기 위해 소수는 double로 취급함

자바로 구구단 출력하기

class Test{
	public static void main(String[] args){
		for(int i=2; i<10; i++){
			for(int n=1; n<10; n++){
				System.out.println(i+"*"+n+"="+(i*n));
			}
		}
	}
}	
profile
아이들의 가능성을 믿었던 마음 그대로, 이제는 나의 가능성을 믿고 나아가는 중입니다.🌱

0개의 댓글