본문 바로가기

Java71

[JAVA얄코] 유용한 라이브러리 클래스 1. Math - 수학 관련 - 인스턴스를 만들 수 없음 (만들 필요가 없다) - JS랑 똑같이 써보고 검색해서 쓰면 된다. 거의 똑같음 2. BigInteger - 아주 큰 정수를 다룰 수 있다. 3. BigDecimal - 부동소수점 오차를 해결 할 수 있다. - 십진법 소수점 알고리즘을 사용한다. 4. StringJoiner - 문자열을 쉽게 다룰 수 있다. (Join을 쉽게 할 수 있다. delimiter, prefix, suffix 를 설정할 수 있다.) 5. StringBuffer - 문자열을 더할 때 메모리에 할당하지 않으므로 메모리누수가 나지 않는다. - 효율적이고 성능상 유리하다. - 문자열 수정 관련 다양한 메소드들을 가지고 있다. - 멀티쓰레드 관련 기능을 제공한다. - 단일쓰레드에서.. 2023. 11. 27.
[JAVA얄코] 레코드 1. 레코드 - 데이터 묶음을 저장하기 위한 단순한 형태의 클래스 - C의 구조체같은 비슷한 것 - getter가 자동으로 생성된다. - 인스턴스 필드를 가질 수 있다. - 클래스 필드는 가능하다. - 메소드는 가질 수 있다. 2. 예제 - Button Class를 유심히 볼 것 - record 도 참조형이다. 2023. 11. 27.
[JAVA얄코] 익명 클래스 1. 익명 클래스 - 다른 클래스나 인터페이스로부터 상속받아 만들어짐 - 한번만 사용되고 버려질 클래스 - 이후 다시 인스턴스를 생성할 필요가 없으므로 - 람다식이 나오기 전에 널리 사용 - 함수형 프로그래밍에서 널리 사용된다. 2023. 11. 27.
[JAVA얄코] 내부 클래스 1. 내부 클래스 - 다른 클래스 안에 선언되는 클래스 - 멤머 인스턴스 , 정적 내부 클래스 , 메소드 안에 정의된 클래스 , 익명클래스 가 있다. 2. 예제 - Outer 클래스의 메소드 부분 - 적재적소에 신중하게 사용해주어야 한다. 3. 예제2 - YalcoChicken.java - Main.java - 외부에 클래스를 따로 두는 것보다 훨씬 가독성과 관리성이 좋아진다. 2023. 11. 27.
[JAVA얄코] Block과 Scope 1. Block - 0개 이상의 문 statment 를 묶은 단위. - 유효 범위 - 제어문, 함수, 클래스 - 새로운 스코프를 생성 - {} 로 묶은거 그거 알지 ? 2. Scope - 범위의 의미 - 외부의 변수를 안에서 새로 선언해서 사용 불가능함. - 클래스의 필드와 메소드의 변수는 가능함. 2023. 11. 27.
[JAVA얄코] Singleton 1. 싱글턴 패턴 - 프로그램 상에서 특정 인스턴스가 딱 하나만 있어야 할 때 - DB 연결 인스턴스에서 많이 사용 - 프로그램 상 여러 곳에서 공유되는 설정 - 전역 공유 인스턴스가 필요한 경우 - 본사 직영점 딱 하나만 두는거다. 2. 예제 (싱글턴이 아닌 경우) - Setting.java - Tab.java - Main.java 3. 예제 (싱글턴의 경우) - Setting.java - Tab.java - Main.java - 즉, Tab은 다르지만, Setting 인스턴스는 한가지만 사용하게 된다. - getInstance() 메소드에서 하나의 인스턴스만을 가져오기 때문이다. 2023. 11. 27.
[JAVA얄코] Interface 1. 인터페이스 2. 인터페이스의 의미 3. 추상클래스의 구현 4. 사용 예제 - Hunter 인터페이스와 Mamal 추상클래스를 각 객체의 형으로 가지는 것이 둘 다 가능하다. - 인터페이스는 다수 적용할 수 있다 - 생성자가 없으므로 초기화 필수, 필드는 public static final (명시할 필요는 없음) - 메소드는 public abstract(명시할 필요 없음) - default 메소드로 기본 메소드를 정의할 수 있다. (개별 클래스에서 구현하지 않아도 사용 가능하다.) 2023. 11. 24.
[JAVA얄코] 추상 클래스 1. 추상클래스 - 스스로는 인스턴스를 만들 수 없음 (동물을 '포유류' 라고 불리는 동물은 없다.) - 자식클래스로 파생되기 위한 클래스 - 개/고양이/말 등의 클래스로서 인스턴스 생성 - 다형성, 추상화, 재사용 때문에 사용 2. 예제 - abstract 를 붙여서 class를 선언해준다. - abstract class YalcoGroup으로는 인스턴스를 만들지 못한다. - field는 protected 로 되어있어, 자식클래스가 물려받아 사용해야 하기 때문이다. - 추상클래스가 가지고 있는 abstract 메소드는 구현 되어있지 않다. 접근제어자가 의미가 없다. (스스로는 선언만 한다. 물려받을 자식들이 구현한다. 구현하지 않으면 안된다.) - 클래스 메소드는 추상메소드로 생성이 불가하다. (sta.. 2023. 11. 22.