본문 바로가기

Language35

[Java API] String 클래스 주요 메서드 정리 String 클래스는 문자열로 처리할 수 있는 다양한 기능을 제공한다. 기능이 방대하므로 필요한 기능이 있으면 그때마다 검색하거나 API 문서를 찾아보도록 하자.  - isEmpty(): 문자열이 비어 있는지 확인한다. (길이가 0)- isBlank(): 문자열이 비어 있는지 확인한다. (길이가 0이거나 공백(Whitespace)만 있는 경우), Java 11 - equals(Object anObject): 두 문자열이 동일한지 비교- equalsIgnoreCase(String anotherString): 두 문자열을 대소문자 구분 없이 비교 - compareTo(String anotherString): 두 문자열을 사전 순으로 비교- compareToIgnoreCase(String str): 두 문자열.. 2024. 8. 22.
[Java API] Object 클래스 주요 메서드: toString(), equals(), getClass(), hashCode(), notify(), notifyAll(), wait() "기본형을 제외한 모든 것은 객체다"자바에서 모든 클래스의 최상위 부모 클래스는 항상 java.lang 패키지에 있는 Object 클래스이며 명시적이 아닌 묵시적인 상속관계이다. (부모가 없어도 따로 extends를 안 해도 된다)※ Object 배열을 활용하면 세상 모든 타입의 객체를 다 담을 수 있다 [Object 클래스가 제공하는 대표적인 기능]1. 객체의 정보를 제공하는 toString()2. 객체의 같음을 비교하는 equals(Object obj)3. 객체의 클래스 정보를 제공하는 getClass()4. 객체의 해시 코드를 반환하는 hashCode()5. 멀티스레드 메서드 notify(), notifyAll(), wait()6. 객체를 복사하는 clone() - 잘 사용하지 않기에 다루지는 않겠.. 2024. 8. 20.
[Java API] java.lang 패키지 주요 클래스와 인터페이스 정리 자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 바로 java.lang 패키지이다. 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지이다. java.lang 패키지는 모든 자바 애플리케이션에 자동으로 import된다. 따라서 import를 생략해도 사용할 수 있다System.out.println() 함수를 그냥 바로 사용할 수 있는 것도 이 이유이다  [java.lang 패키지의 주요 클래스]- Object 클래스: 모든 자바 객체의 최상위 부모 클래스- String 클래스: 문자열을 다루기 위한 클래스, String 객체는 불변(immutable)이며, 생성된 이후에는 변경 x- StringBuilder & StringBuffer 클래스: 변경 가능한 문자열.. 2024. 8. 20.
JAVA 16 - instanceof 신기능(Pattern Matching for instanceof) 자바 16부터는 instanceof를 사용하는 동시에 변수를 선언할 수 있다. 우선, 기존의 코드를 보면 public void call(Parent parent) { parent.parentMethod(); if (parent instanceof Child) { System.out.println("Child 인스턴스가 맞습니다"); Child child = (Child)parent; child.childMethod(); } } 이렇게 인스턴스가 맞는 경우 직접 다운캐스팅을 해줘야 하지만, instanceof의 신기능을 활용하면 public void call(Parent parent) { pa.. 2024. 8. 11.
[Java] 오버라이딩 조건 5가지 1. 선언부가 완전히 같아야 한다 (이름, 매개변수, 리턴타입)※ 반환 타입이 하위 클래스 타입일 수는 있다2. 자식 클래스의 접근 제어자를 더 좁은 범위로 변경할 수 없다 오버라이딩 메서드의 접근 제어자는 상위 클래스의 메서드보다 더 제한적이어서는 안된다. 예를 들어, 상위 클래스의 메서드가 protected로 선언되어 있으면 하위 클래스에서 이를 public 또는 protected로 오버라이드할 수 있지만, private 또는 default로 오버라이드 할 수 없다.3. 조상클래스의 메서드보다 더 많은 예외를 선언할 수 없다 오버라이딩 메서드는 상위 클래스의 메서드보다 더 많은 체크 예외를 throws로 선언할 수 없다. 하지만 더 적거나 같은 수의 예외, 또는 하위 타입의 예외는 선언할 수 있다4... 2024. 8. 9.
[Java] 상속과 메모리 구조 예시로 Car 부모 클래스와 ElectricCar 자식 클래스가 있다고 하자 부모 클래스 (슈퍼 클래스)package extend;public class Car { public void move() { System.out.println("차를 이동합니다."); }} 자식 클래스 (서브 클래스)package extend;public class ElectricCar extends Car { public void charge() { System.out.println("충전합니다."); }}  이러한 상황에서 ElectricCar 클래스 객체를 만들어보자ElectricCar electricCar = new ElectricCar();new Ele.. 2024. 8. 9.
[Java] 패키지 규칙 및 관례 [패키지 규칙]1. 패키지의 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다. (필수) 2. 패키지 이름은 모두 소문자를 사용한다. (관례) 3. 패키지 이름의 앞부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다. (관례) 이 부분은 필수는 아니다. 하지만 수많은 외부 라이브러리가 함께 사용되면 같은 패키지에 같은 클래스 이름이 존재할 수도 있다. 이렇게 도메인 이름을 거꾸로 사용하면 이런 문제를 방지할 수가 있다. 내가 오픈소스나 라이브러리를 만들어서 외부에 제공한다면 꼭 지키는 것이 좋다. 만약 내가 만든 애플리케이션을 다른 곳에 공유하지 않고, 직접 배포한다면 보통은 문제가 되지 않는다.   [패키지 계층구조]계층구조상 a 패키지 하위에 a.b 패키지와 a.c 패키지가 있다고 하자.그런데 .. 2024. 8. 6.
Java 14 - 새로운 switch문(switch expression) 기존의 switch문에 대한 개발자들의 불만이 많았다 switch문을 사용하는 이유에 가장 큰 이유는 가독성이지만, switch문은 가독성이 그닥 좋지 않은 데다가 코드줄만 더 잡아먹었다2020년 Java 14에서 도입된 새로운 switch 문은 더 간결하고 표현력이 뛰어나게 만들기 위해 설계되었다 이 새로운 switch 문은 "switch expression"이라고도 불리며, 실제 현업에서도 종종 사용되니 잘 알아두자 기존의 switch 문과 다른 주요 특징은 다음과 같다1. 표현식으로 사용 가능새로운 switch 문은 값으로 평가될 수 있다. 즉, 변수에 결과를 할당할 수가 있다.int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6;.. 2024. 7. 28.