본문 바로가기
반응형

DEV/Java28

[자바] ChoiceFormat 특정 범위에 속하는 값을 문자열로 변환해준다. import java.text.ChoiceFormat; public class ChiceFormatEx1 { public static void main(String[] args) { double[] limits = {50, 60, 70, 80, 90}; //낮은값->큰값, 오름차순 String[] grades = {"F", "D", "C", "B", "A"}; //경계값에 정의된 범위의 개수와 일치해야 됨 int[] scores = {100, 60, 45, 95, 88, 70, 52, 60, 30, 70}; ChoiceFormat form = new ChoiceFormat(limits, grades); for(int score : scores) { Syste.. 2023. 2. 2.
[자바] 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.
[자바] 형식화 클래스 형식화 클래스는 java.text 패키지에 포함되어 있으며 숫자, 날짜, 텍스트 데이터를 일정한 형식에 맞게 표현할 수 있는 방법을 객체지향적으로 설계하여 표준화하였다. import java.text.DecimalFormat; public class DeciamlFormatEx1 { public static void main(String[] args) { double number = 1234567.89; System.out.println(new DecimalFormat("0").format(number)); //10진수 System.out.println(new DecimalFormat("#").format(number)); //10진수 System.out.println(new DecimalFormat(".. 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.
[자바] 2. 자료형 & 연산자 1. 기본 자료형과 참조 자료형 1.1. 기본 자료형 기본 자료형은 사용하는 메모리가 정해져있는 자료형이다. - 컴퓨터에서는 모든 문자에 번호를 할당하고 문자를 정수로 바꿔서 저장한다. - 문자에 어떤 번호를 할당하는지는 다양한 방법이 있는데, 자바는 유니코드라는 세계 표준 규격을 따른다. - 유니코드의 경우 국제적으로 사용되는 모든 문자를 0 ~ 65,535 범위(2 바이트)의 정수에 할당한다. 1) 실수형 - 실수형의 유효 자리는 소수점 아래의 숫자를 의미 - float, double 을 사용하다보면 연산이 부정확한 경우가 종종 있는데 유효자리수를 넘어가는 경우이다. * 만약 금융 계산을 할 때, 정확한 부동소수점을 표시하고 연산해야 된다면 BigDecimal, BigInteger 클래스를 활용한다... 2022. 1. 13.
반응형