[JAVA]_9, 10일차

전희주·2023년 4월 17일
0

JAVA

목록 보기
11/24

JAVA 예외처리

예외 처리 방법 2가지

  • 직접 처리 방법
  • 위임 방법
  • ✨ e.printStackTrace() 키워드 출제

e.printStackTrace() = 에러 메세지의 발생 근원지를 찾아서 단계별로 에러를 출력한다.

try {
  // ...
}
catch(Exception e){
   e.printStackTrace();
}
  • ✨ throw + 예외클래스에서 throw 키워드 생략 불가
  • 다중 throws 사용 가능
public void a() throws NullPointerException, ArithmeticException{
		b();
	}
  • ✨ throws / throw 빈칸 채우기 출제
package p06;

import java.util.Random;

class MyRandom{
	public void getrandom() throws NullPointerException{
		// 난수값 발생 : 0 ~ 2
		Random r = new Random();
		int n = r.nextInt(3); // 0 ~ 2
		//비즈니스 규칙 변경됨. 0이면 예외라고 가정하자.
//		if(n==0)throw new Exception("랜덤값 0으로 인해 예외발생");
		if(n==0)throw new NullPointerException("랜덤값 0으로 인해 예외발생"); //런타임 에러임으로 컴파일 언체크드 
		System.out.println("값:" + n);
		
	}
}
//throws와 throw 빈칸 채우기 나옴!! 위치도 알아놓기!!


public class ExceptionTest {
	public static void main(String[] args) {
		
		System.out.println("start");
		MyRandom x = new MyRandom();
		try{
		x.getrandom();
		}catch(NullPointerException e) {
			System.out.println("예외처리" + e.getMessage());
		}
		System.out.println("end - 정상종료");
	}

}

JAVA 컬렉션 API

용도

특징

  • 참조 data만 저장 가능 => 기본형 Data는 Wrapper로 저장 가능

  • 크기 변경 가능

  • ✨ Data 사용 여부에 따라 저장하는 자료구조가 달라짐

  • ✨ Collection 계층구조 외우기 (자바의 컬렉션과 관련된 클래스 상속관계(계층구조))

  • Map 인터페이스는 Collection 인터페이스와 무관

  • set 계열: 순서 무시, 중복 불가

    • ✨ HashSet 기억
  • list 계열: 순서 준수(배열과 유사한 특징), 중복 가능(순서가 존재하므로)

    • 크기 변경 가능하다는 점에서 배열과 차이
    • ✨ ArrayList 기억
  • Map 계열: 인터페이스 , key(name)와 value(데이터)가 한 쌍으로 저장됨

    • key(name)이용해서 값을 관리

    • key(name) 이용하기 때문에 검색속도가 가장 빠르다

    • HashMap: 클래스

    • 참고

  • 인터페이스 Iterator 이용 (new 키워드로 객체 생성 불가)

  • ✨ 추가 메서드 (출제)

    • 배열 크기(길이): 배열명.length
    • 문자열 길이: s.length()
    • 컬렉션 크기: 변수명.size() <= set계열, list 계열

제네릭스

  • 제네릭스란?
    컬렉션에 저장되는 Data 타입을 제한하는 방법

  • 컬렉션:

    • 다양한 자료형의 데이터 저장 가능 (자료형 불일치로 인한 컴파일 에러는 발생하지 않음)
  • 제네릭스:

    • 컬렉션에 특정한 자료형 값만 저장하고 싶을 때 사용
  • 제네릭스 문법

Hash set = new HashSet(); // 제네릭스 사용 안 한 경우 

Hash<String> set = new HashSet<String>(); // 제네릭스 사용 
  • 제네릭스 특징:
    • 잘못된 자료형의 data 저장을 실행 시점이 아닌 컴파일 시점에서 알 수 있음
    • 형 변환 불필요

  • ✨ (제네릭스 미사용시) 결론
    • 1) 제네릭스 미사용 시 잘못된 데이터를 컴파일 할 때가 아닌 실행 시 알 수 있다.
      • (컴파일 에러가 발생하지 않기에)
    • 2) 반드시 형 변환해서 가져와야 한다.
  • ✨ (제네릭스 사용시) 결론
    • 1) 제네릭스를 사용하면 잘못된 데이터를 컴파일 시점에 알 수 있다
    • 2) 형 변환 불필요

List interface

  • 제네릭스 적용 가능
  • 순서 존재, 중복 가능
    • 출력 시 저장한 순서대로 나옴
  • 데이터 삭제

Map interface

  • Map 계열: key/value 쌍으로 저장, Collection 인터페이스와 무관
  • keySet()의 반환타입은 Set 인터페이스 (순서 존재하지 않음)
Set<String>keys = map.keySet(); 
  • key 중복시 최신의 값으로 덮어쓴다.
  • 일치하는 key가 없으면 null 반환

JAVA-DB 연동 (오라클)

  • 1) 제어판 => 앱 설치/제거 => Oracle Express Edition 삭제 (언인스톨 기능 제공) => C;\oraclexe 삭제

  • 2) oracle Enterprise 버전 삭제

    • 언인스톨 기능 제공 안됨
    • 레지스트리 이용해서 삭제할 예정
      • regedit 검색
      • HKEY_LOCAL_MACHINE
      • HKEY_LOCAL_MACHINE\SOFTWARE
  • 3) 설치 여부 확인

  • 4)

  • 포트번호: 1521

  • 비밀번호: oracle

  • 테스트 - 저장 - 접속

0개의 댓글