IT/Java

JAVA 기초 정리

쭈루짱나눈짱 2023. 6. 16. 14:08
반응형

자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행될 수 있습니다.

오라클은 자바 가상 머신을 손쉽게 설치할 수 있도록 지원합니다..



자바 가상 머신(JVM)의 구성

 

  1. 자바 인터프리터(interpreter)
  2. 클래스 로더(class loader)
  3. JIT 컴파일러(Just-In-Time compiler)
  4. 가비지 컬렉터(garbage collector)

 

자바 컴파일러에 의해 변환된

자바 바이트코드를 읽고 해석하는 역할 > 자바 인터프리터

 

자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행중인 런타임에서야 모든 코드가 자바 가상 머신과 연결됩니다.

동적으로 클래스를 로딩해주는 역할 > 클래스 로더

 

프로그램이 실행중인 런타임에 실제 기계어로 변환해주는 컴파일러 > JIT 컴파일러

동적 번역 이라고 불리는 이 기법은 프로그램 실행 속도 향상을 위해 개발되었습니다.

자바 컴파일러가 생성한 자바 바이트 코드를 런타임에 바로 기계어로 변환하는데 사용합니다.

 

자바 가상 머신은 가비지 컬렉터를 이용하여 더는 사용하지 않는 메모리를 자동으로 회수합니다.

자바 프로그램은 한 개 이상의 클래스(class)로 구성됩니다.

이러한 클래스는 한 개 이상의 필드(field)나 메소드(method)로 구성됩니다.

 

class 클래스이름 {

    필드의 선언

    필드의 선언

    …

    메소드의 선언

    메소드의 선언

    ….

}

class Test {

    int field1;

    String field2;

 

    public void method1() {

        System.out.prontln(“자바 프로그래밍!!”)

    }

}



* 실행결과

자바 프로그래밍!!



* main() 메소드

자바 프로그램이 실행되면 맨 먼저 main() 메소드를 찾아

그 안의 모든 명령문을 차례대로 실행합니다.

따라서 하나의 자바 프로그램에는 main() 메소드를 가지는

클래스가 반드시 하나는 존재해야 합니다.

 

자바에서 main() 메소드는 다음과 같이 선언합니다.

public static void main(String[] args) {

    …

}

 

자바 클래스파일(*.java)에 public 클래스(class)가 존재하면 소스 파일의 이름은

반드시 해당 public 클래스의 이름과 같아야 합니다.

이러한 public 클래스는 자바 클래스 파일마다 단 한 개만 가질 수 있습니다.

 

*명령문(statement)

자바 프로그램의 동작을 명시하고 이러한 동작을 컴퓨터에 알려주는데 사용되는

문장을 명령문이라고 합니다. 자바의 모든 명령문은 세미콜론(;)으로 끝나야 합니다.

 

*주석(comment)

코드에 대한 이해를 돕는 설명을 적거나 디버깅을 위해 작성하는 메모

자바 컴파일러 주석은 무시하고 컴파일하므로 실제 실행결과에 아무런 영향을 주지않습니다.

 

자바에 주석을 작성하는 문법은 두 가지 방법이 있습니다.

한 줄 주석은 시작위치에 // 을 사용하고, 여러 줄 주석은 /*로 시작해서 */로 끝나야합니다.

 

  1. // 한 줄 주석
  2. /* 여러

    줄

    주석 */

 

자바에서 여러 줄 주석 안에 또 다른 한 줄 주석을 중첩해서 삽입하는 법

 

/* 여러 줄 

   // 이렇게 두줄 주석 안에 다른 한 줄 주석

   주석입니다. */

 

여러줄주석+여러줄주석 은 불가능합니다.

 

 ** 여러줄 주석은 오류가 자주 발생하므로 사용하지 않습니다.



  • System.out.println()

 

자바 표준 입출력 클래스

C언어의 printf()함수나 scanf()함수처럼 자바에는 System이라는 표준 입출력 클래스를

정의하여 제공하고 있습니다.

java.lang 패키지에 포함되어 제공됩니다.

System 클래스에는 표준 입출력을 위해 다음과 같은 클래스 변수(static variable)가

정의되어 있습니다.

 

  1. System.in
  2. System.out
  3. System.err

 

자바에서는 System.in 스트림을 사용하여 표준 입력 작업을 수행

또한 System.out 스트림이나 System.err 스트림을 사용하여 표준 출력 작업을 수행

 

System.out.println()

 

System.out.println() 메소드를 사용하면 모니터에 전달된 데이터를 출력한 후에 줄 바꿈까지해줍니다.

 

println() 메소드를 사용하는 문법

 

System.out.println(출력할데이터);

 

 

System.out.print(7); // print() 메소드는 줄 바꿈을 하지 않습니다.

System.out.println(3); // 정수 출력

System.out.println(3.14); // 실수 출력

System.out.println(“자바!”); // 문자열 출력

System.out.println(“문자열끼리의” + “연결도 가능합니다.”);

System.out.println(“숫자” + 3 + “와 문자열의 연결도 가능합니다.”);




** 람다 표현식

 

new Thread(new Runnable() {

    public void run() {

        System.out.println(“전통적인 방식의 일회용 스레드 생성”);

    }

}).start();

 

new Thread(()->{

    System.out.println(“람다 표현식을 사용한 일회용 스레드 생성”);

}).start();




스트림(stream) API

데이터를 추상화하여 다루므로, 다양한 방식으로 저장된 데이터를 읽고 쓰기 위한

공통된 방법을 제공합니다.

 

String[] arr = new String[]{“넷”, “둘”, “셋”, “하나”};

 

// 배열에서 스트림 생성

Stream<String> stream1 = Arrays.stream(arr);

stream1.forEach(e -> System.out.print(e + “ “));

System.out.println();

 

// 배열의 특정 부분만을 이용한 스트림 생성

Stream<String> stream2 = Arrays.stream(arr, 1 , 3);

stream2.forEach(e -> System.out.print(e + “ “));

 

실행결과

 

넷 둘 셋 하나

둘 셋

 

반응형

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

JAVA로 점심밥을 골라주는 코드를 짜보자  (0) 2023.06.15