• Collection 인터페이스를 구현하는 대표적인 3개의 자료 구조에는 list, set, queue가 있다.
  • 배열과 같이 순서가 있는 목록형을 나타내는 대표 인터페이스는 list이다.
  • ArrayList라는 클래스의 생성자 중 매개 변수가 없는 기본 생성자를 사용하면 기본적으로 10개의 저장 공간을 가진다.
  • 만약 ArrayList 클래스의 저장 공간 개수를 처음부터 지정하려면 ArrayList (int initialCapacity) 생성자를 사용한다.
  • ArrayList 객체를 생성할 때 제네릭을 사용하는 이유는 대부분 서로 다른 종류의 객체를 하나의 배열에 넣지 않고 한 가지 종류의 객체만 저장하기 때문이다.
  • ArrayList에 데이터를 담는 메소드 이름 두 가지는 add와 addAll이다.
  • Collection 인터페이스를 구현한 클래스의 객체 크기를 확인하는 메소드는 size()이다.
  • ArrayList에서 특정 위치에 있는 데이터를 확인하는 메소드는 get(int index)이다.
  • ArrayList 에서 특정 위치에 있는 데이터를 삭제하는 메소드는 remove(int index)이다.
  • ArrayList 에서 특정 위치에 있는 데이터를 수정하는 메소드는 set(int index, E element)이다.
  • Stack이라는 클래스는 Vector클래스를 확장한 것이다.
  • Stack 클래스에서 데이터를 담는 메소드는 push(E item)이다.
  • Stack 클래스에서 가장 위에 있는 데이터를 확인만 하는 메소드는 peek()이다.
  • Stack 클래스에서 가장 위에 있는 데이터를 삭제하고 리턴하는 메소드는 pop()이다.
  • 자바 패키지 중 같은 패키지에 있는 클래스를 제외하고, 별도로 import하지 않아도 되는 패키지는 java.lang 패키지이다.
  • 자바의 메모리가 부족해서 발생하는 에러는 OutOgMemoryError이다.
  • 메소드 호출 관계가 너무 많아서 발생하는 에러는 StackOverFlowError이다.
  • java.lang 패키지에 선언되어 있는 3개의 어노테이션
    • override : 부모클래스에서 상속받은 메소드
    • deprecated : 더이상 사용하지 않는 메소드
    • SuppressWarnings : 경고인걸 알고 있다고 알려줌
  • Double과 Integer 같은 숫자 타입에서 처리할 수 있는 최대, 최솟값을 알 수 있는 상수의 이름은 MIN_VALUE, MAX_VALUE이다.
  • Integer 값을 2진법으로 표현하려면 toBinaryString() 메소드 사용, 16진법으로 표현하려면 toHexString() 메소드를 사용한다.
  • 속성(Properties)과 환경(Environment)값의 차이는 속성은 변경, 추가가 가능하지만 환경을 읽기만 할 수 있다.
  • System.out 과 System.err 에서 사용할 수 있는 메소드들을 확인하려면 PrintStream 클래스를 확인해야 한다.
  • System 클래스에서 현재 시간을 조회하는 용도로 사용하는 메소드는 currentTimeMillis()이다.
  • System 클래스에서 시간 측정 용도로 사용하는 메소드는 nanoTime()이다.
  • System.out.println() 메소드에 객체가 매개 변수로 넘어 왔을 때 String의 valueOf() 메소드가 호출되어 결과를 출력한다. 
  • String 클래스는 final 클래스로 자식클래스를 양산할 수 없고 있는 그대로 사용해야 한다.(불변성)
  • String 클래스가 구현한 인터페이스에는 Serializable, Comparable<String>, CharSequence가 있다.
    • Serializable : 구현해야 하는 메소드 없음, 해당 객체를 파일로 저장하거나 다른 서버에 전송 가능한 상태가 됨
    • Comparable<String> : compareTo()
    • CharSequence : 해당 클래스가 문자열을 다루기 위한 클래스라는 것을 명시적으로 나타냄
  • String 클래스의 생성자 중 가장 사용할 필요가 없는 생성자는 기본생성자인 String()이다.
  • String 문자열을 byte 배열로 만드는 메소드의 이름은 getBytes()이다.
  • String 문자열의 메소드를 호출하기 전에 반드시 점검해야 하는 사항은 객체가 null인지 확인하는 것이다.
  • String 문자열의 길이를 알아내는 메소드는 length()이다.
  • String 클래스의 equals() 메소드와 compareTo() 메소드의 공통점과 차이점
    • 공통점 : 매개 변수로 넘어온 값과 String 값을 비교하는 메소드
    • 차이점 : equals()의 리턴 타입은 boolean이고 compareTo()의 리턴 타입은 int로 같으면 -1(하나 앞일 때), 0(같을 때), 1(하나 뒤일 때) 등의 값으로 리턴된다.
  • 문자열이 "서울시"로 시작하는지를 확인하려면 String의 startsWith("서울시") 메소드를 사용해야 한다.
  • 문자열에 "한국"이라는 단어의 위치를 찾아내려고 할 때는 String의 indexOf( "한국" ) 메소드를 사용해야 한다. 값이 없을 때 결과값은 -1이다.
  • 문자열의 1번째부터 10번째 위치까지의 내용을 String으로 추출하려면 subString(0, 9) 메소드를 사용해야 한다.
  • 문자열의 모든 공백을 * 표시로 변환하려면 replace(" ", "*") 메소드를 사용해야 한다.
  • String의 단점을 보완하기 위한 클래스에는 StringBuffer와 StringBuilder가 있다. 이 클래스에서 문자열을 더하기 위한 메소드는 append()이다.
  • 예외를 처리하기 위한 세 가지 블록에는 try, catch, finally가 있다. 
  • "여기에서 예외가 발생할 것이니 조심하세요"라고 선언하는 블록은 try 블록이다.
  • "예외가 발생하는 안하든 얘는 반드시 실행되어야 합니다"라는 블록은 finally 블록이다.
  • 예외의 종류 세가지는 checked exception, error, runtime exception(unchecked exception)이다. checked exception은 나머디 두 예외를 제외한 모든 예외이고, error는 프로그램 밖에서 발생한 오류이다.
  • 프로세스에 치명적인 영향을 주는 문제가 발생한 것을 error라고 한다.
  • try나 catch 블록 내에서 예외를 발생시키는 키워드는 throw이다.
  • 메소드 선언시 어떤 예외를 던질 수도 있다고 선언할 때 사용하는 키워드는 throws이다.
  • 직접 예외를 만들 때 Throwable 클래스의 상속을 받아서 만들어야 한다.(Exception을 처리하는 클래스라면 Exception 클래스도 가능)
  • 인터페이스에 선언되어 있는 메소드는 몸통이 없어야한다.
  • 인터페이스를 구현하는 클래스의 선언시 사용하는 예약어는 implements이다.
  • 일부만 완성되어 있는 클래스를 추상클래스라고 한다.
  • 추상클래스에 몸통이 없는 메소드를 추가하려면 abstract 예약어를 추가해야한다.
  • 클래스를 final로 선언하면 더이상 상속을 할 수 없다.
  • 메소드를 final로 선언하면 overriding을 할 수 없다.
  • 변수를 final로 선언하면 값을 변경할 수 없다.
  • enum 클래스 안에 정의하는 여러 개의 상수들을 나열하기 위해서 상수 사이에 사용하는 기호는 ',' 이다.
  • enum으로 선언한 클래스는 java.lang.Enum의 클래스의 상속을 자동으로 받는다.
  • enum 클래스에 선언되어 있지는 않지만 컴파일시 자동으로 추가되는 상수의 목록을 배열로 리턴하는 메소드는 values() 이다.

