상세 컨텐츠

본문 제목

[Java Day 01] Java 기초

Java/Java Study

by ChrisMare 2018. 7. 5. 18:53

본문


/**

  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 

    -128~127 (8bit) 

    short 

    2byte 

    -32768~32767(16bit)

    int

    4byte 

    -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;


타입변환

  • 자동 형변환(Up-Casting)

- 가상머신(JVM)이 자동으로 해주는 형 변환이다.

- 작은 자료형에서 큰 자료형으로 변환(Up-Casting)이 일어난다.

  • 명시적 형변환(Down-Casting)

- 프로그래머의 필요에 의해 자료형을 직접 변환 시켜주는 것이다.

- 크기가 큰자료형을 작은자료형에 대입 했을때 자료형을 강제로 바꿔준다.

(큰자료형 --> 작은자료형 컴파일 error발생)


오늘은 여기까지만 하고 다음 시간에는 String클래스에 대해서 설명하겠습니다. ㅎㅎ 감사합니다.

'Java > Java Study' 카테고리의 다른 글

[Java Day 01] 자바를 배우기전 4대 특징  (0) 2018.07.05

관련글 더보기

댓글 영역