중급 개발자라면 알아야 할 내용들을 한번 더 정리 해봅시다 ㅎㅎ
저 또한 아직 부족함이 많은 사람임을 알기에 정리하며 저도 공부하고자 합니다
저번에는 Object와 String관련 내용, 박싱 언박싱을 알아보았는데
중급 개발자라면 당연히 알아야 하는 여러가지 클래스를 더 알아봅시다
Math
수학 계산을 위한 클래스로 이 클래스는 생성자의 접근제어자가 private이기 때문에
new 키워드로 객체를 생성 할 수 없습니다 하지만 메서드들이 static 이므로
객체 생성 없이 사용가능한거죠 ㅎㅎ
쉽기도 또는 어렵기도 한 이 클래스의 유용한 메서드들을 살펴봅시다
int i = Math.max(1, 3); //3
int j = Math.min(20, 2); //2
System.out.println(Math.abs(-10)); //10
System.out.println(Math.random()); //랜덤한 수
System.out.println(Math.sqrt(25)); //5.0
min max는 아시겠죠?ㅎㅎ 그리고 abs는 절대값을 나타냅니다
음수를 정수로 바꾼다고 생각하세용
그리고 random메서드는 0부터 1까지의 랜덤한 수를 리턴합니다
sqrt는 루트값을 리턴하구요 ㅎㅎ
Java Annotation
구글에 검색 시 소스코드에 추가 하여 사용할 수 있는 메타데이터 일종이라고 나옵니다
어려운 설명이기에 간단히 설명 해보겠습니다 우리가 java코드를 작성하면서 간혹 필요한것이 설정 파일의 내용들이 필요합니다 이것을 따로 설정파일 필요없이 애너테이션으로 대처할 수 있습니다 관리가 용이하죠 다른 파일을 찾을 필요없이 애너테이션으로 대체 하니까요 종류는 3가지 정도가 있습니다 표준, 메타, 사용자정의
먼저 표준에서 대표적으로 쓰이는 것을 나열하자면
@Override
오버라이드는 컴파일러가 오버라이딩 올바르게 했는지 확인합니다
@Deprecated
앞으로 사용을 권장하지 않는 필드 및 메서드에 붙여줍니다 ㅎㅎ
소스코드 보다보면 hi() 보셨죠 바로 이겁니다 ㅎㅎ
@SuppressWarnings
컴파일러의 경고 메시지가 안나오게 합니다 ㅎㅎ
정상적으로 코드를 작성해도 컴파일러가 불안하면 띄웁니다 ㅋㅋㅋ
예를 들어 제네릭 안쓰면 가끔 뜹니다 ㅎㅎ
다음은 메타 입니다
@Retention
이 애너테이션의 유지기간을 설정합니다
SOURCE는 소스파일에만 적용하고 RUNTIME은 클래스파일에 적용합니다
@Inherited
자식 클래스에 상속할때 붙입니다 ㅎㅎ
사용자 애너테이션 입니다
만들기는 간단한데 저는 사실 만들어서 써본적은 없네요 ㅎㅎ
간단하게 만드는 구문만 보고 넘어가도록 합시다 ㅎㅎ
@interface 네임{
타입 요소 이름();
}
이런식으로 작성합니다 ㅎㅎ
사실 쓰면 편한것이지만 안쓰면 나만손해 이런 느낌이라 ㅎㅎ 공부하고 정리하게 되었습니다
감사합니다
'Developer > Java' 카테고리의 다른 글
[java]I/O (0) | 2022.10.12 |
---|---|
[java]Stream (1) | 2022.10.04 |
[java]자바 중급 개념정리1 (0) | 2022.09.29 |
[java]Stack클래스 (0) | 2022.09.28 |
[java]Arrays클래스 (0) | 2022.09.27 |