JAVA 기본 함수

강정우·2022년 6월 22일
0

JAVA

목록 보기
2/31
post-thumbnail

6/22 강의

  1. Java 강의간 예습의 중요성을 다시 한 번 느김 꾸준히 계속 발전하는 개발자가 되어야만 함.
  2. Java에서 두 변수의 값을 바꾸는 법을 배움.
  3. 오버플로우, 자동형변환, 서로다른 타입의 덧셈, 포멧팅 없이 소수점 자르기
  4. 스캐너클래스는 Stream 기술로 용량을 상당부분 차지하기때문에 반드시 닫아줘야함.

#2 JAVA 복습

1. 두 수의 위치 바꾸기.

파이썬과는 달리 JAVA는 바로 치환이 안 됨. 따라서 변수문자열 tmp를 하나 만들어서 하나의 값을 일시적으로 tmp에 담은 상태에서 바꾸기를 진행해야함.

2. 데이터 오버플로우.

더 작은 자료형 -> 더 큰 자료형은 문제가 없지만,
더 큰 자료형 -> 더 작은 자료형은 문제가 있다. 값이 흘러넘쳐 잘려버리기 때문이다. 하지만 우리 개발자들은 이것을 유용하게 이용할 수 있다.

3. 서로 다른타입은 덧셈.

문자열+정수+정수 = 문자열
정수+문자열+정수 = 문자열
우선 2항연산자인 덧셈부터 시작 그런데 제일 앞에서 부터 시작됨.

4. 포멧팅을 제외한 소수점 자르기.

우선 포멧팅은 먼저 사용해보자.

int num1 = 7;
int num2 = 3;
System.out.printf("%.2f",num*1.0/num2);

#2.33

이처럼 한 줄로 처리가 가능하다. 하지만 포멧팅을 사용하지 않는 방법도 있다.

double result1 = (num1/(double)num2);
int result2 = (int)(result1*100);
System.out.println(result2*0.01);

double 타입으로 소수점을 살린뒤 백의 자리로 만들고 int타입으로 233로 만든다 다음 출력문에서 0.01을 곱하여 2.33값으로 만들어주면 된다.

기타 잡기술

  • main 함수는 굳이 다 타이핑 할 필요가 없다. main 만 치고 ctrl+enter을 하면 자동으로 main method가 완성된다.
  • ctrl+shift+f == 자동정렬

추가공부

1. 유니코드 산술변환

char i = '2';
char j = '0';
System.out.println(i-j);
#2 (int타입)

왜 이렇게 나오는 것인가?
우선 char타입 2는 유니코드로 50으로 변환이 된다.
char타입 0은 유니코드로 48으로 변환이 된다.
따라서 50-48이기 때문에 결과값은 문자열-문자열을 했음에도 불구하고 int형 값이 나온다. 쉽게 이해하기위해선 그냥 문자열 '0'으로 문자열을 벗긴다고 생각하면 쉽다.

2. 타입찍어보기

공부중 타입을 찍어보는기 계속하여 신텍스에러가 발생하였다.
파이썬은 그냥 type()을 찍어보면 되지만 자바를 그렇지 않았다.
실제로 코드 작성중 type을 찍어보는 일이 많았기에 자세히 알아보았다.
우선 자바는 primative type 과 reperence type이 있다. 말 그대로 원시적이거나 참조할 수 있는 타입이 있다.
이때 래퍼런스 타입은

변수.getClass().getName();

으로 알 수 있지만 8개의 바꿀수 없는 타입을 지닌 primative 타입은 반드시 option 을 캐스팅해야한다.

((option)변수).getClass().getName();

반드시 알아두자.

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글