2021 Review

KDU·2022년 2월 21일

자바공부

목록 보기
5/17

String은 왜 참조형 변수이면서 기본형처럼 사용할 수 있는가?

 String은 기본형 변수가 아니긴 하지만, JAVA에서 수없이 쓰이기 때문에 String pool이 존재하며, 생성자를 만들지 않고 기본형처럼 사용했을 때 그 값을 pool에 기록해두고, 같은 값이면 비교연산 ==을 사용했을때도 true를 반환할 수 있다.
 일반적인 참조형 변수들은 equals를 사용하지 않고 ==을 사용할 때 주소값을 반환해서 문자열이 똑같더라도 false를 반환하는것을 생각해보면 차이점을 알 수 있다.

java.lang은 왜 import로 표기하지 않는가?

 java.lang은 필수적으로 사용되는 라이브러리 패키지기 때문에 따로 호출하지 않아도 바로 변수에 참조해 사용할 수 있도록 만들어져 있다.

Stack메모리와 Heap메모리 (조금 더 알아봐야 할듯)

  • 메모리의 스택(stack) 영역은 메서드의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이다. 스택 영역은 메서드의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.
  • 힙(Heap)영역은 사용자가 메서드를 호출하고 관련 기능을 사용할 때 스택 메모리에 저장되어 있는 주소에 존재하는 실제 기능들을 담아두는 메모리라고 이해했다.
    참조 : 메모리의 구조(TCP school)

조건문

  • if, else if, else, switch/case

최대한 많은 예제를 통해 익숙해지는것이 중요하다.

오늘 배운 지식

  • Scanner 메서드에서 next(); 는 띄어쓰기를 기준으로 자른다. 띄어쓰기를 한다면 그 다음 next();가 존재할 때 자동으로 추가되고, 존재하지 않는다면 없어진다.
    만약 띄어쓰기까지 전부 나타내고 싶다면 nextLine();을 사용하라.
  • 참조형 변수들의 주소값을 비교할때는 ==연산자를 사용하고, 내부의 실제 값을 비교하고 싶을때는 String.equals(String);을 사용한다.
  • 자바에서 사용되는 특수문자의 기호표

오늘의 코드

  1. 값을 받아서 연산
  1. 홀짝 계산기
  1. 주사위 굴리기
profile
의문을 즐깁니다.

0개의 댓글