Developer Note/국비과정 수업내용 정리&저장

24년 09월 11일

DH_PARK 2024. 9. 12. 23:38

오전

(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