[들어가기 전에]
컴파일 시점 vs 런타임 시점
컴파일이란?
사람이 작성한 언어를 기계가 이해할 수 있는 언어로 변경하는 과정!
기계어로 변경을 하면 생성되는 파일이 존재한다.
개발자가 작성한 파일은 .java 파일입니다.
컴파일러가 번역한 파일은 .class 파일입니다.
번역하는 과정을 javac 라는 명령어를 통해서 처리가 가능하다.
이클립스는 저장 ctrl + s를 누르면 자동으로 명령어를 입력하지 않더라도 .class 파일로 변환해준다.
즉, 컴파일 시점이란 사람이 작성한 언어를 기계언어로 변경한 시점을 말한다.
런타임시점?
java 명령어를 통해서 프로그램이 동작하는 시점을 말한다.
[정리]
컴파일을 처리하면 어디 폴더에 어떤 파일이 만들어 질까요?
= > ...xx/bin/ch01/HelloWorld.class 파일이 만들어진다.
패키지(package)란?
주 언어파일(.java)을 모아둔 것을 패키지라고 부른다.
[변수와 자료형]
data?
단순한 사실을 나타내는 수치
(ex) 기온, 습도, 날씨, 문자, 문자열... 각각의 수치들이 데이터가 됩니다.
bit(1비트) : 컴퓨터가 표현하는 데이터의 최소 단위로 2진수 하나의 값을 저장할 수 있는 크기
byte(바이트) : 1byte = 8bit
변수(Variable)란?
● 값(Value)을 저장할 수 있는 메모리의 공간을 의미합니다.
● 이름에서 유추할 수 있듯이 변수는 말 그대로 '변하는 수' 입니다.
변수는 언제 쓰나요?
● 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음 ( ex. 학생의 성적, 합계, 게임의 레벨, 회원 주소 등등...)
● 표현하려는 수에 맞는 데이타 타입(자료형)을 이용하여 변수를 선언
변수이름 규칙
1. 대소문자가 구분되며 길이에 제한이 없다.
EX) Name과 name은 서로 다른 것으로 간주
2. Java에서 사용하는 예약어는 사용할 수 없다.
EX) while, break, for, if ...
3. 숫자로 시작해서는 안된다.
EX) top10은 허용하지만, 8top은 불가능하다.
4. 특수문자는 '_(언더바)', '$' 만을 허용한다.
자료형(Data type)
변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당됩니다.
변수는 할당된 메모리를 가리키는 이름을 말합니다.
EX) int level =10; // 4바이트 정수형 메모리가 level이라는 이름으로 할당됨을 의미
[실전예제]
package ch01;
public class Variable {
public static void main(String[] args) {
// **변수를 사용하는 방법**
int age; // 문장의 끝은 세미콜론(;)을 통해서 컴파일러에게 알려주어야 한다.
int count; // <-- 변수 선언 - 메모리 공간만 할당해준상태!
age = 1; // 초기화 한다(값을 넣다)
// age2 = 10; 메모리 공간을 할당해야 사용할 수 있다. age2 공간은 없는 상태
count = 100; // 100으로 초기화
// 화면에 xxx를 출력해주세요!
System.out.println(age); // 개발자 도구에서 만들어둔 명령어
// 실행 : 단축키 ctrl + f11 (실행)
System.out.println(count);
// 변수란 메모리 공간도 의미하지만, 변하는 수 이기도하다.
age = 500;
// int age; <- 먼저 할당한 변수 이름을 똑같이 하나 더 만들 수 없다. (공간할당의미)
System.out.println(age);
// 변수에 선언과 초기화 (한번에 사용)
int myAge = 30;
System.out.println(myAge);
System.out.println("===========================");
// 화면에 바로 숫자도 입력, 문자도 바로 입력 할 수 있다.
System.out.println(700);
System.out.println("문자열");
} // end of main
} // end of class
'Java > Java 이론' 카테고리의 다른 글
[JAVA] 변수와 상수 (0) | 2023.07.25 |
---|---|
[JAVA] 변수형과 자료형 - 2 (0) | 2023.07.25 |
[JAVA] 이클립스 환경 설정 (0) | 2023.07.24 |
[JAVA] 이클립스(Eclipse) 설치 (0) | 2023.07.24 |
[JAVA] 자바 교육 1일차 (0) | 2023.07.24 |