'공부 > Java' 카테고리의 다른 글

자바의 신 15장. String  (1) 2024.02.25
자바의 신 14장. 예외  (0) 2024.02.24
자바의 신 12장. Object 클래스  (0) 2024.02.22
자바의 신 11장. API 문서  (0) 2024.02.22
자바의신 10장. 상속  (0) 2024.02.21
  • 모든 클래스의 최상위 부모 클래스인 Object 클래스는 java.lang 패키지에 선언되어 있다,
  • 클래스가 어떻게 선언되어 있는지 확인할 수 있는 명령어(실행파일)는 'javap 클래스이름' 이다.
  • Object 클래스에 선언되어 있는 모든 메소드를 직접 overriding 할 필요는 없다.(필요시에만 하면 됨)
  • Object 클래스의 clone() 메소드는 객체의 복사본을 만들어 리턴할 때 사용한다.
  • System.out.println() 메소드를 사용하여 클래스를 출력했을 때 호출되는 Object 클래스에 있는 메소드는 toString() 이다.
  • 객체의 주소를 비교하는 것이 아닌, 값을 비교하려면 Object 클래스에 선언되어 있는 equals() 메소드를 overriding 해야한다.
  • Object 클래스에 선언되어 있는 hashCode() 라는 메소드는 int 타입의 값을 리턴한다.

