본문 바로가기
반응형

java25

[자바] SimpleDateFormat Date와 Calendar, 두 개 만으로는 날짜 데이터를 원하는 형태로 다양하게 출력하는 것이 어려운데 SimpleDataFormat을 사용하면 간단히 해결 할 수 있다. (Date, Calendar 참고 : https://devmango.tistory.com/145) DateFormat은 추상클래스로 SimpleDateFormat의 조상이다. DateFormat은 추상클래스이므로 인스턴스를 생성하기 위해서는 getDateInstance()와 같은 static 메서드를 이용해야 한다. getDateInstance()에 의해서 반환되는 것은 DateFormat을 상속받아 완전하게 구현한 SimpleDateFormat 인스턴스이다. 기호 의미 예 G 연대(BC, AD) AD y 년도 2023 M 월(1~1.. 2023. 2. 2.
[자바] Calendar Calendar Calendar는 추상 클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스터스를 얻어야 한다. getInstance()는 시스템의 국가와 지역 설정을 확인해서 태국을 제외하고는 GregorianCalendar의 인스턴스를 반환한다. (태국의 경우 BuddhistCalendar 인스턴스 반환) GregorianCalendar는 Calendar를 상속받아 오늘날 전섹 공통으로 사용하고 있는 그레고리력에 맞게 구현한 것이다. 인스턴스를 직접 생성해서 사용하지 않고 메서드를 통해서 인스턴스를 반환받게 하는 이유는 최소한의 변경으로 프로그램이 동작할 수 있도록 하기 위해서이다. public class CalendarEx1 { public static voi.. 2023. 2. 2.
[자바] 사용자 정의 예외 만들기 안드로이드와 연동되는 API를 만들어 준적이 있는데, 이 때 호출 URL 마다 고객사에서 정해준 에러 메세지와 에러 코드를 던져줘야 했다. 꼭 자바에서 제공되는 Exception 이 아닌 사용자정의 Exception을 던져줘야 할 때가 있다. 아래 소스는 간단히 만들어 본 샘플 사용자 정의 예외 만들기 소스이다. class CustomException { public static void main(String[] args) { try { join(); } catch (JoinException me) { me.printStackTrace(); System.out.println(me.getMessage()); System.out.println(me.getErrCode()); } } static void jo.. 2023. 2. 1.
[자바] default method 와 static method JDK 1.8 이전에는 인터페이스에 추상 메서드만 사용할 수 있었다. 하지만, JDK 1.8 이후부터는 default 메서드와 static 메서드도 추가할 수 있게 되었다. 디폴트 메서드 인터페이스를 implements 하는 모든 클래스들은 모든 메서드를 구현해야 한다. 모든 메서드를 구현하는 것도 엄청 일이지만, 만약 인터페이스가 수정되거나 추가된다면 해당 인터페이스를 implements 하는 모든 클래스들도 수정되어야 한다. 이러한 문제점을 유연하게 해결하기 위해 default method 가 추가되었다. default 메소드의 가장 일반적인 사용 목적은 구현 클래스를 파괴하지 않은채로 점진적으로 추가적인 기능을 제공한다는 것에 있다. 즉, 기존의 추상 메소드에 기능을 덧붙이는 목적으로 사용할 수 있.. 2023. 2. 1.
[자바] 4. 배열 리스트 4. 배열 리스트 1) 배열은 한 번 생성하면 절대로 길이를 변경할 수 없다. 이 때 java.util 패키지의 ArrayList 클래스를 사용하면 이 문제를 해결 할 수 있다. ArrayList 객체는 내부에서 배열을 관리한다. 배열이 너무 작아지거나 배열의 공간이 많이 남으면, 다른 내부 배열을 자동으로 생성해서 원본 배열의 요소를 옮긴다. 이 과정은 개발자에게는 보이지 않게 진행된다. 2) ArrayList 제네릭 클래스(타입 파라미터를 받는 클래스) ArrayList list = new ArrayList(); //new ArrayList(); 부분이 비어있는데, 컴파일러는 변수의 타입으로부터 타입 파라미터를 추론한다. 호출 인자가 없지만, 그래도 끝 부분에 ()를 붙여야 한다. 결과는 크기가 0인.. 2022. 1. 15.
[자바] 3. 문자열 3. 문자열 3.1. 문자열 연결 1) 문자열 + 숫자 String str = "65"; int num = 25; System.out.println(str + num); 결과값은 65+25 = 90이 아닌, 6525가 출력된다. 덧셈 연산자는 두 개의 피연산자 중 하나라도 String이면, 결과는 String이다. 2) 문자+숫자 char ch = 'A'; int num = 3; System.our.pintln(ch + num); 결과값은 68이 출력된다. 자바는 유니코드를 사용하지만, 유니코드의 앞 부분이 아스키코드와 호환되기 때문에 'A' 등의 영문자는 아스키 코드와 번호가 같다. byte보다 int인 1이 더 크기 때문에 byte를 int로 형변환 한 후 저장하는데, 알파벳 대문자 'A'를 숫자로 .. 2022. 1. 13.
[자바] 1. 기본 프로그래밍 구조 1. Hello World package ch01.sec01; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } 1.1. 함수와 메서드의 차이 1) 함수(function) : 어떠한 기능을 수행, 전역과 지역에 상관없이 독립된 기능을 수행한다. 2) 메서드(mothod) : 함수처럼 어떠한 기능을 수행하지만, 함수와의 차이가 있다면 메서드는 클래스 및 객체와 연관되어 있다. 클래스 내에 선언되어 있는 함수가 메서드이다. 결론 : 함수가 메서드보다 더 큰 개념으로 메소드는 함수에 속한다고 할 수 있지만, 함수와 메서드는 다르다. ex) 함수는 sum(), abs().. 2022. 1. 11.
반응형