본문 바로가기

Programming/Java83

[Java] - 자바에서 날짜와 시간 다루기 자바에는 날짜와 시간을 다루는 클래스가 3가지가 있다. Date Calendar java.time패키지 date는 jdk1.0부터 제공되어온 클래스다. data 클래스의 부족한 기능을 보완하기 위해 Calendar 클래스가 생겨났다. 그리고 jdk1.8부터 'java.time패키지'로 기존의 단점들을 개선한 새로운 클래스들이 추가되었다. 자바의 정석 저자는 date, calendar 클래스를 학습하지 않기엔 20년 넘게 사용되어왔기 때문에 기본적인 사용법은 학습하는 게 좋을 것이라고 말한다. Calendar와 Gregorian Calendar Calendar를 상속받아 구현한 클래스로는 GregorianCalendar와 BuddhistCalendar가 있다. getInstance() 메서드를 호출하면 시.. 2021. 3. 3.
[Java] - 상수와 리터럴을 구분하시나요? 출처 : 자바의 정석 상수와 리터럴 변수 상수 리터럴 정의 값을 저장할 수 있는 공간 값을 저장할 수 있는 공간 그 자체로 값을 의미 특이점 값 변경이 가능하다. 한 번 값을 저장하면 변경X final int MAX_VAL = 100; 원래는 위 코드에서 100과 같은 값들이 상수인데, 프로그래밍에서는 상수를 값을 한 번 저장하면 변경할 수 없는 저장공간으로 정의하였다. 하여 프로그래밍에서 정의하는 상수와 100과 같은 값 지칭하는 상수를 구분하기 위한 다른 이름이 필요했다. 그 것이 바로 '리터럴'이 되겠다. 그럼 왜 상수를 쓰나요? 상수는 리터럴에 '의미있는 이름'을 붙여서 코드의 이해와 수정을 쉽게 만들기 때문이다. 2021. 3. 3.
[Java] - 정규식 기본 사용법 출처 : 자바의 정석 정규식이란 텍스트 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열을 찾아 내기 위해 사용하는 것으로 미리 정의된 기호와 문자를 이용해서 작성한 문자열을 말한다. Pattern 클래스와 Matcher 클래스를 사용한다. public class RegularEx01 { public static void main(String[] args) { String[] data = {"bat", "baby", "bonus", "cA", "ca", "co", "c.", "c0", "car", "combat"}; Pattern p = Pattern.compile("c[a-z]*"); // 정규식을 매개변수로 Pattern 인스턴스 얻기. c로 시작하는 소문자 영단어 for (int i = 0; i .. 2021. 3. 2.
[Java, 객체지향] - 좋은 객체 지향 프로그래밍이란? (작성중) 객체 지향 특징 추상화 캡슐화 상속 다형성 객체 지향 설계의 다섯 가지 원칙 : solid 출처 : 스프링 핵심 원리 강의 by 김영호 SRP 단일 책임 원칙 (Single responsibility principle ) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 중요한 것은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것. OCP 개방 - 폐쇄 원칙 (Open/Close principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. -> 다형성. 인터페이스를 구현한 새로운 클래스를 만들어서 새로운 기능을 구현. LSP 리스코프 치환 원칙 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바.. 2021. 3. 1.
[Java] - java.util.Objects 클래스 java.util.Objects 객체의 비교나 널 체크에 유용하다. static boolean isNull(Object obj) static boolean nonNull(Object obj isNull() 해당 객체가 널 인지 확인해서 null 이면 true 아니면 false를 반환한다. nonNull() isNull()과 정반대의 일을 한다. requiredNonNull() 해당 객체가 널이 아니어야 하는 경우에 사용한다. 만일 널이면 NullPointerException을 발생시킨다. compare() static int compare(Object a, Object b, Comparator c) 두 비교대상이 같으면 0, 크면 양수, 작으면 음수를 반환한다. equals() java.util.Obje.. 2021. 3. 1.
[Java] - Checked 와 Unchecked 에러의 차이점을 아는가? 2021/02/28 - [Programming/Java] - [Java] - 예외처리를 위한 오류 알기 [Java] - 예외처리를 위한 오류 알기 출처 : 자바의 정석 프로그램 오류 프로그램 실행 중 어떤 원인 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이런 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. guten-tag.tistory.com 이전글에서 예외처리의 기본 개념을 정리하였다. 여기서는 자바에서 예외처리를 좀 더 구체적으로 살펴보겠다. RunTimeException과 Other Exceptions 의 차이 같은 구조의 코드인데 Exception03 클래스는 에러 표시가 뜨고 Exception04 클래스는 정상적인 코드로 인식되고 있다. 이유는 Checked와 Unc.. 2021. 3. 1.