Java 46

Java | enum (열거형) 활용하기

Enum은 클래스처럼 사용 가능한 상수 집합이다. 특징 - 정수값만 사용 가능한 C++과 달리(Do=1, Re=2, Mi=3), Java의 Enum은 문자열, 함수(Java 8 이상)도 사용 가능 - 나열할 수 있는 값들의 수는 제한이 없다. - 클래스처럼 사용 가능하다. (필드, 메소드, 생성자 정의 가능) - name에 띄어쓰기는 안 된다 (STARWARS - O, STAR WARS - X) 용도 1. 허용 가능한 값 제한 (국가명, 혈액형 등) 2. 공통 상수로 활용 (경로, 사이즈 등) 기본적인 사용 예 enum ESeason { SPRING, SUMMER, FALL, WINTER } public class EnumBasic { public static void main(String[] args)..

개발_웹/Java 2019.05.10

Java | 접두사와 접미사로 진수, 타입 표현하기

접두사 접두사를 사용하여 8진수(0), 16진수(0x), 2진수(0b)를 표현할 수 있다. int num = 10; int num1 = 010; // 8 (8진수) int num2 = 0x11; // 17 (16진수) int num3 = 0b0011; // 3 (2진수) 접미사 정수 리터럴은 기본적으로 int 형을 표현하므로, long이나 float과 같은 타입을 명시하기 위해서는 접미사를 사용한다. 예를 들어, long a = 3000000000;과 같은 경우 정수(int)로 잡히게 되는데, int는 약 22억까지 표현 가능하므로 범위 밖의 수가 되어버린다. 이를 long 타입으로 만들고 싶으면 long a = 3000000000L; 과 같이 접미사 L을 써주면 long 변수로 잡히게 한다. long ..

개발_웹/Java 2019.05.10

Java | 오버라이딩 (overriding, 재정의)

메소드 오버라이딩 (재정의) 슈퍼 클래스의 메소드를 재정의 하는 것. 슈퍼 클래스의 메소드를 무시하고 서브 클래스에서 오버라이딩된 메소드가 무조건 실행되도록 동적으로 바인딩(binding) 된다. 오버라이딩의 조건 1. 슈퍼 클래스의 메소드와 완전히 동일한 메소드를 재정의한다. (이름, 리턴타입, 파라미터) 2. 슈퍼 클래스의 접근 지정자보다 접근의 범위가 좁아질 수 없다. (부모 default -> 자식 default, protected, public 가능) 3. static, private, final로 선언된 메소드는 오버라이딩 할 수 없다. * 오버라이딩 된 메소드에서 슈퍼클래스의 메소드를 호출하려면 super를 사용한다. @Override func() { super.func(); }

개발_웹/Java 2019.05.10

Java | this, super / this(), super()

1. this 현재 객체의 주소(레퍼런스). 현재 객체 내의 멤버에 접근한다. 2. super 현재 객체의 슈퍼 클래스 영역의 주소. 슈퍼클래스의 멤버에 접근한다. 오버라이딩 된 메소드는 동적 바인딩되어 서브클래스의 메소드를 호출하므로, 슈퍼클래스의 메소드를 호출하려면 super 키워드를 사용해야 한다. 오버라이딩 시, 기존 부모클래스의 메소드 기능은 유지하되 기능을 추가하고 싶을 때 사용 func() { super.func(); // 부모 메소드의 기능 유지 // 자식만의 코드 } 3. this() - 생성자에서 동일한 클래스 내의 다른 생성자를 호출 시 사용. - 생성자 코드에서만 사용 가능하며, 생성자 코드의 첫 번째 문장에 쓰여야 함 public class Memo { String title; D..

개발_웹/Java 2019.05.09

Java | 예외 처리 (try-catch, throw, throws)

try-catch문 프로그램의 실행 중에 비정상적인 상황이 발생할 경우에는 실행이 중지되고, Exception 객체나 Error 객체가 생성됩니다. try-catch문은 예외(non runtime exception)가 발생할 수 있는 코드를 처리해주는 문법입니다. * catch 문은 여러개 쓸 수 있고, Java7부터 | 연산자로 여러 개의 예외를 괄호안에 넣을 수 있습니다. throws Exception 이 메소드에서 Exception이 발생하면 상위 메소드로 던집니다. throw 에러를 생성하여 catch로 던집니다. catch throw가 던진 에러를 받아 처리합니다. 여기서 throw하면 throws를 통해 상위 메소드로 넘깁니다.

개발_웹/Java 2019.05.09

Java | for-each 반복문

for-each 문 JDK 5.0 버전부터는 향상된 for 문(for-each 문)을 지원하고 있습니다. for (변수타입 변수이름 : 배열이름) { // 작업 } for-each 문 에서는 배열의 항목 수만큼 실행부분을 반복하는데 반복이 이루어질 때마다 배열의 항목을 순서대로 꺼내어 변수(number) 에 자동으로 대입해 줍니다. 따로 반복 변수(int i) 를 선언하거나 배열의 값을 가져오는 부분(array[i]) 없이 실행부분에서는 하고자 하는 작업에 집중할 수 있습니다. 자바 for each 문을 사용할 때 주의해야 할 점은 오직 배열의 값을 가져다 사용(read)할 수만 있고 수정(write)할 수 는 없다는 것 입니다. public class ForTest { public static void..

개발_웹/Java 2019.05.09

Java | 날짜, 시간 (currentTimeMillis(), SimpleDateFormat)

currentTimeMillis() 현재 시간을 구하는 메소드. currentTimeMillis()의 리턴형은 long 값이며, 1/1000초의 값을 리턴한다. 이 메서드를 통하여, 현재 시간을 계산 할 수 있고, 프로그램의 실행 시간 또한 나타낼 수 있다. public class trunc_tweet_tag { public static void main(String[] args) { long time = System.currentTimeMillis(); SimpleDateFormat dayTime = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss"); String str = dayTime.format(new Date(time)); System.out.println(str);..

개발_웹/Java 2019.05.09

Java | 객체(Object) ↔ XML (simple 프레임워크를 이용한 xml 변환)

Simple XML 직렬화처리 및 설정을 해주는 고성능 프레임워크 (http://simple.sourceforge.net/home.php) 1. porm.xml - simple framework 디펜던시 추가 org.simpleframework simple-xml 2.7.1 2. 디스패처 서블릿 (..컨트롤러, 도메인 빈 등록밖에 없음. 생략) 3. 도메인A @Root @Component public class User { @Element private int no; @Element private String id; @Element private String pw; @Element private String name; @Element private String address; (..이하 생성자, gett..

개발_웹/Java 2017.11.01

Java | 객체(Object) ↔ XML (spring oxm, jaxb를 이용한 xml 변환)

Spring oxm과 JAXB를 이용한 객체 ↔ XML 변환 1. porm.xml (Maven dependency 추가) 1) spring oxm - 'spring xml' 검색 - 'Spring Object/XML Marshalling' 선택 - 4.3.4 버전 2) jaxb - jaxb 검색 - Java Architecture For XML Binding » 2.2.12 2. dispatcherServlet - xml 파일의 Namespace 탭에서 p와 oxm 체크 (STS 플러그인 설치해야 보임) - (근데 회사 eclipse Luna 버전에서 Namespaces 탭이 안보이는 것 같은데? (STS는 설치되어있음)) - (STS 버전이 잘못된건가해서 Luna용 STS를 깔려고 했는데 안깔아짐) -..

개발_웹/Java 2017.10.31

Java | 객체(Object) ↔ XML (JAXB, Simple Framework)

자바 클래스(객체)를 XML로 표현하는 방법 1. JAXB (+spring oxm) 2. simpleFramework JAXB(Java Architecture for XML Binding) 기능 - 직렬화 (자바객체 -> XML) - 역직렬화 (XML -> 자바객체) Spring oxm(Object/XML Mapper) Object/XML 매핑이란 XML 문서를 객체로 변환하거나 객체를 XML로 변환하는 행위를 말한다. O/X 매핑분야에서는 marshaller가 객체(그래프)를 XML로 직렬화하는 책임을 진다. 유사한 방법으로 unmarshaller가 XML을 객체 그래프로 역직렬화한다. O/X 매핑이 필요한 곳에 스프링을 사용하는 이점이 몇가지 있다. 쉬운 설정 스프링의 빈 팩토리는 JAXB 컨텍스트,..

개발_웹/Java 2017.10.31