본문 바로가기

분류 전체보기407

자바의 정석6-4 오토박싱 & 언박싱 오토박싱 & 언박싱 int(기본형) -> Integer(래퍼클래스:참조형): 오토박싱(Auto boxing) Integer(래퍼클래스:참조형) -> int(기본형): 언박싱(un boxing) 컴파일러가 자동으로 래퍼클래스의 객체인 Integer를 intValue( )메서드를 사용해서 기본형으로 바꾸고 기본형 i와 더해줌(언박싱) -> 자바의 기본원칙이 변한 게 아니라 컴파일러가 자동으로 변환해주는 기능이 추가된 것 - 기본형의 값을 객체(래퍼클래스)로 자동변환하는 것을 오토박싱, 그 반대는 언박싱 ArrayList list = new ArrayList(); // ArrayList는 객체만 저장 가능 // 아래 두 코드 동일함 //list.add(new Integer(100)); // list에는 객체만.. 2022. 1. 7.
자바의 정석6-3 Math클래스, Rapper클래스, Number클래스 Math클래스 - 수학 관련 static메서드의 집합(객체를 만들 필요 xx) - Math클래스의 메서드는 모두 static이고, 아래와 같이 2개의 상수만 정의해 놓음 올림, 버림, 반올림 - 원하는 자리 수에서 반올림된 값을 얻기 위해서는 간단히 10의 n제곱으로 곱한 후, 반올림 한뒤에 다시 곱한 수로 나눠주기만 하면 된다. - round( )로 원하는 소수점 아래 세 번째 자리에서 반올림하기 Math클래스의 메서드 더보기 더보기 절대값: 양수 -> 양수, 음수 -> 양수 올림 -> 더 큰 숫자, 버림 -> 더 작은 숫자 max -> 둘 중에 큰 거 반환, min -> 둘 중에 작은 거 반환 더보기 더보기 rint(짝수 반올림(round even): 반올림해서 짝수 만들기), round 일반 반올림.. 2022. 1. 7.
자바의 정석6-2 String 클래스, Stringbuffer(StringBuilder) String클래스 - 문자열을 다루기 위한 클래스 - String클래스 = 데이터(char[])(문자배열) + 메서드(문자열 관련) - 인스턴스 생성시 생성자의 매개변수로 입력 받는 문자열은 문자형 배열(char[])로 저장되는 것 String클래스의 구조 -> String클래스는 앞에 final이 붙어 있으므로 다른 클래스의 조상이 될 수 없다. 내용을 변경할 수 없는 불변(immutable) 클래스 String a = “a”; String b = “b”; ab = a + b; - 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐(매 연산 시 마다 새로운 문자열 객체가 만들어져서 메모리 공간을 차지해서) - 문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer(내용변경가능)를.. 2022. 1. 7.
자바의 정석6-1 Java.lang패키지, eqauls, hasecode, toString Java.lang패키지 - java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스를 포함하고 있어서 java.lang패키지의 클래스들은 import문 없이도 사용가능함 Object클래스 - 모든 클래스의 최고조상으로 11개의 메서드만을 가지고 있다. - protected는 오버라이딩해서 public으로 변경해야 사용할 수 있음!(아니면 작성한 클래스의 자손클래스나 같은 패키지에서만 사용 가능하기 때문) - public Class getClass( ) 객체의 클래스 정보(설계도 정보)를 반환 -> 이 설계도 객체를 통해서 1) 객체 생성 2) 객체 정보 얻을 수 있음 - notify( ), notifyAll( ), wait( )은 쓰레드(thread)와 관련된 것들이며, 나중에 쓰레드에서 자세히.. 2022. 1. 7.
자바의 정석5-3 사용자 정의 예외, 예외 되던지기, 연결된 예외 사용자 정의 예외(CustomException) 사용자가 직접 예외 클래스를 정의할 수 있다. - 사용자 정의 예외는 JVM에서 예외를 발생시켜 주지 않기 때문에 직접 예외를 생성해야 함 - 사용자 정의 예외 클래스 이름은 Exception으로 끝나는 것이 좋음 - 조상은 Exception과 RuntimeException중에서 선택함 -> Exception은 필수처리 예외라서 try-catch문을 꼭 사용해야 하기 때문에 가급적으로 선택처리인 RuntimeException을 선택!!(필요한 경우에만 필수처리로!) - 사용자 정의 예외 클래스도 필드, 생성자, 메서드 선언을 포함할 수 있지만, 대부분 생성자 선언만 포함! - 생성자는 예외 발생 원인(예외 메시지)를 전달하기 위해 String타입의 매개변수.. 2022. 1. 6.
자바의 정석5-2 예외 발생, 예외 처리, Finally블럭 예외 발생시키기 예외 발생시키기 -> 키워드 throw를 사용해서 프로그래머가 고의로 예외를 발생! 1. 연산자 new를 이용해서 발생시키려는 예외클래스의 객체를 만든 다음 Exception e = new Exception(“고의로 발생시켰음”); 2. 키워드 throw를 이용해서 예외를 발생시킨다. 예제1) throw를 사용해서 고의로 예외를 발생시키는 프로그램 public class ExceptionTest2 { public static void main(String[] args) { try { Exception e = new Exception("고의로 발생시켰음"); throw e; // 예외를 발생시겼음 //throw new Exception("고의로 발생시켰음") -> 위의 두줄을 한줄로 } c.. 2022. 1. 6.