Java 73

컬렉션 프레임워크

사용 배경 -배열을 생성할 때 저장할 수 있는 객체 수가 정해지기 때문에 불특정 다수의 객체를 저장하기에 문제가 있다. -배열의 또 다른 문제점은 객체를 삭제했을 때 해당 인덱스가 비게 될 수 있다. -배열의 문제점을 해결하고 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들이 포함되어 있다. 자바 컬렉션이란? -객체를 수집해서 저장하는 역할을 한다. -주요 인터페이스로는 List, Set, Map이 있다. List 인터페이스의 메서드 기능 메서드 설명 객체 추가 boolean add(E e) 주어진 객체를 맨 끝에 추가 void add(int index, E element) 주어진 인덱스에 객체를 추가 set(int ..

Java 2022.06.10

clone

clone() 자신을 복제해 새로운 인스턴스를 생성하는 일을 한다. 어떤 인스턴스에 대해 작업을 할 때, 원래의 인스턴스는 보존하고 clone 메서드를 이용해 새로운 인스턴스를 생성하여 작업을 하면 작업 이전의 값이 보존되므로 작업에 실패해 원래의 상태로 되돌리거나 변경되기 전의 값을 참고하는 데 도움이 된다. Object 클래스에 정의된 clone()은 단순히 인스턴스 변수 값만 복사하기 때문에 참조 타입의 인스턴스 변수가 있는 클래스는 완전한 인스턴스 복제가 이루어지지 않는다. 배열의 경우, 복제된 인스턴스 변수의 값만 복사하기 때문에 복제된 인스턴스 작업이 원래의 인스턴스에 영향을 미치게 된다. 이런 경우 clone 메서드를 오버라이딩해서 새로운 배열을 생성하고 배열의 내용을 복사한다. x=3, y..

Java/정석 2022.06.10

Object 클래스

java.lang 패키지 -프로그래밍시 import 하지 않아도 자동으로 import 됨 -import.java.lang.*; -많이 사용하는 기본 클래스들이 속한 패키지 -String, Integer, System.. 모든 클래스는 Object 클래스를 상속 받는다 -java.lang.Object 클래스 -모든 클래스는 Object에서 상속 받고, Object 클래스의 메서드 중 일부는 재정의 해서 사용할 수 있음 -컴파일러가 extends Object를 추가함 class Student -> class Student extends Object toString() 메서드 -객체의 정보를 String으로 바꿔서 사용 함 -String이나 Integer 클래스는 이미 재정의 되어 있음 toString() 메..

예외 처리

예외 클래스들 -모든 예외 클래스의 최상위 클래스는 Exception 클래스 -자바에서는 다양한 예외들에 대해 그 처리를 위한 클래스를 제공한다. -Arithmetic Exception: 정수를 0으로 나눈 경우 발생 -NullPointerException: 초기화 되지 않은 Object를 사용하는 경우 Dog d = null; System.out.println(dog); -ArrayIndexOutOfBoundsException: 배열의 크기를 넘어선 위치를 참조하는 경우 -FileNotFoundException: 참조하는 파일이 지정된 위치에 존재하지 않는 경우 -ClassNotFoundException: 클래스가 로드되지 않은 경우 -InterruptedException: Thread.sleep(),..

인터페이스

인터페이스란? -모든 메서드가 추상 메서드로 선언 됨 public abstract -모든 변수는 상수로 선언 됨 public static final interface 인터페이스이름 { public static final float pi = 3.14F; public void makeSth(); } 인터페이스 정의와 구현 10+0=10 10-0=10 10*0=0 10/0=-99999999 public interface Calc { double PI = 3.14; int ERROR = -99999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, ..