PlayData 백엔드 부트캠프 정리

PlayData 백엔드 부트캠프 Start 9일차

효건 2024. 8. 20. 23:06

1. 예외 처리 like 보험

  • 오류와 에러 -> 프로그램오류를 두가지로 구분할수있다.
    • 에러는 메모리 부족, 스택오버플로우와 같이 발생하면 복구할수없는 심각한오류이다.
    • 에러는 컴파일에러 런타임에러 논리적에러가 있는데 대개 논리적에러는 인텔리제이에서 먼저 경고를 해주어 알수 있으나 컴파일에러나 런타임에러는 실행해봐야 알수있는 경우가 있다.
    • 예외클래스의 최상위는 Exception이라고 할수있는데 그위에 Throwable 과 Object가 있음을 알아야 한다.
    • 예외 던지기(throws)가있는데 메서드나 생성자를 호출한곳으로 예외를 떠넘기는 방법이다. 이 키워득가 이쓴메서드는 반드시 try블록내부에 있어야 한다.
    • 예외를 발생시키는 throw 개발자의 기준에서 목표한 결과값을 도달하지 못하는 경우에 사용할수있다. 다시말해 잘못된 값으로가는 것을 막는 역할을 진행한다.  
    • 예외 처리를 하기 위해서 try-catch문을 사용해야 한다.
try{
 }cathch (Exception1 e1){ 예외가 발생할 가능성이 있는 문장
 }cathch (Exception2 e2){ 예외가 발생할 가능성이 있는 문장
 }cathch (Exception3 e3){ 예외가 발생할 가능성이 있는 문장
 }cathch (Exception4 e4){ 예외가 발생할 가능성이 있는 문장
 }

이와 같이 사용이 가능하다.

위에서 Eception1에서 부터 예외가 발생하는 지 확인하면서 아래로내려오는 데, 예외 발생시 빠져나갓면서 다음문장을 계속 실행한다. 따라서 return과 같이 바로끝내는 것이 아님을 인지해야 한다.

 

 

 

