줭 Blog 66

[Java-10] 날짜와 시간 & 형식화 - java.time패키지

1. java.time패키지란? - JDK1.8부터 추가된 패키지 - Date와 Calendar의 단점을 해소 - Calendar클래스와 다르게 '불변(immutable)'임 - java.time패키지와 서브 패키지들 패키지 설 명 java.time 날짜와 시간을 다루는데 필요한 핵심 클래스들을 제공 java.time.chrono 표준(ISO)이 아닌 달력 시스템을 위한 클래스들을 제공 java.time.format 날짜와 시간을 파싱하고, 형식화하기 위한 클래스들을 제공 java.time.temporal 날짜와 시간의 필드(field)와 단위(unit)를 위한 클래스들을 제공 java.time.zone 시간대(time-zone)와 관련된 클래스들을 제공 - Calendar클래스와 달리, java.tim..

공부/Java 2021.04.12

[알고리즘-01] 알고리즘, 순서도

1. 알고리즘 1) 알고리즘이란? 1. 문제를 해결하기 위한 것 2. 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합 2) 순차적 구조와 선택 구조 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print("a의 값: "); int a = sc.nextInt(); System.out.print("b의 값: "); int b = sc.nextInt(); System.out.print("c의 값: "); int c = sc.nextInt(); int max = a; if(b > max) max = b;..

공부/알고리즘 2021.03.14

[Java-10] 날짜와 시간 & 형식화 - Calendar, 형식화 클래스

1. 날짜와 시간 1) Calendar와 Date - java.util의 클래스로 날짜와 시간을 다룰 목적으로 제공 - JDK 1.8부터 'java.time패키지'로 기존의 단점들을 개선한 새로운 클래스들이 추가됨 - 하지만 Calendar와 Date는 20년 넘게 사용되어 왔으므로 기능을 알아두면 좋음 2) Calendar클래스 - Calendar는 추상클래스이므로 직접 객체를 생성할 수 없음 - 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 함 Calendar cal = new Calendar();// 에러! 인스턴스 생성 불가능 Calendar cal = Calendar.getInstance(); - GregorianCalendar : Calendar를 상속받은 완전한 클래스로, 태국을 ..

공부/Java 2021.03.12

[Java-09] 유용한 클래스

1. java.util.Objects클래스 - Object클래스의 보조 클래스 - 모든 메서드가 static임 - 객체의 비교나 널 체크(null check)에 유용 - Object클래스의 메서드와 이름이 같을 경우는 클래스의 이름을 붙여줘야 함 1) 널 체크(null check) static boolean isNull(Object obj)// null이면 true, 아니면 false static boolean nonNull(Object obj)// isNull()과 정반대의 결과 // 객체가 null이 아니어야 하는 경우에 사용 // 객체가 null이면 NullPointerException을 발생 static T requireNonNull(T obj) static T requireNonNull(T ob..

공부/Java 2021.03.10

[Java-09] java.lang패키지 - StringBuffer클래스, Math클래스, Wrapper클래스

1. StringBuffer클래스 - String클래스와 달리 인스턴스를 생성할 때 지정된 문자열을 변경할 수 있음 - 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있음 1) StrigBuffer의 생성자 - StringBuffer클래스의 인스턴스를 생성할 때 적절한 길이의 char형 배열이 생성, 이는 문자열을 저장하고 편집하기 위한 공간(buffer)으로 사용됨 - 버퍼의 길이를 지정해주는 StringBuffer(int length)를 사용하여 충분히 여유있는 크기의 버퍼를 생성하는 것이 좋음 public StringBuffer(int length) { value = new char[length]; shared = false; } public StringBuffer() { this(16..

공부/Java 2021.03.09

[자료구조-01] 자료구조, 시간복잡도

1. 자료구조(data structure) - 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장 - 데이터 값의 모임, 데이터 간의 관계, 데이터에 적용할 수 있는 함수나 명령 - 자료구조를 선택한 후 알고리즘을 사용 2. 시간복잡도(time complexity) (1) 시간복잡도란? - 알고리즘의 실행 시간 분석 +) 공간 복잡도(space complexity) : 알고리즘이 사용하는 기억 공간 분석 - 알고리즘의 절대적인 실행 시간 X - 알고리즘을 이루고 있는 연산들이 몇 번 실행되는지 숫자로 표시 O - 시간복잡도가 클수록 알고리즘의 실행이 오래 걸림 (2) 시간 복잡도 함수 - 연산의 개수를 입력의 개수 n의 함수로 나타낸 것 T(n) T : 함수 n : 입력의 개..

공부/자료구조 2021.03.08

[Java-09] java.lang패키지 - String클래스

1. String클래스 - 문자열을 저장하고 이를 다루는데 필요한 메서드를 함께 제공 1) 변경 불가능한(immutable) 클래스 - String클래스에는 문자열을 저장하기 위해 문자형 배열 참조변수(char[]) value를 인스턴스 변수로 정의해둠 public final class String implements java.io.Serializable, Comparable { private char[] value; ... } - 생성된 String인스턴스는 읽기만 가능하고 변경은 불가능함 - 문자열간의 결합이나 추출 등은 연산 시마다 새로운 String인스턴스를 생성하는 것임 (StringBuffer클래스를 사용하는 것이 좋음) 2) 문자열의 비교 equals() 두 문자열의 내용 비교 == 인스턴스..

공부/Java 2021.03.08

[Java-09] java.lang패키지 - Object클래스

1. java.lang패키지 - 자바프로그래밍에 가장 기본이 되는 클래스들 포함 - import문 없이도 사용 가능 - Object, String, System 등 2. Object클래스 1) Object클래스의 정의와 메서드 - 모든 클래스의 조상이 되는 클래스 - Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능 Object클래스의 메서드 설 명 protected Object clone() 객체 자신의 복사본을 반환 public boolean equals(Object obj) 객체 자신과 같은 객체 obj가 같은 객체인지 알려줌 protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동 호출 수행되어야하는 코드가 있을 때 오버라이딩함 (거의 안함) publi..

공부/Java 2021.03.05

[Java-08] 예외처리(Exception Handling)

1. 예외처리(Exception Handling) 1) 프로그램 오류 - 프로그램 에러(오류) : 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 컴파일 에러 컴파일 시에 발생하는 에러 런타임 에러 실행 시에 발생하는 에러 논리적 에러 실행은 되지만, 의도와 다르게 동작하는 것 런타임 에러는 '에러(error)'와 '예외(exception)'으로 구분 에러(error) 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception) 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 2) 예외 클래스의 계층구조 - 자바에서는 실행 시 발생할 수 있는 오류(Exception과 Error)를 클래스로 정의함 - 모든 예외의 최고 조상은 Exception클래..

공부/Java 2021.03.04

[Java-07] 객체지향프로그래밍Ⅱ - 인터페이스, 내부 클래스

1. 인터페이스(Interface) 1) 인터페이스란? - 일종의 추상 클래스 - 추상클래스처럼 추상메서드를 갖지만 추상화 정도가 더 높음 - 오직 '추상메서드'와 '상수'만을 멤버로 가짐 2) 인터페이스의 작성 interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } - 모든 멤버변수는 public static final이어야 하며, 이를 생략할 수 있음 - 모든 메서드는 public abstract이어야 하며, 이를 생략할 수 있음 (단, static 메서드와 디폴트 메서드는 예외(JDK1.8부터)) interface PlayingCard { // 생략 가능하기 때문에 모두 사용 가능 public stat..

공부/Java 2021.03.03