본문 바로가기

Java

Java 래퍼(wrapper) 클래스, 오토박싱과 언박싱 wrapper class 8개의 기본형을 객체로 다루기 위해 사용하는 클래스 기본형을 감싸는 기능 class Ex9_14 { public static void main(String[] args) { Integer i = new Integer(100); Integer i2 = new Integer(100); System.out.println("i==i2 ? "+(i==i2)); System.out.println("i.equals(i2) ? "+i.equals(i2)); // 같으면 true, 다르면 false System.out.println("i.compareTo(i2)="+i.compareTo(i2)); // 같으면0, 작으면 양수, 크면 음수// 정렬에서 사용됨 System.out.println("i.. 더보기
Java Math 클래스 Math 클래스 - 수학 관련 static 메서드 집합 - 메서드 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Math.html Math (Java SE 11 & JDK 11 ) Returns the fused multiply add of the three arguments; that is, returns the exact product of the first two arguments summed with the third argument and then rounded once to the nearest float. The rounding is done using the round to nearest even roundin.. 더보기
Java StringBuilder / StringBuffer 클래스 1. StringBuilder String 처럼 문자형 배열(char[])을 내부적으로 가지고 있음 String과 달리 내용 변경 가능(mutable); 멀티 스레드로 작성된 프로그램이 아닌 경우 StringBuilder를 사용 -> 싱글스레드에 사용 SpringBuffer와 완전히 똑같은 기능을 가지고있음 2. StringBuffer - StringBuffer는 멀티쓰레드에 안전하도록 동기화 되어 있음, 멀티쓰레드는 성능을 감소시킴 - String 처럼 문자형 배열(char[])을 내부적으로 가지고 있음 - String과 달리 내용 변경 가능(mutable); - 배열은 길이 변경 불가, 공간이 부족하면 새로운 배열 생성하고 복사하는 형식이기 때문에 StringBuffer는 저장할 문자열의 길이를 고.. 더보기
Java String 클래스 String클래스 - 문자열을 다루기 위한 클래스 - 데이터(char[]) + 메서드(문자열 관련) - 내용을 변경할 수 없는 불변(immutable) 클래스 String a = "a"; String b = "b"; a = a + b; // a는 기존 "a"의 주소값을 a + b의 결과인 "ab" 주소값으로 바꾸는 것! - 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐(문자열 결합이나 변경이 잦다면 내용 변경 가능한 StringBuffer사용하기) 1. String(문자열)을 만드는 방법에 따른 비교 1) 문자열을 리터럴로 지정하는 방법 2) String 클래스의 생성자를 사용해서 만드는 방법 // 문자열 리터럴은 이미 존재하는 것을 재사용(str1주소 == str2주소) String str1 .. 더보기
Java Object 클래스 Object 클래스 - 모든 클래스의 최고 조상 - 오직 11개의 메서드만 가지고 있음 메서드 설명 protected Object clone() 객체 자신의 복사본 반환 public boolean equals(Object obj) 객체 비교, 객체 자신과 객체 obj가 같은 객체인지 비교 protected void finalize() 객체 소멸 시 가비지 컬렉터에 의해 자동 호출 됨 객체 소멸 시점에 수행되어야 하는 코드가 있는 경우 오버라이딩 (거의 사용 안함, 메모리 부족으로 객체 소멸 시키려고하는데 finalize 수행하는데 더 많은 시간이 사용되어 사용을 권하지 않음) public Class getClass() 객체 자신의 클래스 정보(설계도 객체)를 담고 있는 Class 인스턴스 반환 *설계도 .. 더보기
Java 예외처리(exception handeling)2 1. 예외 처리 방법 1) try~catch문으로 예외 직접 처리하기 2) 예외 선언으로 예외 떠넘기기/알리기 3) try~catch문을 사용하지만 처리하지 않고 은폐하기(예외 신경안쓰고 모른척...) 2. 예외 선언 - 메서드 호출 시 발생 가능한 예외를 호출한 쪽에 알리기 throw: 예외 발생 throws: 예외 선언 3. finally 블럭 예외 발생여부와 관계 없이 수행되어야 하는 코드 넣기 try { // 예외 발생 가능성이 있는 문장 } catch (Exception1 e1) { // 예외 처리 문장 } finally { // 예외 발생 여부에 관계 없이 항상 수행되는 문장 // finally 블럭은 try~catch문 맨 마지막에 위치 } 4. 사용자 정의 예외 - 프로그래머가 직접 예외 .. 더보기
Java 예외처리(exception handling) 1. 에러의 종류 1) 컴파일 에러(compile-time error): 컴파일 시 발생 2) 런타임 에러(runtime error): 실행 시 발생 3) 논리적 에러(logical error): 실행은 되지만 의도와 다르게 동작 cf) 컴파일러의 역할 1. 구문체크 2. 번역 3. 소스 코드 최적화 4. 생략된 코드 추가( extends Object 같이 원래 넣어야하지만 컴파일러가 해줘서 안넣는 것들) 2. Java의 런타임 에러 실행(runtime) 시점에서 발생할 수 있는 프로그램 오류를 에러(error)와 예외(exception)로 구분 1) 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류(메모리 부족, 스택오버플로우 등) 2) 예외(exception): 프로그램 코드에 .. 더보기
Java 내부 클래스(inner class) 1. 내부 클래스(inner class) - 클래스 안의 클래스 2. 내부 클래스의 장점 - 내부 클래스에서 객체 생성 없이 외부 클래스의 멤버에 쉽게 접근 가능 - 코드 복잡성 감소(캡슐화): 외부 클래스에 불필요한 클래스 감춤 3. 내부 클래스의 종류와 특징 내부 클래스 특징 인스턴스 내부 클래스 (instance class) - 외부 클래스의 멤버변수 선언 위치에 선언 - 외부 클래스의 인스턴스 멤버처럼 다루어짐 - 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용 스태틱 내부 클래스 (static class) - 외부 클래스의 멤버변수 선언 위치에 선언 - 외부 클래스의 static멤버처럼 다루어짐 - 주로 외부 클래스의 static멤버, static 메서드에서 사용될 목적으로 선언 지역 .. 더보기