2. 자바표준API

  • Object 클래스
  1. equals(Object obj): 두 객체가 같은지 비교한다.그렇기 때문에 클래스에 맞게 변형해서 사용한다.
  2. 참고로 String의 equals도 Object의 equals를 오버라이딩 한 것이다.
  3. 근데 Object의 equals는 두 객체의 주소값을 단순히 비교하기 때문에 ==을 쓰는 것과 같다.
  4. hashCode(): 객체의 해시 주소값을 반환한다.
  5. 이 메서드 역시 하위 클래스에서 오버라이딩하여, 객체 내용의 변화에 따라 적절한 값을 반환하도록 구현하는 것이 일반적이다.
  6. toString(): 객체를 문자열로 변환하여 반환한다.컴파일 과정에서 붙어서 출력된다.대부분은 해당 객체의 속성들을 출력하는 것으로 오버라이딩 하여 사용한다.
  7. 기본 toString()은 단순 패키지 경로 및 클래스 이름과 16진수의 주소값이 나타나게 되며
  8. 이것은 객체의 주소값을 담고 있는 참조 변수를 그대로 출력했을 때 toString()이 자동으로
  9. clone(): 객체를 복제하여 반환한다.
  10. getClass(): 객체의 클래스를 반환한다.
  11. finalize(): 객체의 소멸자 역할을 합니다. 이 메서드는 GC(Garbage Collector)에 의해 호출된다.
  • System 클래스
  1. exit(): 현재 실행하고 있는 프로세스를 강제 종료시킨다.
  2. 정상 종료일경우 매개값으로 0을 주고, 비정상 종료인경우 0 이외에 다른 값을 준다.
  3. currentTimeMillis(), nanoTime() 1970년 1월 1일 자정을 기준으로 현재까지 흐른 유닉스 시간을 밀리세컨드(1/1000초) 단위와주로 프로그램의 실행 소요 시간 측정으로 성능을 테스트할 때 사용한다.
  4. 나노세컨드(1/10^9초)단위의 long값으로 리턴한다.
  5. getProperty(): JVM이 시작할 때 자동 설정되는 시스템의 속성값을 보여준다.
  6. gc(): Garbage Collector를 실행시킨다. 하지만 가비지 컬렉터가 언제 실행될 지는
  7. 보장해 주지 않는다.
  • String 클래스
  1. length() 메서드: 문자열의 길이를 반환한다.
  2. charAt() 메서드: 지정된 위치의 문자를 반환한다.
  3. substring() 메서드: 지정된 시작 위치에서부터 지정된 끝 위치까지의 문자열을 반환한다.
  4. toUpperCase() 메서드: 모든 문자를 대문자로 변환한다.
  5. toLowerCase() 메서드: 모든 문자를 소문자로 변환한다.
  6. indexOf() 메서드: 지정된 문자나 문자열이 처음으로 나타나는 위치를 반환한다.
  7. replace() 메서드: 지정된 문자나 문자열을 다른 문자나 문자열로 바꾼다.
  8. split() 메서드: 지정된 문자열을 기준으로 문자열을 나눈다.
  • StringBuilder() 클래스(StringBuffer)★★★★★(코딩테스트에서 유용!!!) 속도가 매우 빠름.
  1. append(): 기존 문자열의 뒤에 문자열을 추가한다.
  2. insert(): 특정 위치에 문자열을 추가한다.
  3. delete(): 문자열을 삭제한다.
  4. deleteCharAt(): 특정 인덱스의 문자 하나를 삭제한다.
  5. replace(): 문자열의 일부분을 다른 문자열로 대체한다.
  6. setCharAt(): 문자열에서 주어진 index의 문자를 다른 문자로 대체한다.
  7. toString(): StringBuilder 객체의 값을 문자열로 반환한다.
  8. reverse(): 문자열을 거꾸로 뒤집는다.
  • Math 클래스 
  1. abs(): 절대값을 구함.
  2. ceil(): 올림값을 구함.
  3. floor(): 내림값을 구함.
  4. max(): 수를 비교하여 최대값을 구함.
  5. min(): 수를 비교하여 최소값을 구함.
  6. random(): 랜덤값을 구함(0.0 <= 값 < 1.0)
  7. rint(): 현재 수에서 가까운 정수를 실수형태로 구함.
  8. round(): 반올림값을 구함.
  • Wrapper 클래스
    • 오토박싱  : 기본타입(int, double)을 객체로 포장하는 과정 
    • 오토언박싱 : 객체로 포장된것을 기본타입으로 변환 
    • 중요포인트는 다 이름이 첫글자만 대문자로 바뀌는데 int = Integer 와 char =Character로변환한다는 것을 인지. 
  • LocalDateTime 클래스
  1. now() : 현재 날짜와 시간 정보를 가지는 LocalDateTime 객체를 반환합니다.
  2. of() : 지정한 날짜와 시간 정보를 가지는 LocalDateTime 객체를 생성합니다.
  3. getXXX() : LocalDateTime 객체에서 지정한 필드의 값을 반환합니다. 
  4. plusXXX() : LocalDateTime 객체에 지정한 시간을 더한 새로운 LocalDateTime 객체를 생성합니다. 
  5. minusXXX() : LocalDateTime 객체에서 지정한 시간을 뺀 새로운 LocalDateTime 객체를 생성합니다.
  6. format() : LocalDateTime 객체를 지정한 형식으로 변환하여 문자열로 반환합니다. (예: "yyyy-MM-dd HH:mm:ss"), DateTimeFomatter 객체를 활용.

이 위에 정리해놓은 것은 우리 강사님의 피이며, 땀이다. 그런데 강사님이 굳이 외우지 않아도 된다고 했으니

이경민 강사님께 감사한 마음을 가지며 필요할때 참고해서 가져가자 .