2023. 09. 13 (수) / Day 73
변수의 선언
어떤 값을 저장하는 것 그것을 불러들이는 것, 하나의 값을 저장할 수 있는 메모리 공간 이 변수 무엇보다 허용된 범위 즉, 제한이 중요함.
변할 수 있는 수 ↔ 상수:항상 변하지 않는 수
무조건 타입쓰고 변수이름을 적음 (ex) int age; or double value; 현재까지는 age는 바구니이고 value도 바구니이다.
그 바구니에 int가 들어가있고 또 double가 있다.
카멜케이스 : CamelCase 낙타표기법
스테이크케이스 : snak_case
케밥 case : font-size

실수 : 실제로 존재하는 수
\\ : 역슬레시
\\n : new line 라는 것으로 다음줄을 의미함
기본 타입 과 참조 타입
byte는 보통 파일을 처리할 때 사용
char은 문자 한 개를 사용할 때 사용
short는 요즘 잘 안씀
int는 +- 21억이다. 21억이 넘으면 담을 수 없다. 이상해짐 안됨 int는 거의 4바이트를 쓴다. 즉 32비트를 가지고 0~42억 근처까지 쓸 수 있다. 다를 순 있다.
long 21억보다 넘어갈 여지가 있으면 long을 씀
float 는 사용할 때 예)3.14f이렇게 f를 붙여야 한다.
double 은 자바에서 많이 씀
boolean은 bit를 먹는다.
나머지는 전부다 참조 타입이다.

변환을 영어로 casting이라고 함
기본적으로는 적어야 함 근데 원래 되는 것들이 있다.
byte 는 127가지 표현 가능함.

강제 형변환을 할 수는 있지만 강제 형변환을 하게 되면 정보 손실이 일어나서 정보가 이상해져서 왜곡이 일어남.
new도 연산자이다. / 똑같아 보이지만 의미가 다 다르다.
and는 곱하기 or는 더하기라고도 함 and가 or보다 계산 순위가 높다(빠르다) =이 가장 느리다.(가장 낮다)
String은 클래스이다. 3+3.0 +“JDK“ 문자를 만들려면 항상 문자를 왼쪽에 써라 주의
항상 =는 오른쪽에 온다.
NaN : Not a Number
infinite : 무한으로 빠지는 것
package kr.or.human;
public class Variable {
public static void main(String[] args) {
// 변수의 선언
int age;
// 저장, 할당
age = 28;
// 선언 , 선언 과 할당은 서로 다르다.
// 변수의 선언과 동시에 초기화
// 변수를 선언
// 할당을 한 것
int age2 = 28;
// double value;
System.out.println("1\\n2\t3");
System.out.println("1\\n\r2\"3");
System.out.println("1\\2\"3");
// 변수명이 숫자로 시작하면 안되고 특수문자 $_만 허용되고 나머지는 안된다.
/*
* 한 줄 주석 처리: Ctrl + / 여러 줄 주석 처리: Ctrl + Shift + / 코드 정렬: Ctrl + Alt + L 현재 줄
* 주요 편집 단축키:
코드 자동 완성: Ctrl + Space
줄 복사: Ctrl + Alt + 위/아래 화살표
줄 이동: Alt + 위/아래 화살표
줄 삭제: Ctrl + D
주석 처리/해제: Ctrl + / (한 줄 주석), Ctrl + Shift + / (여러 줄 주석)
코드 정렬: Ctrl + Shift + F
디버깅 관련 단축키:
디버그 시작/중지: Ctrl + F11
중단점 설정/해제: Ctrl + Shift + B
한 단계씩 실행(Step Over): F6
메서드 안으로 진입(Step Into): F5
현재 메서드 실행 완료(Step Return): F7
리팩터링(Restructuring) 관련 단축키:
변수, 메서드 추출하기(Extract Variable/Method): Alt + Shift + L, M 등
탐색과 검색 관련 단축키:
클래스 또는 파일 찾기: Ctrl+Shift+R (또는 Cmd+Shift+R macOS)
선언부로 이동(Go to Declaration): F3 또는 Ctrl 클릭
전체 검색(Search): Ctrl+H
*/
// 일부 주요한 예약어: class, interface, public, private, protected,
// static, final, if, else, for, while 등
int value = 5;
// int result = value + 10; // 초기화 안되서 오류남
int result = value + 10;
System.out.println(result); // 15
int a = 1; // a는 지역변수라고 함. 아래 블록안에서만 쓸 수 있다.
if(true) {
System.out.println("a : " + a);
int b=2;
}
// System.out.println("b : "+ b); // b는 지역변수인데 sout문은 지금 블록 밖에 있어서 오류가 뜸
int c = 20;
//c는 원래 int형인데 double형으로 변경가능
double d = c; // (double)는 타입케스팅 연산자라고 함
// double로 변경된 c를 d안에 넣는다.
// double d = (double)c; // 원래는 (double)c라고 강제변환 해야함
double d2 = c; // (double)가 생략됨 이것이 묵시적(암묵적임 변환)변환이라고함
// int c1 = d2
int e =2134567;
byte f = (byte)e;
int g1 = 30000;
// int g2 = 300000000; int 범위의 수를 넘어서 안됨
long g = 30000;
// long g = 3000000000L;
// g에다가 c를 더할 려고 한다.
long g2 = g+ (long)c; // 작은 게 큰 것으로 바뀌고 난 다음에 연산이 된다.
// int g3 = g + c;
double pi = 3.14;
double pi2 = -3.14;
int h = (int)pi;
int h2 = (int)pi2;
System.out.println(h);
System.out.println(h2);
System.out.println(pi * (double)3); // 밑에와 같은 값이 나온다
System.out.println(pi * 3);
int a1 = 3;
int a2 = 4;
// a1++;
// a1 = a1 + 1; // a1은 3인데 +1을 하니까 4가 된다. 그후 a1에 =을 타고 넘어가서 4가 들어간다.
// a1 += 1; // 위와 같다
// ++a1 ;// 1일 경우에는 이렇게도 쓸 수 있다.
++a2;
int a3 = a1++ + ++a2 +a2; // ++ 은 먼저 쓰고 더하느냐 더하고 쓰느냐 차이
// 순서대로 적으면
//3 → 5(a2가 4가 되기 전에 ++이 있었으니까 4+1이되어 5가됨) → 9
// -가 있다면
int a4 = a1++ - a1 + ++a2 + a2;
int [] b1 = {1, 2, 3, 4};
int b1_index = 0;
int b2 = b1 [b1_index++ ];
int b3 = b1 [b1_index++ ];
int b4 = b1 [b1_index++ ];
// // i++;
// for (int i = 0 ; i < 10; i ++) {
//
// }
// 숫자를 문자로 바꿀 수 있는 가장 쉬운 방법
String j = "" + c; // 문자 + 숫자 → 문자
//int k = 5 / 0; // divion 0으로 나눠서 오류남
// 정밀도
float l = 0.12345678901234156798F;
double m = 0.1234657890123465789;
System.out.println("float : " + l);
System.out.println("double : " + m);
int n = 3 > 4 ? 5 : 6 ; // 3 > 4가 거짓이면 6만 남고 3 > 4가 참이면 5만 남는다.
// int n = (3 > 4) ? 5 : 6 ; // 헷갈리면 ()를 쳐라
}
}
// 구매 가능한 아메리카노 갯수 구하기
int amount = 10000;
int priceA = 3500;
int numberOfAmericano = amount / priceA;
System.out.println("아메리카노 개수 : " + numberOfAmericano );