일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 항해99
- 99클럽
- 다중 catch 블록
- 실행 예외
- 예외 처리
- try-catch-finally 블록
- throws 키워드
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 개발자취업
- 일반 예외
- til
- 예외
- 예외클래스
- 코딩테스트준비
- Today
- Total
목록JAVA (30)
innn
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1qE9n/btrNcA0BVwA/52HCjrxgyuhmuOunPkn84k/img.png)
String 클래스 어떤 프로그램이건 문자열은 데이터로서 아주 많이 사용된다. 그렇기 때문에 문자열을 생성하는 방법과 추출, 비교, 찾기, 분리, 변환 등을 제공하는 메소드를 잘 익혀두어야 한다. String 생성자 자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리된다. 소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할 수도 있다. 어떤 생성자를 이용해서 String 객체를 생성할지는 제공되는 매개값의 타입에 달려있다. 다음은 사용 빈도수가 높은 생성자들이다. 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte[] 배열이므로 이것을 문자열로 변환하기 위해 사용된다. ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/k6f9i/btrNb8Q0svs/tkUCKgaIB8VqzvjKvTKVk1/img.png)
Class 클래스 자바는 클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리한다. 여기서 메타 데이터란 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보를 말한다. Class 객체 얻기(getClass(), forName()) 프로그램에서 Class 객체를 얻기 위해서는 다음 세 가지 방법 중 하나를 이용하면 된다. 클래스로부터 얻는 방법 Class clazz = 클래스.class Class clazz = Class.forName("패키지...클래스 이름") 객체로부터 얻는 방법 Class clazz = 참조변수.getClass(); 첫 번째와 두 번째 방법은 객체 없이 클래스 이름만 가지고 Class 객체를 얻는 방법이다. 세 번째 방법은 클래스로부터 객..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DjaN3/btrM9R3qAeA/KgCJvLFCGkueE2QZYWqlx0/img.png)
System 클래스 자바 프로그램은 운영체제에서 바로 실행되는 것이 아니라 JVM 위에서 실행된다. 따라서 운영체제의 모든 기능을 직접 이용하기는 어렵다. 하지만 java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있다. 즉, 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 현재 시간 읽기 등이 가능하다. System 클래스의 모든 필드와 메소드는 정적static 필드와 정적static 메소드로 구성되어 있다. 프로그램 종료(exit()) 경우에 따라서는 강제적으로 JVM을 종료시킬 때도 있다. 이때 System 클래스의 exit() 메소드를 호출하면 된다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 한다. exit() 메..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Aqk6Y/btrNcnNMiia/Bi94crKR1KL9jbS3s8lmIK/img.png)
객체 문자 정보(toString()) Object 클래스의 toString() 메소드는 객체의 문자 정보를 리턴한다. 객체의 문자 정보란 객체를 문자열로 표현한 값을 말한다. 기본적으로 Object 클래스의 toString() 메소드는 '클래스이름@16진수해시코드'로 구성된 문자 정보를 리턴한다. Object의 toString() 메소드의 리턴값은 자바 애플리케이션에서는 별 값어치가 없는 정보이므로 Object 하위 클래스는 toString() 메소드를 재정의(오버라이딩)하여 간결하고 유익한 정보를 리턴하도록 되어있다. 예를 들어 java.util 패키지의 Date 클래스는 toString() 메소드를 재정의하여 현재 시스템의 날짜와 시간 정보를 리턴한다. 그리고 String 클래스는 toString()..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b0KMMB/btrM8J5xnfX/qalbGk84LyuYjAlfGwTI61/img.png)
객체 해시코드(hashCode()) 객체 해시코드란 객체를 식별하는 하나의 정수값을 말한다. Object 클래스의 hashCode() 메소드는 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴하기 때문에 객체마다 다른 값을 가지고 있다. 논리적 동등 비교 시 hashCode()를 오버라이딩할 필요가 있는데, 컬렉션 프레임워크에서 HashSet, HashMap, Hashtable은 다음과 같은 방법으로 두 객체가 동등한 지 비교한다. ((( 추후에 컬렉션 프레임워크도 정리해서 링크를 걸어두겠습니다 ! ))) 우선 hashCode() 메소드를 실행해서 리턴된 해시코드 값이 같은지를 본다. 해시코드 값이 다르면 다른 객체로 판단하고, 해시코드 값이 같으면 equals() 메소드로 다시 비교한다. 그렇기 때..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/QH5lT/btrM8Kb9jj7/xXtqt8RjCNro6UL3KtpomK/img.png)
Object 클래스 우리가 클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않더라도 암시적으로 java.lang.Object 클래스를 상속하게 된다. 따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다. Object는 자바의 최상위 부모 클래스인 셈이다. API 도큐먼트에서 Object 클래스를 한번 찾아보자. SUMMARY 를 보면 Object 클래스는 필드가 없고, 생성자와 메소드로 구성되어 있다. 모든 클래스의 최상위 부모가 Object 이므로 모든 클래스에서 Object의 메소드를 사용할 수 있다. 객체 비교(equals()) 아래는 Object 클래스의 equals() 메소드이다. public boolean equals(Object obj) { ... ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cN4Tih/btrM9RBTdRK/3IoLwKmITTNlBsS8pugeW1/img.png)
목표 API 도큐먼트를 보고 활용할 수 있다. 자바에서 자주 사용하는 클래스를 알고 사용할수 있다. java.lang 패키지 java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지이다. 그래서 java.lang 패키지에 있는 클래스와 인터페이스는 import 없이 사용할 수 있다.(대박적) 지금까지 사용한 String과 System 클래스도 사실 java.lang 패키지에 포함되어 있기 때문에 import 하지 않고 사용한 것이다. java.lang 패키지에 속하는 주요 클래스에 대해 알아보자. java.lang 패키지에 속하는 주요 클래스와 간략한 용도를 먼저 살펴보면 다음과 같다. 클래스와 그 클래스에 소속된 메소드들을 무작정 외우려고 하지 말고 API 도큐먼트에서 찾아보고, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c3D1Xk/btrM7K96d2O/HDs8vRCDvRLdpaiftEDHlK/img.png)
프로그램에서 예외가 발생했을 경우 프로그램의 갑작스러운 종료를 막고, 정상 실행을 유지할 수 있도록 예외 처리를 해야한다. 그렇다면 이러한 예외처리를 하는 방법은 무엇일까? 자바 컴파일러는 소스 파일을 컴파일할 때 일반 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 에러를 발생시켜 개발자가 강제적으로 예외 처리 코드를 작성하도록 요구한다. 그러나 실행 예외는 컴파일러가 체크해주지 않기 때문에 개발자의 경험을 바탕으로 예외 처리 코드를 작성해야 한다. 예외 > 컴파일러 > RuntimeException (통과) (실행 예외) (넌 체크 예외) (실행 시 예측할 수 없이 갑자기 발생해서 검사 x) > RuntimeException이 아닌 경우 (검사) 예외 처리 코드 try-catch-finally 블..