자바 개발자 중급 정도 일때에 꼭 알아야하는 개념들을 정리 해보겠습니다
저도 중급정도의 경력인데 아직 너무 모자란 탓에 다시한번 정립하는 차원에서
정리하게 되었네요
먼저 모든 클래스의 조상
Object 클래스 입니다
오브젝트 클래스 안에서 가장 많이 사용하는것 중 하나가
equals 입니다 객체가 갖고있는 값을 비교합니다
객체라는것이 중요합니다 ㅎㅎ
toString은 객체의 값을 문자열 형태로 리턴 합니다 아주 많이 쓰이죠 ㅎㅎ
hashCode는 객체의 해시코드 값을 리턴 합니다
Override는 이미 존재하는 메서드를 개발자가 상황에 맞게 내용을 수정하여 사용
하는것입니다 전에도 한번 설명 했듯이 이미 있는 메서드 명이지만 내가 재정의 하여
사용한다 라고 생각하시면 되겠습니다
다음으로는 오토박싱 오토 언박싱 입니다
우리가 Integer클래스와 int자료형이 다르지만 오토 박싱현상이 일어나기때문에
굳이 하지 않아도 되는 작업들이 있습니다 알아서 오토박싱 언박싱이 일어나기 때문이죠
예를 들자면
Integer i = new Integer(1);
Integer i = 1;
다른듯 같습니다 ㅎㅎ 위 구문은 새로이 객체를 생성하면서 값을 주입하는 반면 아래의 구문은
그냥 숫자 1 을 줘버리네ㅎㅎ int형일테구요
오토 박싱이 일어나는 조건은 기본 자료형 데이터를 객체 데이터로 자동 형변환 해주는것 입니다
아주 편리하죠 ㅎㅎ
오토 언박싱은 반대로 생각하시면 됩니다
int iValue = i.intValue();
int iValue = i;
위에서 생성했던 Integer 인스턴스의 값을 intValue()로 빼서 기본 자료형인 iValue에다가 대입 했습니다
그렇지만 아래 구문은 그냥 인스턴스 자체를 넘겨버립니다
이때 일어나는것이 오토 언박싱 입니다
쉬운 개념이지만 햇갈리고 잊기 쉬운 내용이라 빼먹지 않고 적어뒀습니다
그리고 저도 이번 공부를 통해서 알게된 사실인데
String클래스는 객체를 생성해서 초기화(값 대입)를 할 때 내부적으로는 스트링 버퍼(StringBuffer)
를 만들고 append메서드로 내용을 붙여준다고 합니다 뭐 간단한 문자열 연산은 큰 문제가
없지만 예를들어 100개의 단어 조각을 하나하나 다 붙여야 한다? 라고 하면
String 클래스를 사용하는 것 보다는 StringBuffer클래스를 사용하는것이 퍼포먼스를 생각한다면
올바른 방법이라고 할 수 있겠습니다
혼동 하기 쉬운 리스트와 배열의 차이점도 간단히 서술하고 넘어가도록 합시다
리스트는 저장공간이 필요에 따라서 자유자재로 늘어나고 줄어들고 하지만
배열은 한번 생성하면 크기가 고정입니다!
그리구 List는 클래스가 아니라 인터페이스 이므로 import 할 때 java.awt와 java.util 둘중에
햇갈리면 안됩니다 우리는 util에 있는 List인터페이스를 씁니다!
한 개의 글에 다 담기 어려운 내용이므로 다음 글에 추가하여 작성하도록 하겠습니다
'Developer > Java' 카테고리의 다른 글
[java]Stream (1) | 2022.10.04 |
---|---|
[java]자바 중급 개념정리 (2) | 2022.09.30 |
[java]Stack클래스 (0) | 2022.09.28 |
[java]Arrays클래스 (0) | 2022.09.27 |
[java] Math 클래스 (0) | 2022.09.26 |