본문 바로가기

Java

(6)
[Java] java.lang 패키지 & 유용한 클래스들 1. Object protected Object clone() 객체 자신의 복사본을 반환한다 public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다 protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동으로 호출된다. public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class인스턴스를 반환한다 public int hashCode() 객체 자신의 해시코드를 반환한다 public String toString() 객체 자신의 정보를 문자열로 반환한다 public void notify() 객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨운다 public void notifyAll() 객체..
[Java] 예외처리 프로그램 오류 1. 컴파일 에러: 컴파일 도중 발생하는 에러 2. 런타임 에러: 실행 시 발생하는 에러 3. 논리적 에러: 실행은 되지만 의도와 다르게 동작하는것 에러 vs 예외 에러: 프로그램 코드에 의해 수습될 수 없는 심각한 오류 예외: 프로그램 코드에 의해 수습될 수 있는 오류 예외 클래스 계층구조 Exception 클래스들: 외적인 요인에 의해 발생하는 예외 RuntimeException 클래스들: 프로그래머의 실수로 발생하는 예외 Tip 1. printStackTree(): 예외 발생 당시의 호출스택에 있던 메서드 정보와 예외 메시지를 화면에 출력한다 2. getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메시지를 받을 수 있다. 메서드에 예외 선언 메서드 내에서 예외 처리 안하고..
[Java] 객체지향 프로그래밍 기본 개념 실제 세계는 사물(객체)로 이뤄어져 있고, 발생하는 모든 사건은 이들의 상호작용이다 특징 1. 코드의 재사용성이 좋다 2. 코드의 관리가 용이하다 3. 신뢰성이 높은 프로그래밍을 가능하게 한다 JVM의 메모리 구조 응용 프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, 용도에 따라 여러 영역으로 나눠 관리한다. (method area, call stack, heap) 1. Method Area 프로그램 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일을 읽어서 분석하여 클래스에 대한 정보를 이곳에 저장한다. 이 때 그 클래스의 클래스 변수도 이곳에 생성된다. 2. Heap 인스턴스가 생성되는 공간이다. 프로그램 실행 중 생성되는 인스턴스..
[Java] 배열 초기화 아래 코드는 동일하다 int[] score = {50, 60, 70, 80, 90}; int[] score = new int[]{50, 60, 70, 80, 90}; 복사 1. 새로운 배열 생성하고 기존 배열 순회하며 복사 2. System.arraycopy 사용하여 복사 char[] abc = ['A', 'B', 'C']; char[] newArr = new int[abc.length]; // abc[0]에서 newArr[0]으로 newArr.length개의 데이터 복사 System.arraycopy(abc, 0, newArr, 0, newArr.length); System.arraycopy는 각 요소들이 연속적으로 저장돼있는 것을 이용하여 한 번에 복사하므로 1번보다 효율적이다 String 클..
[Java] 변수 변수 명명규칙 1. 대소문자가 구분되며 길이에 제한이 없다. 2. 예약어를 사용할 수 없다. 3. 숫자로 시작해선 안된다. 4. 특수문자는 _와 $만을 허용한다. 변수의 타입 변수의 타입은 관점에 따라 다양하게 분류할 수 있다. 값에 따른 분류 값 ---- 문자 (char) ㄴ-- 숫자 --- 정수 (byte, short, int, long) ㄴ- 실수 (float, double) 기본형과 참조형 기본형: 실제 값을 저장 참조형: 객체의 주소를 저장 상수와 리터럴 상수: 초기화 이후 값을 변경할 수 없는 변수 리터럴: 값 그 자체 화면에서 입력받기 Scanner 클래스 사용 import java.util.*; class ScannerEx { public static void main(String[] ar..
[Java] 자바란 Java의 정석 3rd Edition을 읽고 정리한 글입니다. 자바란? 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어이다. 특징 1. 운영체제에 독립적이다. 일종의 애뮬레이터인 JVM을 통해 하드웨어와 통신하기 때문에 가능하다. 운영체제마다 서로 다른 버전의 JVM을 제공하고 있다. 2. 객체지향언어이다. 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수 객체지향언어이다. 3. 비교적 배우기 쉽다. 4. 자동 메모리 관리 가비지 컬렉터가 자동을 메모리를 관리해준다. 5. 네트워크와 분산처리를 지원한다. 관련된 라이브러리를 지원한다. 6. 멀티쓰레드를 지원한다. 관련된 라이브러리를 지원한다. 여러 쓰레드에 대한 스케줄링도 자바 인터프리터가 담당한다. 7. 동적 로딩을 지원한다. 실행 ..