자바 썸네일형 리스트형 [Java] 기본 API 클래스 - StringBuffer, StringBuilder 문자열을 저장하는 String은 내부의 문자열을 수정할 수 없다. 예를 들어 String의 replace() 메소드는 내부의 문자를 대치하는 것이 아니라, 대치된 새로운 문자열을 리턴한다. String 객체를 + 연산할 경우에도 마찬가지다. String data = "ABC"; data += "DEF"; "ABC"에 "DEF"가 추가되었기 때문에 한 개의 String 객체가 사용되었다고 생각할 수 있지만, String 객체는 내부 데이터를 수정할 수 없으므로 "ABC"에 "DEF"가 추가된 "ABCDEF"라는 새로운 String 객체가 생성된다. 그리고 data 변수는 새로 생성된 String 객체를 참조하게 된다. 문자열을 결합하는 + 연산을 많이 사용하면 할수록 그만큼 String 객체의 수가 늘어나.. 더보기 [Java] 기본 API 클래스 - StringTokenizer 문자열이 특정 구분자(delimiter)로 연결되어 있을 경우, 구분자를 기준으로 부분 문자열을 분리하기 위해서는 String의 split() 메소드를 이용하거나, java.util 패키지의 StringTokenizer 클래스를 이용할 수 있다. split()은 정규 표현식으로 구분하고, StringTokenizer는 문자로 구분한다는 차이점이 있다. split() 메소드 String 클래스의 split() 메소드는 다음과 같이 호출되는데, 정규 표현식을 구분자로 해서 문자열을 분리한 후, 배열에 저장하고 리턴한다. String[] result = "문자열".split("정규표현식"); 예를 들어 다음과 같은 문자열이 있다고 가정해보자. &, 쉼표( , ), - 를 제외하고 사람 이름만 따로 뽑아내고 싶.. 더보기 [Java] 기본 API 클래스 - String 어떤 프로그램이건 문자열은 데이터로서 아주 많이 사용된다. 그렇기 때문에 문자열을 생성하는 방법과 추출, 비교, 찾기, 분리, 변환 등을 제공하는 메소드를 잘 익혀두어야 한다. String 생성자 자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리된다. 소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할 수도 있다. String 클래스는 Deprecated(비권장)된 생성자를 제외하고 약 13개의 생성자를 제공한다. Deprecated는 예전 자바 버전에서는 사용되었으나, 현재 버전과 차후 버전에서는 사용하지 말라는 뜻이다. 어떤 생성자를 이용해서 String 객체를 생성할지는 제공되는.. 더보기 [Java] 기본 API 클래스 - Class 자바는 클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리한다. 여기서 메타 데이터란 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보를 말한다. Class 객체 얻기(getClass(), forName()) 프로그램에서 Class 객체를 얻기 위해서는 Object 클래스가 가지고 있는 getClass() 메소드를 이용하면 된다. Object는 모든 클래스의 최상위 클래스이므로 모든 클래스에서 getClass() 메소드를 호출할 수 있따. Class Clazz = obj.getClass(); getClass() 메소드는 해당 클래스로 객체를 생성했을 때만 사용할 수 있는데, 객체를 생성하기 전에 직접 Class 객체를 얻을 수도 있다. Class는 생성자를.. 더보기 [Java] 기본 API 클래스 - System 자바 프로그램은 운영체제상에서 바로 실행되는 것이 아니라 JVM 위에서 실행된다. 따라서 운영체제의 모든 기능을 자바 코드로 직접 접근하기란 어렵다. 하지만 java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있다. 즉, 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로퍼티 읽기, 환경 변수 읽기 등이 가능하다. System 클래스의 모든 필드와 메소드는 정적(static) 필드와 정적(static) 메소드로 구성되어 있다.] 프로그램 종료(exit()) 경우에 따라서는 강제적으로 JVM을 종료시킬 때도 있다. 이때 System 클래스의 exit() 메소드를 호출하면 된다. exit() 메소드는 현재 실행하고 있.. 더보기 [Java] 기본 API 클래스 - Objects Object 클래스 Object 와 유사한 이름을 가진 java.lang.Objects 클래스는 객체 비교, 해시코드 생성, null 여부, 객체 문자열 리턴 등의 연산을 수행하는 정적 메소드들로 구선된 Object의 유틸리티 클래스이다. 다음은 Objects 클래스가 가지고 있는 정적 메소드들이다. 리턴 타입 메소드(매개 변수) 설명 int compare(T a, T b, Comparator c) 두 객체 a와 b를 Comparator를 사용해서 비교 boolean deepEquals(Object a, Object b) 두 객체의 깊은 비교(배열의 항목까지 비교) boolean equals(Object a, Object b) 두 객체의 얕은 비교(번지만 비교) int hash(Object... valu.. 더보기 [Java] 기본 API 클래스 - Object java.lang 패키지 java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지이다. 그렇기 때문에 java.lang 패키지에 있는 클래스와 인터페이스는 import 없이 사용할 수 있다. 지금까지 사용한 String 과 System 클래스도 java.lang 패키지에 포함되어 있기 때문에 import 하지 않고 사용했다. 다음은 java.lang 패키지에 속하는 주요 클래스와 간략한 용도에 대해 설명한 표이다. 클래스 용도 Object - 자바 클래스의 최상위 클래스로 사용 System - 표준 입력 장치로부터 데이터를 입력받을 때 사용 - 표준 출력 장치로 출력하기 위해 사용 - 자바 가상 기계를 종료시킬 때 사용 - 쓰레기 수집기를 실행 요청할 때 사용 Class - 클래스를.. 더보기 [Java] 사용자 정의 예외, 예외 정보 얻기 사용자 정의 예외와 예외 발생 프로그램을 개발하다 보면 자바 표준 API에서 제공하는 예외 클래스만으로는 다양한 종류의 예외를 표현할 수가 없다. 예를 들어 은행 업무를 처리하는 프로그램에서 잔고보다 더 많은 출금 요청이 들어왔을 경우 오류가 되며, 프로그램은 잔고 부족 예외를 발생시킬 필요가 있다. 그러나 잔고 부족 예외는 자바 표준 API에는 존재하지 않는다. 잔고 부족 예외와 같이 애플리케이션 서비스와 관련된 예외를 애플리케이션 예외(Application Exception)라고 한다. 애플리케이션 예외는 개발자가 직접 정의해서 만들어야 하므로 사용자 정의 예외라고도 한다. 사용자 정의 예외 클래스 선언 사용자 정의 예외 클래스는 컴파일러가 체크하는 일반 예외로 선언할 수도 없고, 컴파일러가 체크하지.. 더보기 이전 1 ··· 7 8 9 10 11 12 13 ··· 15 다음