오전
(c02 진수부터)
java 기본 진수에 대해 배우는 중..
01111111 = 127; //127의 2진수
10000001 = -127; //-127의 2진수
byte a = 111;
2진수의 양수를 음수로 바꾸는 법
양수인 2진수를 그대로 뒤집는다 . (1의 보수를 구한다)
후에 1을 더해준다. (2의 보수로 바꿔줌)
(아 이거 원래 특강 때 다 이해하고 넘어간 부분인데 갑자기 다시 보니까 기억이 안난다;;)
수의 처리 방식
선저장 / 후처리
final : final 키워드는 변수, 메소드, 클래스에 사용될 수 있으며, 선언된 대상의 변경을 금지합니다. 변수에 사용될 경우 상수로서, 메소드에 사용될 경우 오버라이딩을 금지하며, 클래스에 사용될 경우 상속을 금지합니다. 이는 불변성을 보장하고, 안정적인 코드를 작성하는 데 도움을 줍니다.
수의 자료형
- byte : 1byte
- short : 2byte(음수,양수 사용) 0~65535
- char : 2byte(양수만 사용) -32768 ~ +32767 , 아스키코드를 바탕으로 인코딩한다. , 단 하나의 문자만 저장 ‘’(작은 따옴표)로 감싸서 표현
- int : 4byte(기본자료형) 21억
- long : 8byte 대충 엄청 많음;;
- boolean 참,거짓
- boolean flag = (10<11); //참
1byte = 8bit
실수
- float : 4byte 6-9자리 실수 , 뒤에 리터럴접미사 f,F 를 붙여서 써야함
- double : 8byte 15-18자리 실수 , 기본자료형이다.
실수 연산은 웬만해서는 오차가 많이 발생하기 때문에 웬만해서는 사용하지 않는게 좋다고 한다.
자바에서 기본 자료형은 반드시 사용하기 전에 선언을 해주어야 한다
비객체 타입이기 때문에 null 값을 가질 수 없다.
클래스 자료형으로 만든 변수는 ‘참조변수’ 라고 한다.
참조변수는 데이터가 저장된 위치정보(메모리주소값)이 저장된다.
오후
오류의 사전적 정의 : 참값과의 거리
0을 제외하고는 모든 숫자가 참으로 판단된다. (음수도 포함!)
형변환 !! **
- 강제형변환(암시적형변환) : 컴파일러에 의해 자동으로 변환
- 자동형변환(명시적형변환) : 프로그래머에 의해 강제로 변환
자동형변환인 경우 , 데이터 손실을 최소화 하는 방향으로 자료형이 일치
byte < short,char < int < long < float < double
소수점에서 long으로 가면 소수점 없어져서 데이터가 손실되니까 float이 순서상으로 더 뒤에있다.
자동형변환 :
byte byteValue = 10;
int intValue = byteValue; //byte가 int보다 작은 자료형이기 때문에 문제없이 자동형변환이 된다.
longValue = 100;
float floatValue = longValue; //long이 더 큰 자료형이지만 float이 실수라서 자동형변환이 되긴 한다 !
강제형변환 :
좁은 범위공간에 큰 범위의 값을 넣으려 하는 경우
데이터가 손실 될 수 있기 때문에 컴파일러에서 에러를 낸다.
이 때 해당 오류를 무시하고 강제로 자료형을 변환하는 작업을 할 수 있다.
int intValue = 44032;
char charValue = (char)intValue; //본래 int자료형이 char보다 크기 때문에 값이 들어가지 않지만 강제로 형변환을 해서 값을 넣어줄 수 있다.
long longValue = 500;
intValue = (int)longValue; //값이 500이라 자동형변환이 될 것 같지만 되지 않고 오류가 난다 ! 그렇기 때문에 int로 형변환을 해주어야 한다.
double doubleValue = 3.14;
intValue = (short)doubleValue; //값을 short로 변환시키기 때문에 3으로 데이터손실이 일어난다.
int n1 = 129;
byte n3 = (byte)n1; //기존 32bit인 int 에서 8bit인 byte 로 강제형변환을 해서 앞을 다 날리고 8bit인 10000001 을 남기게 되는데 이때 음수로 처리가 되어서 -127이 된다.
System.out.println("10" + "20");
정수 자료변환
int n1 = Integer.parseInt("10");
int n2 = Integer.parseInt("20");
System.out.println(n1+n2);
//문자열 -> 숫자형으로 변환(실수)
double n3 = Double.parseDouble("10.5");
double n4 = Double.parseDouble("20.4");
System.out.println(n3+n4);
short n5 = Short.parseShort("5");
short n6 = Short.parseShort("6");
System.out.println(n5 + n6);
Integer.parseInt() :
숫자형의 문자열을 인자 값으로 받으면 해당 값을 10진수의 Integer 형으로 반환 해준다.
'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글
24년 09월 13일 (1) | 2024.09.16 |
---|---|
24년 09월 12일 (1) | 2024.09.14 |
24년 09월 10일 (6) | 2024.09.12 |
24년 09월 09일 (1) | 2024.09.10 |
24년 09월 06일 (0) | 2024.09.08 |