#변수는 해당 중괄호 안에서만 사용할 수 있습니다.
#main안에서 만들어진 변수를 지역변수 라고 부릅니다.
컴퓨터의 세계에서는 0과 1이라는 2가지 숫자로만 이루어진 이진수를 바탕으로 구동하고 있다.
비트는 4칸, 바이트는 8칸 , 킬로바이트, 메가바이트, 기가바이트, 테라바이트, 헥사바이트 순으로 커짐.
#정수의 유형에 4가지가 있는이유:
정수는 데이터를 담는 상자. 담을 수 있는 크기에 따라 4가지로 나뉨.
byte 바이트 1 -> 127까지 기록가능 / short 2바이트(16칸)/ int 4바이트(32칸) -> 21억까지 기록/ long 8바이트(64칸) -> 2의 63승
비트는 4칸. 바이트는 8칸.
바이트는 8비트 ( 8비트는 4칸 -4글자라고 생각하면됨)
바이트 는 양수로는 127까지 저장가능, 음수로는 128까지.
바이트 8칸중 첫칸은 양수,음수를 나타내는 값.
주의! 정수 중에서는 기본적으로 int 를 사용
#실수의 유형에는 2가지 ( 정수와 실수가 만나면 무조건 실수가 이긴다.)
float - 4 바이트 , 소수부로 7짜리까지 나타냄.
double - 8바이트 , 소수로 15째자리까지 나타냄. ( 32칸 중간을 기준으로 실수와 정수를 표현해줌.)
실수에는 오차가 발생할 수 있다. 컴퓨터가 나타낼 수 있는 자리수의 한계가 있기때문.
그럴 때는 반올림같은 작업으로 정확하게 맞춰서 나타내 줘야함.
주의! 실수 중에서는 기본적으로 double 로 표현함.
#논리형 boolean
크기는 1비트 이며. true, false 이 두가지 값만 갖는다.
#문자형
-char(2바이트,16칸) -> 한글자만 저장가능. 'a' 이런식으로 문자(한글자)를 작은 따옴표만 사용해서 표현.
2바이트 이며 16칸사용. 양수,음수를 구분하지 않아도 되는녀석이기에 뭐라고 일컫기도 함.
-string -> "abc" 이렇게 문자열(글자여러개)을 큰따옴표를 사용해서 표현.
# 클래스 이름은 f2를 눌러서 변경 쌉가능.
# 문자열 쌉중요. 원리를 잘 알아둬야함.
아스키코드(영어만가능,1바이트,8칸) -> 유니코드(utf-8)의 등장으로 2byte(16칸)로 확장되고 부호없는 비트값 65536개의 문자를 표기.
-String
문자열은 + 로 연결하면 붙인 결과를 가져옵니다.
문자열은 길이를 확인 length()
ex) System.out.println(s1.length()); //5
주의!!!!
문자열에 다른 타입이 붙으면 -> 결과는 문자열
ex) System.out.println(100 + 200 + "world"); //300world
System.out.println("hello" + 100 + 200); //hello100200
-> //??
System.out.println("A" + 10); //A10
System.out.println('A' + 10); //75
#형변환 (type casting ) 아주 중요. 계속 나옴.
//??
System.out.println("A" + 10); //A10
System.out.println('A' + 10); //75
- 작은거를 큰거에 넣으려면 문제 x. 하지만 큰거를 작은거로 넣어주려면 작업이 필요. 이것이 바로 캐스팅.
-형변환을 하려면 타입의 크기를 알아야함. -> byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
실수형은 무조건 정수형보다 큼. 즉 실수를 정수로 넣으려면 무조건 캐스팅이 필요.
byte(1) < short(2) - char해당 < int(4) < long(8) < float(4) < double(8)
-char(2byte), short(2byte) 는 크기가 같지만
문자형과 숫자형이기 때문에, 형변환이 필요합니다.
- 형변환 방법
(바꾸고자하는 type명)x
- 서로 다른 타입의 데이터의 연산을 진행할 경우 두 데이터 중 큰 데이터 타입을 가진 쪽에 맞추어 자동 형 변환된 후 연산을 진행합니다.
- int형보다 작은 데이터타입의 연산을 진행할 경우 자동으로 int형으로 형 변환이 이루어집니다.
마찬가지로 char + char 해도 int로 형변환이 이루어짐.
그 이유는. 연산은 cpu가 해주는데.
cpu는 4바이트(int) 혹은 8바이트로 체계로 연산함.
그래서. !!! 어떤 언어에서든 기준이 int임.
# 연산자
- ~이거는 거의 안씀. 몰라도 됨.
- !는 반대연산자(부정연산자). !true 하면 결과는 false.
- 중요한 연산자는 ++,-- (자기에게 1을 더하거나 빼줌.) / ! / 데이터 타입을 바꿔주는 캐스트연산자(type)
# 2항 연산자
곱하기는. 아스타링크(*) 이거로 표현함.
나누기는. 하나는 /로 ( 몫을 구해줌), 또하나는 % 로표현(나머지를 구해줌).
-비교연산자
값은 true와 false 만을 나타냄.
== 은 같다는 것을 의미.
ex) a==b 는 a와 b가 같음을 나타냄.
#비트연산자는 몰라도 됨.
#논리 연산자 ( &, |, &&, || ) *******별이 다섯개! . 굉장히 중요!.
-& (앤드)and) , | (오어)or) 시프트 + 원화값 누르면 나오는거.
a. & : 연산을 수행하여 양쪽 항이 모두 true일 때만 true를 반환합니다.
b. | : 연산을 수행하여 양쪽 항 중 한쪽만 true를 만족해도 true를 반환합니다.
c. && : 만일 왼쪽 항이 false일 경우에는 오른쪽 항을 수행하지 않고 무조건 false를 반환합니다.
d. || : 만일 왼쪽 항이 true일 경우에는 오른쪽 항을 수행하지 않고 무조건 true를 반환합니다.
- &&, ||을 short circuit operator라고 부릅니다.
주의!!! 자바에서는 거의다 앤드랑 오어를 하나짜리말고 두개짜리를 쓴다.
* 대입 연산자(Assignment Operator)
- 대입 연산자의 기본형은 '=' 이고, 추가로 발전된 형태의 대입 연산자들이 있습니다.
- +=, -=, *=, /=, %=
int a = 1
a= a+3 을
a+ = 3 이라고 표현 가능 (이게 더 좋은 표현)
* 3항 연산자 ---- 너무 중요 무조건 외워야함.
- 피 연산자가 3개인 연산자를 말합니다.
- ( 조건식 ? 연산식1 : 연산식2 )
: 조건식의 결과값이 참이면 연산식1, 거짓이면 연산식2를 실행하라.
- 조건식에는 boolean형 조건식이 들어갑니다.
- c=65 b=66 a=67
-char 캐릭터라고 발음.
★★★★★★★★계산순서★★★★★★★★
- 소괄호 > 단항 > 이항 > 삼항 >대입
() a++ 얘는 맨 마지막에 계산이되는거다 라고 생각하고 있으면됨.
* 대입 연산자(Assignment Operator)
- 대입 연산자의 기본형은 '=' 이고, 추가로 발전된 형태의 대입 연산자들이 있습니다.
- +=, -=, *=, /=, %=