Math 클래스는 무엇이며, 어떻게 사용할까? Math 클래스 --Math 클래스는수학적 계산에 유용한 메서드를 제공하는 유틸리티 클래스다. java.lang 패키지에 포함된 다른 클래스들과 달리Math 클래스에는 기본적으로 메서드들이 static 메서드로 이루어져 있어서객체를 생성하지 않고 클래스 이름(Math)을 통해 직접 접근하여 사용할 수 있다. Math 클래스의 생성자는 접근제어자가 private다.즉, 다른 클래스에서는 Math 객체를 생성할 수 없다는 것이다.이유- 인스턴스 변수가 없다.- 제공하는 메서드는 전부 static 메서드다.- 상수도 E, PI 총 2개만 제공이러한 이유로 객체를 생성할 필요가 없기 때문에 생성자의 접근제어자가 private인 것이다. 주요 메서드--
전체 글
Wrapper 클래스란 무엇이며, 어떻게 사용할까? Wrapper 클래스 --기본 타입을 객체로 감싸기 위한 클래스를 통틀어서 부르는 용어다. 객체지향에서는 모든 것이 객체로 다루어져야 하지만 기본 타입은 예외다.하지만 기본 타입을 객체로 다뤄야 하는 경우가 생기기 때문에 Wrapper 클래스를 사용한다. 예시매개변수가 객체로 값을 요구할 때기본 타입이 아닌 객체로 값을 저장해야 할 때객체 간의 비교가 필요할 때 Java는 8개의 기본형이 존재하여 완전한 객체지향 언어라고 부를 수 없다. Wrapper 클래스 종류 래퍼 클래스는 모두 equals() 메서드가 오버라이딩 되어 있어 주소값이 아닌 객체가 가지고 있는 값을 비교한다.toString() 메서드도 오버라이딩 되어 있어 객체가 가지고 ..
StringBuffer와 StringBuilder는 무엇이며, 어떻게 사용할까? StringBuffer 클래스 --StringBuffer 클래스는"가변 길이 문자열"을 다루기 위한 클래스로String 클래스와 달리 문자열을 수정할 수 있다. String 클래스는 "불변"으로 지정한 문자열을 수정할 수 없지만StirngBuffer 클래스는 "가변"으로 지정한 문자열을 언제든 수정할 수 있다. 내부적으로 문자열을 편집하기 위한 "버퍼(buffer)"를 가지고 있으며,StringBuffer 객체를 생성할 때 해당 버퍼 크기를 지정할 수 있다. 버퍼의 크기는 이후 편집할 문자열의 길이를 고려하여 넉넉하게 잡아주는 것이 좋다.만약 문자열을 편집할 때 버퍼 길이를 넘어가게 되면다시 버퍼의 길이를 늘여주는 ..
팩토리 메서드 패턴은 무엇인가? 팩토리 메서드 패턴 (Factory Method) --팩토리 메서드 패턴은상속 관계에 있는 두 클래스에서부모 클래스에는 중요한 뼈대를 정의하고, 자식 클래스에는 객체 생성에 관한 구체적인 내용을 정의하는 패턴으로부모 클래스에서는 객체 생성 방식에 대해 전혀 알 필요 없이 자식 클래스에게 객체 생성을 맡겨서구체적인 클래스 타입을 알 필요 없이 객체를 생성할 수 있게 된다.이를 통해 유연성과 유지 보수성이 증가한다. 예시 코드// (부모 클래스) 추상 클래스 또는 인터페이스를 사용한다.abstract class Car { protected String name; public String getName() { return name; ..
String 클래스에서 제공하는 메서드는 무엇이 있을까? String 클래스 --문자열을 다루기 위한 대표적인 클래스로,문자열을 다룰 때 불변(immutable)성과 메모리 효율성을 제공하며, 다양한 편의 메서드를 제공한다. 불변(immutable)?말 그대로 한 번 생성된 문자열 객체는 해당 값을 변경할 수 없다.String 타입의 문자열 수정이 가능하던데?외관상으로는 수정이 되는 것 처럼 보이지만사실 새로운 String 타입의 객체를 새로 생성하고 이를 사용하도록 변경한 것이다.기존에 사용하던 String 타입의 객체는 GC로 인해 제거된다.String str1 = "Hello";str1 = "world";str1 = "Hello" + str1;// str1은 "Hello"에서 "world"..
Object 클래스는 무엇이며, 어떤 메서드를 제공할까? Object 클래스 --Object 클래스는모든 java 클래스의 최상위 부모 클래스로상속을 정의하지 않은 모든 클래스는 자동으로 Object 클래스를 상속받도록 설계되어 있다.(다른 클래스를 상속받더라도 계속 해당 부모 클래스로 올라가 보면 Object 클래스를 상속받고 있다.) 그래서 모든 클래스(객체)는 Object 클래스에서 제공하는 메서드를 사용할 수 있다. Object 클래스에는 멤버변수는 없고 오직 11개의 메서드만 가지고 있다. 메서드 종류-- equals(Object obj) --두 객체가 같은지 비교하는 메서드로, 같은 참조를 하고 있는지 비교한다.(두 객체가 같은 곳을 가리키고 있는가?) 기본 형식객체A.equa..
싱글톤 패턴은 무엇인가? 싱글톤 패턴 (Singleton) --싱글톤 패턴은하나의 클래스는 오직 하나의 객체(인스턴스)만 생성하고, 해당 객체에는 누구나(전역적) 접근이 가능하도록 보장한다.원래는 하나의 클래스로 여러 객체를 생성할 수 있지만, 그렇게 하지 않고 단 하나의 객체만 생성하고,해당 객체를 기반으로 로직을 구성하기 위해 사용하는 패턴이다. 주로 자원 관리가 필요한 경우(DB 연결, 설정 관리 등)에해당 데이터를 관리하는 객체 하나만 생성하여 여러 곳에서 공유하여 사용할 때 유용하다. 간단하게 생각하면여러 곳에서 공통으로 사용할 데이터를 관리하는 객체를 하나 만드는 것이다. 장단점객체를 생성하는 비용이 줄어든다.의존성이 높아진다.주로 단위 테스트를 하는 TDD 할 때 걸림돌이 된다.(단..
java.lang 패키지는 무엇이며, 무엇을 제공할까? java.lang 패키지 --자바 프로그래밍을 할 때다른 패키지에 존재하는 클래스를 가져다 사용하기 위해서는"import" 키워드를 사용하여 사용하고 싶은 클래스가 위치하는 패키지를 불러와서 사용할 수 있지만 java.lang 패키지는자바 언어에서 가장 기본적이고 필수적인 클래스와 인터페이스들을 제공하는 패키지로,별도로 "import" 키워드를 사용하지 않아도 바로 사용할 수 있도록 설계되어 있다.-- java.lang 패키지에 포함된 주요 클래스와 기능 --1. Object 클래스모든 Java 클래스의 "최상위 부모 클래스"로, 클래스를 통해 생성한 객체에 사용할 수 있는 기본적인 메서드를 제공한다. 주요 메서드toString() ..