[J01] Java_시작Java/Java 기본 개념2021. 8. 20. 18:00
목차
//ch01_자바 시작
📌바이트 코드
- 자바 가상 기계에서만 실행되는 기계어
- 바이너리 코드 (binary code)
- 자바 컴파일러가 자바 소스프로그램을 컴파일하여 바이트 코드로 된 클래스 파일을 생성
- 클래스 파일은 CPU에 의해 직접 실행되지 않고 자바 가상 기계가 인터프리팅 방식으로 실행시킴
- 자바 클래스 파일을 디어셈블하여 바이트 코드로 볼 수 있는 도구(javap)를 JDK에서 제공
📌자바 가상 기계
- 서로 다른 플랫폼에서 자바 프로그램이 실행되는 동일한 환경을 제공
- 플랫폼마다 다르게 작성되어 배포되고 플랫폼 종속적이다.
📌자바 프로그램 개발 및 실행
- 여러 소스파일(.java)로 나누어 작성한 후 자바 컴파일러가 각 소스 파일들을 컴파일하여 클래스 파일(.class)을 생성
- 이들을 하나의 실행 파일(.exe)로 뭉치는 **링크의 과정이 없다**.
- 개발자가 여러 클래스 파일 중 하나를 지정하여 싱핼하면 자바 가상 기계는 그 클래스 파일을 메모리에 로딩하고 실행한다.
- 실행 도중 다른 클래스 파일이나 자바 API의 클래스 파일이 필요하면 자바 가상 기계는 그 때 그 클래스 파일을 로딩하고 실행한다.
- 처음부터 모든 클래스 파일을 로딩해놓을 필요가 없기 때문에 적은 량의 메모리를 가진 컴퓨터에서 얼마든지 큰 자바 응용 프로그램 실행 가능
⭐ 자바 컴파일러가 자바 소스 프로그램을 컴파일한 기계어를 바이트 코드라고 부르며, 이 코드는 자바 가상 기계에 의해 번역되어 실행된다.
//ch02_자바 기본 프로그래밍
📌main()은 반드시 public, static, void 타입으로 선언되어야 하며 한 클래스에 2개 이상의 main()을 작성하면 안된다.
📌화면 출력은 System.out.print 또는 System.out.println(다음 행 이동)을 이용한다.
📌변수, 상수, 메소드, 지역변수 등 모든 것은 자바 클래스 바깥에 선언될 수 없다.
📌자바 키워드란 이미 용도가 정해진 것으로 예약어라고도 하며 식별자 이름으로 사용할 수 없다.
📌기본 데이터 타입 8개
- 논리타입
- boolean (1비트)
- 문자 타입
- char (2바이트)
- 정수 타입
- byte (1바이트)
- short (2바이트)
- int (4바이트)
- long (8바이트)
- 실수 타입
- float (4바이트)
- double (8바이트)
📌레퍼런스 타입 1개
- 레퍼런스는 포인터와 비슷한 개념이지만 실제 주소 값을 가지지는 않는다.
- 용도
- 배열에 대한 레퍼런스
- 클래스(class)에 대한 레퍼런스
- 인터페이스(interface)에 대한 레퍼런스
📌리터럴
- 논리 리터럴
- true, false 두 가지
- ex)
- boolean a = true;
- boolean b = 10 > 0;
- boolean c = 1; //Error. 숫자를 참, 거짓으로 사용하지 못함
- while(true) {...} //무한루프. while(1)은 오류.
- null 리터럴
- ex) int n = null; //Error. 기본 타입에 null값을 지정할 수 없다.
- ex) String str = null; //정상
- 문자열(String) 리터럴
- 이중 인용 부호("")로 표현
- 모든 문자열, 문자열 리터럴은 String 클래스의 객체이기 때문에 문자열 리터럴은 String 객체에 저장한다.
- ex) String str = "Good";
📌var 키워드
- 지역 변수 선언 시 변수의 타입 대신 var 키워드 사용 가능
- ex)
- var price = 200; //price 는 int 타입으로 결정
- var name = "kitea" //name은 String 타입으로 결정
- var point = new Point(); //point는 Point 타입으로 결정
📌상수
- 상수 변수 선언 시 final 키워드 사용
- ex) final double PI = 3.141592;
📌Scanner를 이용한 키 입력
- System.in
- 입력된 키를 단순한 바이트 정보로 응용프로그램에 제공
- 받은 바이트 정보를 문자나 숫자로 변환해야 하는 번거로움
- Scanner 객체 생성
- 입력된 키를 원하는 타입으로 변환해줌
- ex) Scanner scanner = new Scanner(System.in);
- import 문 사용
- Scanner를 사용하기 위해서는 프로그램 맨 앞 줄에 import 문이 필요함
- ex) import java.util.scanner;
- Scanner 클래스로 키 입력받기
- 입력하는 키 값을 공백문자를 기준으로 분리하여 토큰 단위로 읽는다.
- 공백이 낀 문자열 입력
- 메서드 nextLine()을 이용
- nextLine()은 <Enter> 키의 입력을 기다리는 용도로 사용할 수 있다.
- nextLine()은 빈 문자열("")을 리턴하면서 바로 돌아오지만
- next()를 사용하게 되면 <Enter> 키를 계속 입력하여도 문자열이나 숫자 등 다른 키가 입력될 때까지 기다린다.
- Scanner 객체 닫기
- 객체 사용을 종료하려면 다음과 같이 닫아 준다.
- scanner.close();
- scanner 객체가 닫히면 System.in 도 함께 닫히므로 더 이상 System.in을 사용해서 키 입력을 받을 수 없다.
728x90
반응형
LIST
'Java > Java 기본 개념' 카테고리의 다른 글
[J06] Java_자바 GUI 기초, AWT와 스윙 (1) (0) | 2021.09.18 |
---|---|
[J05] Java_입출력 스트림과 파일 입출력 (0) | 2021.09.16 |
[J04] Java_모듈과 패키지 (0) | 2021.09.10 |
[J03] Java_상속 (0) | 2021.09.03 |
[J02] Java_클래스와 객체 (0) | 2021.08.27 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!