4일차 scanner
📍 메모리
변수 값 찾기
변수(A) -> A주소 찾기 -> 주소에 있는 값 출력
📍 RAM (Random Access Memory)
- 컴퓨터 부품 중 하나
- 컴퓨터에서 실행중인 프로그램이 저장공간을 만들면 RAM에 생성하고 관리한다.
- 우리가 만드는 변수도 RAM에 저장공간을 만들고 값을 저장한다.
- RAM의 주요 특징은 각각의 저장공간에 고유한 주소를 붙여 사용한다.
💡 주소값
메모리(RAM)에 저장공간이 할당되면 고유한 값인 주소값이 부요된다.
📍 상수 (constant)
- 변수와 비슷한 저장공간
- 변수와 차이점은 상수는 한 번 저장한 값을 변경할 수 없다
- 상수의 이름은 대문자와 언더바로 만든다.
변수 : myAge
상수 : MY_AGE
💡 상수 선언과 초기화
메모리(RAM)에 저장공ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ
// 상수 설정 및 초기화
final int AGE = 10;
System.out.println(AGE)
final String MY_NAME = "김철수";
System.out.println(MY_NAME);
상수를 사용하는 이유
- 상수는 절대 변경되면 안되는 중요한 값을 저장할 때 사용한다. 예를 들면 주민등록번호, 학번
📍 리터럴 (Literal)
- 고정된 값 그 자체를 의미한다.
- 1,2,3 같은 정수 값, true같은 논리값 등 모든 값들을 표현하는 것을 리터럴이라 부른다.
즉, 코드내에서 고정된 값을 직접적으로 표현한 값
변수내에 저장된 10이라는 값이 10년후에 변하지 않고 그대로 고정되어있기떄문에 리터럴값이라 한다.
📍 이스케이프 문자 (제어 문자)
- 따옴표 안에서 사용되며, 특별한 역할을 수행하는 문자
- \ (백슬래시)로 시작한다.
문자 종류
" \n " - 줄바꿈
" \t " - 탭 (일정 간격 띄어줌)
" \" " - 문자열 안에 큰 따옴표 표현
" \' " - 문자열 안에 작은 따옴표 표현
" \\ " - 문자열 안에 역슬래시 표현
" \b " - 글자 하나 지우기
" \r " - 열의 맨 앞으로 이동 후 insert 입력
📍 출력 문자 (제어 문자)
- 따옴표ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
System.out.println("줄바꿈");
System.out.println("있음");
System.out.print("줄바꿈");
System.out.print("없음");
형식지정자 (서식 문자)
%로 시작하며, printf에서 사용된다.
' , '뒤에 나오는 값이 형식 지정자 위치로 들어가게 된다.
종류
%d - 10진수 정수를 넣을 때 사용 (decimal)
%f - 실수를 넣을 때 사용 (float)
%c - 문자를 넣을 때 사용 (character)
%s - 문자열을 넣을 때 사용 (String)
📍 형변환
형변환 종류
1. 자동 형변환
- 보통 작은 크기의 데이터를 큰 크기의 타입으로 변환할때 일어난다.
2. 강제 형변환
- 강제로 타입을 변환하는 것
- 보통 큰 크기의 데이터를 작은 타입으로 변환할 때 활용
불가한 형변환
기본 자료형, 원시 자료형 primitive type
참조 자료형 reference type
기본 자료형과 참조 자료형 간의 형변환은 일반적으로 불가능하다.
String은 특수한 자료형이라서 형변환이 가능하다
함수
~~~
메서드 (함수)
- 클래스 내부에 만들어진 함수를 메서드라고 부른다.
- 자바는 모든 코드를 클래스 내부에 작성하므로 모든 함수가 클래스 내부에 만들어져 있다.
- 즉, 자바는 모든 함수를 메서드라고 부른다.
처음에 빨간 줄이 나오는 이유는 컴퓨터가 scanner class 위치를 모르기 때문이다.
scanner class 위치를 알려주기 위해 import를 해주어야 함
import 방법
1. 자동완성 사용 (ctrl + shift)
2. 단축키 사용
ctrl + shift + o : import 안된 모든 클래스 import 하기
package a_scanner;
import java.util.Scanner;
public class _01_scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입력 >> ");
sc.next();
}
}
alt + 위아래 : 커서가 있는 줄의 코드가 위아래로 위치가 변경됨
sc.next // type: String
sc.nextLine // type: String 띄어쓰기 상관없이 엔터를 기준으로 가져온다. ex) 홍 길동
sc.nextInt // type: int
buffer