'공부 > Java' 카테고리의 다른 글

자바의 신 15장. String  (1) 2024.02.25
자바의 신 14장. 예외  (0) 2024.02.24
자바의 신 13장. 인터페이스, 추상클래스, enum  (0) 2024.02.22
자바의 신 11장. API 문서  (0) 2024.02.22
자바의신 10장. 상속  (0) 2024.02.21

https://docs.oracle.com/en/java/javase/19/docs/api/index.html 참고

 

Overview (Java SE 19 & JDK 19)

This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP

docs.oracle.com

 

'공부 > Java' 카테고리의 다른 글

자바의 신 15장. String  (1) 2024.02.25
자바의 신 14장. 예외  (0) 2024.02.24
자바의 신 13장. 인터페이스, 추상클래스, enum  (0) 2024.02.22
자바의 신 12장. Object 클래스  (0) 2024.02.22
자바의신 10장. 상속  (0) 2024.02.21
  • 상속을 받는 클래스의 선언문에 사용하는 키워드는 extends (자식 클래스 extends 부모 클래스)
  • 상속을 받은 클래스의 생성자를 수행하면 부모의 생성자도 자동으로 수행된다.
  • 부모 클래스의 생성자를 자식 클래스에서 직접 선택하려고 할 때 사용하는 예약어는 super
  • 메소드 overriding과 overloading의 차이점 :  overriding은 자식 클래스에서 부모 클래스의 메소드를 재정의해서 사용하는 것, overloading은 같은 이름의 메소드를 매개 변수의 타입이나 이름을 다르게 해서 사용하는 것
  • A가 부모, B가 자식 클래스라면 A a = new B();의 형태로 객체 생성은 불가능하다.  B b = new A(); 의 형태로는 가능 (자식 클래스에서는 부모 클래스의 메소드나 변수를 사용할 수 있지만 그 반대는 그럴수도 있고 아닐수도 있기 때문에)
  • 명시적으로 형 변환을 하기 전에 타입을 확인하려면 instanceof라는 예약어 사용 (객체 instanceof 클래스(타입))
  • instanceof의 수행 결과는 boolean 타입으로 제공된다.
  • Polymorphism(다형성) : 부모 클래스에서 선언된 메소드를 여러개의 자식 클래스에서 재정의해서 다양하게 사용할 수 있는 것

'공부 > Java' 카테고리의 다른 글

자바의 신 15장. String  (1) 2024.02.25
자바의 신 14장. 예외  (0) 2024.02.24
자바의 신 13장. 인터페이스, 추상클래스, enum  (0) 2024.02.22
자바의 신 12장. Object 클래스  (0) 2024.02.22
자바의 신 11장. API 문서  (0) 2024.02.22

+ Recent posts