Back-End/Java 25

[ JAVA ] Collection

[ JCF ] Java Collection Framework Collection - 데이터의 집합 Framework - 표준화 체계(틀, 체제, 뼈대, 개발환경) Collection Framework - 다수의 데이터 집합을 관리(저장, 검색, 수정, 삭제 등)하는 표준화된 체계 [ 컬렉션 클래스 ] collection class 컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스 ▶ 컬렉션 인터페이스 특징 인터페이스 특징 구현 클래스 List 순서 O, 중복허용 O ArrayList, Vector, LinkedList, Stack, Queue Set 순서 X, 중복허용 X HashSet, TreeSet Map 순서 X, 중복허용 ( key - X , value - O ) HashMap, TreeMap..

Back-End/Java 2023.08.17

[ JAVA ] java.time

1. java.time JDK1.8 부터 제공 - Java version 8 이상 사용 가능 날짜, 시간을 다루는 기능이 구현된 클래스 하위 패키지 java.time.chrono : 표준(ISO)이 아닌 달력 시스템을 위한 클래스 제공 java.time.format : 형식화(파싱) 클래스 제공 java.time.temporal : 날짜, 시간의 필드(field)와 단위(unit) 클래스 제공 java.time.zone : 시간대(time-zone) 클래스 제공 핵심 클래스 LocalDate : 날짜 정보 LocalTime : 시간 정보 LocalDateTime : 날짜 + 시간 정보 ZonedDateTime : 시간대 + 날짜 + 시간 정보 객체 생성 4개의 핵심 클래스는 public 생성자를 제공하지..

Back-End/Java 2023.08.15

[ JAVA ] 클래스간의 관계 1) has-a, DI(Dependency Injection)

클래스에서 다른 클래스를 사용할 때, 초기화를 해주지 않으면 NullPointException이 발생한다. 클래스는 참조변수로 초기화를 하지 않으면 null로 자동 초기화되기 때문이다. NullPointException를 해결하기 위한 초기화 방법에는 3가지가 있다. [1] 명시적 초기화 [2] 생성자 초기화 [3] 인스턴스 초기화 하지만 위 3가지 방법은 클래스 내에서 초기화를 하기 때문에 결합력이 높다는 단점을 가지고 있다. 결합력을 낮추기 위해 has-a, is-a(상속)를 사용해야한다. 1. has-a 의존성 주입 DI(Dependency Inejction) 아래 예를 들어보자. Car클래스 외부에서 engein객체를 생성해서 Car 객체에 매개변수로 넘겨주면 해결된다. 1) 생성자를 통한 DI ..

Back-End/Java 2023.08.02

[ JAVA ] 메서드(함수)

1. 정의 : 프로그래밍에서 "반복되는 명령어들"을 찾아 별도로 묶어, 필요할 때 마다 재사용하도록 만든 것 2. 프로그램 구조화 -> 유지, 보수, 관리 용이 3. 함수가 기본이 되는 프로그래밍 방식 - 구조적 프로그램 4. 객체가 기본이 되는 프로그래밍 방식 - 객체 지향적 프로그래밍 (OOP) 5. 메서드(함수)의 선언 형식 접근 지정자 + 기타제어자 => 수정자 (modifier) [접근지정자] [기타제어자] [리턴자료형 함수명([매개변수...])

Back-End/Java 2023.07.23

[ JAVA ] 가변인자

1. 가변인자란? 메서드에 동적으로 개수가 변하는 인자들을 전달하는 방법 메서드를 호출할 때 전달하는 인자의 개수를 유연하게 처리 가능 java5부터 추가된 기능 가변인자는 매개변수 리스트의 마지막에만 위치해야함 가변인자 뒤에 다른 매개변수를 추가하면 어디까지가 가변인자인지 확인할 수 없기 때문임 가변인자는 배열로 저장되며, 한 가변인자는 같은 자료형의 데이터만 받을 수 있다. 2. 예제 sum 함수를 선언해보자. 가변인자를 사용하지 못하는 경우, 아래와 같이 인자 수에 따라 함수를 오버로딩해야한다. public class Ex10 { public static void main(String[] args) { int a = 10; int b = 20; int c = 30; int d = 40; // 두 정..

Back-End/Java 2023.07.23

[ JAVA ] 정규표현식 - (예) 주민등록번호, 우편번호, 국어점수

1. 주민등록번호 // 주민등록번호 000000-0000000 // resident registration number String rrn = "123456-1234567"; String regex = "[0-9]{6}-\\d{7}"; // 숫자 [0-9] \d // 반복횟수 ?(0,1) +(1,여러번) *(0, 여러번) // {n} : n번 와야함 //{n,m} : n~m번 와야함 //{n,} : n번 이상 와야함 if (rrn.matches(regex)) { System.out.println("올바른 주민등록번호 형식"); } else { System.out.println("잘못된 주민등록번호 형식"); } //if 2. 우편번호 // 우편번호 (구)000-000(신)00000 String [] zi..

Back-End/Java 2023.07.23

[ JAVA ] 이름 붙은 반복문

말 그대로 이름을 붙인 반복문이다. 아래 예시와 같이 for문 이나 while문과 같은 반복문을 두개 이상 사용할 때, 유용하다. public class Ex07 { public static void main(String[] args) { // [이름 붙은 반복문] // 이름이 붙은 반복문을 break 혹은 continue 함 // 개행여부는 상관 없음 out : for (int i = 2; i < 10; i++) { in : for (int j = 1; j < 10; j++) { System.out.printf("%d*%d=%02d\t", i, j, i*j); if (j == 5) { //break out; continue out; } //if } //for System.out.println(); } ..

Back-End/Java 2023.07.23