본문 바로가기

STUDY/Java

(17)
Java | 객체를 XML로 쉽게 변환하기 (JAXB, javax.xml) Object를 XML형식으로 빠르게 변환할 수 있다..! 1. 루트 클래스 선언 @XmlRootElement : 말그대로 루트 엘리먼트(최상위 요소)를 지정한다. 나중에 JAXBContext에 등록해주어야 함 @XmlAccessorType : 바인딩 시 필드 및 특성..(?) PUBLIC_MEMBER, FIELD, PROPERTY, NONE의 네 가지 속성이 있음 FIELD - 클래스의 모든 필드(static이 아니고 transient가 아닌)를 모두 XML에 바인딩 NONE - 어노테이션으로 지정하지 않는한 모든 필드는 XML에 바운딩되지 않는다. PROPERTY - getter/setter를 가진 모든 필드들은 자동으로 XML에 바운드된다. PUBLIC_MEMBER - 모든 public getter/..
Java | java 11 설치하기 *window기준 1. 오라클 홈페이지 접속 후 다운로드 본인 OS에 맞는 파일 선택하여 다운 www.oracle.com/java/technologies/javase-jdk11-downloads.html 2. 설치 진행 3. 환경변수 설정 4. 확인
Java | Primitive Types ( + Overflow/Underflow ) 기본타입(Primitive Type) 자바에서는 8가지의 기본 타입을 제공하며 이는 크게 정수형, 실수형, 문자형, 논리형으로 나뉘어집니다. *정수형 타입: 자바에서의 정수란 소수 부분이 없으며 부호를 가지는 숫자를 말함 Primitive Data Types 분류 type size 정수형 byte 1byte(8bits) short 2byte(16bits) int 4byte(32bits) long 8byte(64bits) 실수형 float 4byte(32bits) double 8byte(34bits) 문자형 char 2byte(16bits) 논리형 boolean 1byte(8bits) 1. boolean boolean타입은 true혹은 false 두 가지 값만 가질 수 있으며 1바이트의 크기를 차지합니다...
Java | 추상클래스(abstract class) / 인터페이스(Interface) 객체를 직접 생성할 수 있는 클래스는 실체 클래스라 하고, 이러한 클래스들의 공통적 특성을 추출해 선언한 클래스는 추상 클래스라고 합니다. 추상 클래스는 실체 클래스의 공통되는 필드와 메서드를 추출해서 만들기 때문에 객체를 직접 생성하지 못합니다. 즉, new연산자를 사용해 인스턴스를 생성하지 못합니다. 추상 클래스는 실체 클래스에 상속하기 위한 부모 클래스로 사용됩니다. 쉽게 말해 클래스 선언 시에 extends뒤에 오는 클래스입니다. 추상 클래스 선언 abstract키워드를 이용해 클래스를 작성합니다. 추상 클래스도 일반 클래스처럼 필드, 생성자, 메서드를 선언할 수 있습니다. 접근제어자 abstract class 추상클래스명 { } //예시 public abstract class Animal { }..
Java | 접근 제어자/접근 제한자 ( Access Modifier ) 자바에서는 객체 지향 프로그래밍(OOP)의 가장 큰 특징 중 하나인 캡슐화, 정보은닉(data hiding)을 위해 접근 제어자/접근 제한자(Access Modifier)를 제공합니다. 1. public public은 말 그대로 어디에서든 접근이 가능합니다. 같은 클래스, 부모클래스, 자식클래스 그리고 다른 패키지에서도 접근이 가능합니다. 2. default default는 기본값으로, 아무런 접근 제어자를 명시하지 않는 경우 자동으로 default가 적용됩니다. default는 같은 패키지에 존재하는 모든 멤버가 접근 가능합니다. (외부 패키지에서 접근 불가) 3. protected protected는 부모 클래스(parent class / super class)에 대해 public과 같은 효과를 발휘..
Java | 객체 지향 프로그래밍(OOP : Object Oriented Programming)의 주요 개념 1. 캡슐화(Encapsulation) 캡슐화란 객체의 필드(field)와 메서드(method)를 하나의 클래스로 묶는 것을 말합니다. 이를 통해 외부 객체로부터 필드와 메소드를 보호할 수 있으며 외부의 잘못된 사용으로 객체가 손상되지 않도록 합니다. 자바에서는 접근 제한자(Access Modifier)를 이용해 객체의 필드와 메소드의 사용 범위(접근 여부)를 제한합니다. 캡슐화는 프로그램의 구성요소를 분리하는 데 도움이 되며 개발, 디버깅 및 테스트가 용이해집니다. 2. 상속(Inheritance) 객체 지향 프로그래밍의 주요 특징 중 하나인 상속은 상위클래스(super class)의 필드와 메소드를 하위클래스(sub class)가 물려받아 새로운 클래스를 정의할 수 있는 것을 의미합니다. 상위클래스는..
Java | 컬렉션 프레임워크 Collection Framework ( List / Set / Map ) 컬렉션은 객체를 수집해서 저장하는 역할을, 프레임워크는 사용방법을 미리 정해놓은 라이브러리를 말합니다. 자바의 컬렉션 프레임워크는 인터페이스를 통해 다양한 컬렉션 클래스를 이용할 수 있도록 합니다. 컬렉션 프레임워크는 아래 그림과 같이 계층구조로 구성되어있습니다. Collection이라는 가장 상위 인터페이스를 상속받는 List, Set, Queue가 있으며, Map은 key와 value값을 하나의 쌍으로 묶어 관리하는 구조로 되어있기 때문에 Collection인터페이스와 별도로 정의됩니다. 1. List List는 객체를 일렬로 늘어놓은 구조를 가지고 있으며 객체를 인덱스로 관리하기 때문에 인덱스로 객체를 검색, 삭제할 수 있습니다. Collection인터페이스를 상속받기 때문에 Collection인터..
Java | 배열 오름차순 / 내림차순 정렬하기 ( Arrays.sort() ) Arrays는 java.util소속 클래스로 배열과 관련된 여러 메서드들이 포함되어 있습니다. ! 반드시 import 해주어야 사용할 수 있습니다. 기본적으로 sort() 메서드는 오름차순 정렬을 해줍니다. 내림차순 정렬을 하고싶다면? 내림차순 정렬을 하기 위해서는 int가 아니라 Integer배열로 변환해준 뒤 Collections혹은 Comparator의 reaverseOreder() 메서드를 이용해 내림차순 정렬을 해야 합니다. 그냥 int배열에는 reverseOrder()가 적용되지 않습니다. 만약 int배열로 다시 변환하고 싶다면 mapToInt를 이용해 다시 한 번 변환해줄 수 있습니다. import java.util.Arrays; import java.util.Collections; //im..