/**
Hello.java
"Hello Java Study Day 1~!!" 를 출력하는 프로그램
*/
public class Hello {
public static void main(String[] args) { // 프로그램 시작
System.out.println("Hello Java Study Day 1~!!"); // Hello Java Study Day 1~!!를 출력
}
}
이 예제를 가지고 시작하겠습니다.
시작 전 이 프로그램이 구동하는 과정을 설명해드리겠습니다.
Hello.java 파일(고급언어, 사람이 읽기 쉬운 언어)은 자바 컴파일러를 통해서 Hello.class파일(저급 언어, 가상 기계언어)로 즉, 가상 기계를 위한 바이트 코드를 생성합니다. 그 후 자바 가상기계언어(바이트 코드로 된 파일) JVM이 Hello.class파일을 실행 파일인 Hello.exe파일을 가르킵니다.
요약하자면,
Hello.java --( 자바 컴파일러 )--> Hello.class( 가상 기계를 위한 바이트 코드 ) --( 자바 가상기계 [JVM] )--> Hello.exe
이렇게 두 단계를 나눠서 실행하는 이유는 응용 프로그램들을 다시 컴파일 하지 않아도 모든 컴퓨터에서 실행 할 수 있게 하기 위해서입니다.
그리고 위 예제 실행 과정을 설명하겠습니다.
그전에 static 에 대해서 설명하겠습니다.
static(정적)
1. 공유기능 (오직 한개다.) --> 메모리 절약가능!
2. 컴파일(Compile Time)시 읽기 때문에 주의!
컴파일 시 OS가 main함수호출하여 main을 읽습니다. (main은 시작과 끝을 담당한다.)
main함수가 public 이기때문에 OS가 외부에서 접근 가능합니다.
하지만, private라든지 접근 불가능하면 main 함수를 호출할수 없습니다.!!
하지만, 어떻게 Hello클래스를 생성하지않았는데 main 함수를 읽을 수 있었을까요??
그건 static의 기능 중에 컴파일 시 읽기 때문입니다.
컴파일시에 Hello클래스를 public으로 OS가 접근 가능하며 static으로 되있기에 컴파일시 읽을 수 있습니다. 이 것은 별거아닌거 같지만 중요한 부분입니다.
또한, 출력을 할 수 있는 이유도 당연 출력함수 역시 static으로 만들어 졌기 때문에 가능 한거겠죠!!!
이제 자료형을 설명하겠습니다.
Java의 자료형에는 기본형과 참조형으로 되어있습니다.
|
기본 자료형 |
참조 자료형 |
변수값 |
상수 |
Object 참조값 |
정의방식 |
Java 내부에 이미 정의됨 |
클래스 정의 |
생성방식 |
int age = 25; |
String myStr = new String(); |
초기화방식 |
default |
생성자(Constructor) |
사용방식 |
연산자("+", "-", "*", "/" ...) |
메소드(Method) |
자바에서는 연산자 +는 문자열 연산자이기도 합니다.
- 두 개의 문자열을 연결해서 새로운 문자열을 만드는 연산자입니다.
자바에서 제공하는 8가지 기본 자료형
구 분 |
타 입 |
크 기 |
기본값 |
값의 범위 (크기) |
문자형 |
char |
2byte |
null |
자바가 지원하는 유니코드 |
정수형 |
byte |
1byte |
0 |
-128~127 (8bit) |
short |
2byte |
0 |
-32768~32767(16bit) |
|
int |
4byte |
0 |
-2147483648~2147483647(32bit) |
|
long |
8byte |
0L |
-9223372036854775808~9223372036854775808(65bit) |
|
실수형 |
float |
4byte |
0.0f |
32비트(32bit) |
double |
8byte |
0.0d |
64비트(64bit) |
|
논리형 |
boolean |
1byte |
FALSE |
TURE or FALSE (8bit) |
변수
변수의 종류
- 지역 변수(local variables)
- 매개변수(Parameter)
- 인스턴스 변수(Instance fields)
- 스태틱 변수(class fields)
변수를 선언할 때 --> 자바에서는 자료형과 식별자를 통해서 변수를 선언합니다..
상수(literal)
- 메모리에 할당 되어 있는 동안 같은 값을 유지하는 변수이다.
- final 키워드로 선언됩니다.
- 항상 선언 시 초기화를 해주어야 하며, 값을 변경 할 수 없습니다.
ex) final double PI = 3.14;
타입변환
- 가상머신(JVM)이 자동으로 해주는 형 변환이다.
- 작은 자료형에서 큰 자료형으로 변환(Up-Casting)이 일어난다.
- 프로그래머의 필요에 의해 자료형을 직접 변환 시켜주는 것이다.
- 크기가 큰자료형을 작은자료형에 대입 했을때 자료형을 강제로 바꿔준다.
(큰자료형 --> 작은자료형 컴파일 error발생)
오늘은 여기까지만 하고 다음 시간에는 String클래스에 대해서 설명하겠습니다. ㅎㅎ 감사합니다.
[Java Day 01] 자바를 배우기전 4대 특징 (0) | 2018.07.05 |
---|
댓글 영역