
컴퓨터 프로그램 개발 실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)
(=> 라이브러리란 프로그램을 만드는 데 자주 쓰일만한 것들을 만들어 놓은 것 / 사전이라고 생각하면 편하다)
자바의 특징
1. 자동 메모리 관리(garbage collector)
2. 멀티 쓰레드 지원(하나의 프로그램에서 여러 가지 프로그램 지원 가능)
3. 풍부한 라이브러리로 쉽게 개발가능 운영체제에 독립적 하나의 자바 코드를 작성하면 코드를 전혀 수정하지 않아도 자바 버츄얼 머신이 설치만 되어 있으면 실행하는데 어떠한 문제도 없다 (운영체제 없이 어디든 수정이 가능하다)
특정 메서드가 어떤 역할인지 모를 때는 java api index에서 확인이 가능하다
cmd에서 cd라는 명령은 change directory
환경변수에 path에 경로를 넣어두면 컴퓨터가 실행파일을 찾을 때 경로를 입력하지 않고 파일명만으로도 실행이 가능하다
Build란 소스파일을 만들어 내는 전 과정
변수
- 변수에 값 저장하기 int age; //정수 타입의 변수 age선언 age = 25; //변수 age에 25를 저장
- 변수의 초기화 (변수에 처음으로 값을 저장하는 것)
int x = 0, y = 5 //변수의 타입이 같을 경우 한 줄로도 작성이 가능하다
변수의 종류
- 클래스 변수
- 인스턴스 변수
- 지역 변수 //지역 변수는 읽기 전에 꼭 초기화해야 한다
값 타입
- 문자 - char
- 숫자 - 정수 - byte, short, int, long //int의 범위 +-20억
- 실수 - float, double
- 논리 - boolean => true, false
변수, 상수, 리터럴
변수 - 하나의 값을 저장하기 위한 공간 (변경 가능)
상수 - 한 번만 값을 저장 가능한 변수 (변경 불가능)
/ 변수 앞에 final을 붙이는 경우를 상수라 한다 리터럴 - 그 자체로 값을 의미하는 것 (=기존의 상수)
- 변수와 리터럴의 타입 불일치
- 범위가 변수 > 리터럴 인 경우 OK (물건보다 그릇이 더 큰 경우) int i = 'A'; // int > char double d = 3.1f; // douuble > float
- byte, short변수에 int리터럴 저장 가능 byte b = 100; //OK, byte의 범위에 (-128 ~ 127)에 속함 //단 변수 타입의 범위 이내여야 한다
println은 10진수만 출력이 가능하고, 접두사와 접미사는 출력이 불가능하다 만약 10진수가 아닌 다른 진수를 출력하고 싶다면 printf를 사용해야 한다
문자열
"" + 7 + 7 = 77 //가장 왼쪽은 ""부터 계산 7 + 7 + "" = 14
- 기본형과 참조형
- 기본형 오직 8개(논리형 - boolean, 문자형 - char, 정수형 - byte, short, int, long, 실수형 - float, double) 실제 값을 저장
- 참조형 무한개 (기본형을 제외한 나머지 - String, System) 메모리 주소를 저장(4 byte 또는 8 byte)
- printf()
println()은 출력형식을 지정하지 못한다 / 10진수로만 출력된다 printf()은 출력 형식 지정이 가능하다
printf메서드는 줄바꿈을 자동으로 하지 않기에 만약 줄바꿈을 하고 싶다면 \n을 적어줘야 한다
- 화면에서 입력받기
- import문 추가 //import java.util.*; import 사용하려는 클래스가 어느 패키지에 속해 있는지 알려주기 위한 것
- Scanner객체의 생성 클래스도 객체를 생성해야만 사용할 수 있는 클래스가 있다 반면에 scanner클래스는 꼭 객체를 생성해야만 사용이 가능하다 Scanner scanner = new Scanner(System.in); //System.in은 화면 입력을 의미
- Scanner객체를 사용 int num = scanner.nextInt(); //화면에서 입력받은 정수를 num에 저장 / 만약 정수가 아니라 실수형태로 저장할 경우 nextFloat();으로 저장 String input = scanner.nextLine(); //화면에서 입력받은 내용을 input에 저장 int num Integer.paraseInt(input); //문자열(input)을 숫자(num)로 변환
숫자를 문자열로 변환할 경우 숫자 + ""을 해주면 되지만 문자열을 숫자로 변환할 경우 Integer.parseInt()를 해주면 된다
- 오버플로우 : 타입이 표현할 수 있는 값의 범위를 넘어서는 것을 '오버플로우'라고 한다
- 문자와 문자열의 차이 'A' < 문자 = char "A" < 문자열 = String 문자는 뒤에 \0(널문자)가 없지만, 문자열 끝에는 \0(널문자)가 저장이 된다
'스터디 > java' 카테고리의 다른 글
자바 독학 [자바의 정석] : 스터디 기록 2 (0) | 2023.09.15 |
---|---|
Chat GPT를 활용하여 Java 기초 공부하기 (0) | 2023.09.14 |
자바 리듬게임 만들기 ( 7강 ) (0) | 2023.08.13 |
자바 리듬게임 만들기 ( 4 - 6 강 ) (0) | 2023.08.06 |
자바 리듬게임 만들기 ( 1 - 3강 ) (0) | 2023.07.29 |