📆 2022년 11월 13일 일요일
티스토리에 Java 혼자 이론 공부하면서 적어뒀던 문서들 가져오기 😭
...
하려고 했으나..!!
너무 노가다성이 짙어서 포기
22일에 시험이라는데 큰일이다 😭
- why? 자바 프로그램은 byte 코드임
- why? 자바 프로그램은 JVM 위에서 돌아감
.java
소스 파일 작성- 컴파일러
javac.exe
로 바이트 코드 파일.class
생성 - JVM 구동 명령어
java.exe
로 실행
public class Hello {
public static voic main(String[] args) {
System.out.println("Hello, welcome to the java world!");
}
}
→ "Hello, welcome to the java world!" 출력
→ System.out.println();
: () 안의 내용이 출력됨
→ Hello
: class 이름
→ method()
: 반드시 class의 {} 안에 포함
class{}
: 필드 또는 메소드를 포함method()
: 실행문 작성, 끝에;
붙여야함
프로그램 실행 과정에서 ⭐️ 무시됨 ⭐️
기호 | 설명 |
---|---|
// |
// 부터 라인 끝까지 주석으로 처리 (행 주석) |
/* ~ */ |
/* */ 사이 모든 범위를 주석으로 처리 (범위 주석) |
- 메모리 공간
- 한 가지 타입의 하나의 값만 저장 가능
int age;
: 정수 age 변수 선언double value;
: 실수 value 변수 선언int x, y, z;
:,
를 이용해 정수 x, y, z 변수를 한번에 선언
$
||_
||문자
로 시작해야 함- 영어 대소문자 구분
applePhone
형식으로 작성- 길이의 제한 없음
- 자바 예약어 사용 불가
대입 연산자 =
사용
초기값 : 변수에 처음 저장한 값
초기화 : 변수에 초기값을 주는 행위
❗️ 변수 선언 & 초기화 동시 가능 ❗️
int score1;
score1 = 90;
❗️ int score2 = 90; ❗️
-
정수 리터럴은 10진수로 간주한다.
0, 75, -100
-
byte
,char
,short
,int
,long
에 저장 가능
-
소수점이 있는 리터럴은 10진수 실수로 간주한다.
0.25, -3.14
-
float
,double
에 저장 가능
-
작은 따옴표로 묶은 텍스트는 하나의 문자 리터럴로 간주
'A', '한', '\t', '\n'
-
문자 리터럴을 저장할 수 있는 타입은 char 하나 뿐
-
큰따옴표로 묶은 텍스트는 문자열 리터럴로 간주
-
텍스트가 없어도 문자열 리터럴로 간주
-
문자열 리터럴 내부에서도 이스케이프 문자를 사용할 수 있다.
"대한민국" "탭 만큼 이동 \t 합니다." "한 줄 내려 쓰기 \n 합니다."
-
문자열 리터럴을 저장할 수 있는 타입은 String 하나 뿐이다.
-
true와 false는 논리 리터럴로 간주
true, false
-
논리 리터럴을 저장할 수 있는 타입은 boolean 하나 뿐이다.
- 초기화가 되어야 읽을 수 있다.
{}
내에서 선언되고 사용- 클래스, 생성자, 메소드에서 사용
- 메소드 블록 내에서 선언된 변수 : 로컬 변수
local variable
- 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.
- 선언된 블록 내에서만 사용 가능
타입에 따라 저장할 수 있는 값의 종류와 범위가 달라짐
타입 | 크기 | 범위 |
---|---|---|
byte | 1 byte = 8 bit | -128 ~ 127 |
char | 2 byte = 16 bit | 0 ~ 65,535 |
short | 2 byte = 16 bit | -32768 ~ 32767 |
int | 4 byte = 32 bit | -2147483648 ~ 2147483647 |
long | 8 byte = 64 bit | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
타입 | 크기 | 범위 |
---|---|---|
float | 4 byte = 32 bit | 1.4E-45 ~ 3.4028235E38 |
double | 8 byte = 64 bit | 4.9E-324 ~ 1.7976931348623157E308 |
타입 | 크기 | 범위 |
---|---|---|
boolean | 1 byte = 8 bit | true, false |
데이터 타입을 다른 데이터 타입으로 변환하는 것
- 자동적으로 타입 변환이 일어나는 것
- 작은 타입이 큰 타입에 저장될 때 발생
크기별로 타입을 정리하면 다음과 같다.
byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
❗️ byte
는 char
으로 자동 변환 불가 ❗️
- 캐스팅 Casting
- 강제로 큰 타입을 작은 타입으로 쪼개어서 저장하는 것
- 캐스팅 연산자
()
사용 - 괄호 안에 들어가는 타입은 쪼개는 단위
다음은 int
타입을 byte
타입으로 캐스팅 시키는 코드이다.
int intValue = 103029770;
byte byteValue = (byte) intValue;
byte byteValue = 10;
Why? intValue타입 끝의 1byte만 저장되었기 때문
❗️ int
값을 실수 타입으로 변환 시 double
타입을 사용하는 것이 좋다.
- 크기가 큰 타입으로 자동 변환된 후 연산을 수행
- 정수 연산일 경우 int 타입을 기본으로 함