Java

Java 배열로 큐(Queue) 구현하기 Java의 배열을 이용하여 큐(Queue)를 구현하는 방법에 대해 알아보겠습니다. 1. 큐(Queue) 큐는 먼저 들어간 데이터가 먼저 나오는선입선출(FIFO: First In First Out)의 자료구조이며, 대기열 이라고도 합니다. (Queue라는 단어 자체가 표를 구매하기 위해 일렬로 늘어선 줄을 의미합니다.) 데이터가 삽입되는 위치는 Rear 또는 Back 이라고 하며 가장 뒤에 있고, 데이터가 추출되는 위치는 Front라고 하며 가장 앞에 있습니다. 큐는 일반적으로 데이터가 입력된 순서대로 처리되어야 할 경우에 사용합니다. 큐의 variation 으로는 우선순위 큐, 원형 큐, 데크(deque) 등이 존재하며 일반적으로 입력은 enqueue, 출력은 d..
Java 배열로 스택(Stack) 구현하기 Java의 배열을 이용하여 스택(Stack)을 구현하는 방법에 대해 알아보겠습니다. 1. 스택(Stack) 스택은 제한적으로 접근할 수 있는 나열된 구조입니다. 후입선출(LIFO: Last In First Out)의 자료구조이며, 접근이 목록의 끝(Top 또는 Top Pointer)에서만 일어나기 때문에 Pushdown List 라고도 합니다. 스택에서 입력은 push, 출력은 pop, Top 위치의 데이터 확인은 peek 를 사용합니다. 스택은 추상자료형(Abstract Data Type)으로 수학적 모델을 가졌으며 구현 방법을 따로 명시하고 있지 않다는 점에서 자료구조와 차이를 보입니다. 이러한 특징은 다양한 방법으로 구현될 수 있음을 의미합니다. 다음은 스..
스프링 프레임워크(Spring Framework) MyBatis와 MySQL의 설정 스프링 프레임워크와 MyBatis 연동 및 MySQL의 설정에 대해 알아보겠습니다. MyBatis는 Java Persistence Framework의 한 종류로 XML 또는 애너테이션을 통해 SQL문 또는 저장 프로시저로 객체들을 매핑해줍니다. MyBatis는 스프링을 이용한 개발 중 국내에서 가장 많이 쓰이는 형태로 SQL 처리에 대한 개발 생산성을 높이는 형태로 사용됩니다. ※ 퍼시스턴스 프레임워크(Persistence Framework)데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합입니다. JDBC의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 ..
스프링 프레임워크(Spring Framework) 개발 환경 설정하기 스프링 개발에서 가장 많이 사용하는 통합 개발도구는 Eclipse 기반으로 개발된 Spring Tool Suite(STS)를 이용하거나, Intellij 또는 Eclipse 플러그인의 형태로 사용하는 경우가 많습니다. 일반적으로 STS를 이용하여 진행되며 이를 사용하기 위해 사전에 JDK의 설치가 필요합니다. 개발 환경 구성을 위해서 다음의 프로그램을 각각의 버전에 맞춰서 설치를 해줘야합니다. (각 프로그램의 버전은 설치 당시의 버전을 기준으로 작성했습니다.) IDE - Eclipse IDE for Java EE Developers (2018-09 Window 64bit) Java - JDK 1.8.0_202 (JDK 1.6 이상 권장..
인터페이스 인터페이스(interface)는 일종의 추상클래스이며 추상클래스보다 추상화 정도가 더 높습니다. 추상클래스를 미완성 설계도로 비유한다면 인터페이스는 기본 설계도에 비유할 수 있습니다. 인터페이스는 다른 클래스 작성에 도움을 주거나 서로 무관한 클래스들에게 관계를 맺어줄 목적으로 사용됩니다. 인터페이스의 특징을 정리하면 다음과 같습니다. - class 키워드 대신 interface 키워드를 사용하여 정의- 인스턴스 생성 불가- 모든 멤버변수에는 public static final 제어자가 붙음 (생략 가능)- 모든 메서드는 public abstract 제어자가 붙음 (생략 가능) ※ 제어자 생략시 컴파일러가 자동으로 추가. 1.1 인터페이스의 생성 다음과 같이 class 키워드 대신 interf..
추상클래스 추상클래스(abstract class)는 미완성 설계도로 비유할 수 있는 구체화되지 않은 클래스입니다. 미완성의 추상 메서드를 포함하고 있으며, 반드시 상속을 통해 완성한 후 사용할 수 있습니다. 따라서 추상클래스 자체로는 인스턴스 생성이 불가능합니다. 추상클래스는 추상메서드 외에도 일반적인 멤버변수와 메서드, 생성자도 포함합니다. 추상클래스의 특징을 정리하면 다음과 같습니다. - 클래스 앞에 abstract 키워드를 붙여서 정의- 인스턴스 생성 불가- 추상 메서드를 포함 (그 외 멤버변수, 메서드, 생성자도 포함 가능) 다음과 같이 클래스 앞에 abstract 키워드를 붙여서 추상클래스를 생성합니다. abstract class [클래스명] {// 클래스 내용} ※ 추상메서드가 없어도 클래스에..
다형성 다형성(polymorphism)는 상속과 함께 객체지향에서 중요한 요소 중 하나입니다. 다형성이란 여러 형태를 가질 수 있는 특성을 의미하며 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 구현한 기능입니다. 다음 예제를 통해 다형성에 대해 확인해보겠습니다. class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv { String text; void caption() {}; }위의 코드를 기준으로 다음과 같이 인스턴스를 생성하여 참조할 수..
package & import 1. package 패키지(package)는 서로 관련된 클래스나 인터페이스를 그룹 단위로 묶은 것을 의미합니다. 또한 우리가 사용하는 클래스의 전체 이름(full name)은 패키지명까지 포함된 이름입니다. 패키지는 다음과 같이 작성하여 사용합니다. package 패키지명; 패키지의 특징을 정리하면 다음과 같습니다. - 많은 소스파일을 효율적으로 관리하기 위해 사용. - 모든 클래스는 반드시 하나의 패키지에 속해야 함. - 하나의 소스 파일에서 첫 문장으로 하나의 패키지 선언만 허용. - 물리적인 디렉터리이며 '.'을 구분자로 사용하는 계층구조. ※ 이름없는 패키지(unnamed package) 소스파일에 패키지를 지정하지 않을 경우 자바는 자동으로 이름없는 패키지에 해당..
super & super() 1. super super는 자식 클래스가 부모 클래스로부터 상속받은 멤버를 참조할 때 사용하는 참조 변수입니다. 클래스 내의 멤버변수와 지역변수의 이름이 같을 경우 구분을 위해 this를 사용하듯이 부모 클래스와 자식 클래스의 멤버의 이름이 같을 경우 super를 사용합니다. this와 super는 인스턴스의 주소값을 저장하는데 static 메서드(클래스 메서드)와는 무관하게 사용됩니다. 다음 예제 코드를 통해 super에 대해 확인해보겠습니다.class JavaApp { public static void main(String[] args) { Child child = new Child(); child.childMethod(); } } class Parent { int x ..
freestrokes
'Java' 태그의 글 목록 (2 Page)