전체 글86 [Java] 추상클래스와 인터페이스의 차이점 추상클래스 (Abstract Class) extends 추상 메서드를 하나 이상 가질 수 있는 클래스 즉, 특정 몇몇 메서드만 추상(Abstract) 메서드 추상 메서드를 상속받아 기능을 사용하고 확장시키는 데 목적이 있다. 자바에서는 다중 상속이 불가능하다. 인터페이스 (Interface) implement 모든 메서드가 추상 메서드인 클래스 가이드라인과 같은 역할을 하며 메서드 구현을 강제하는 데 목적이 있다. 변수를 쓰면 static final이 붙으면서 자동 상수화 다중 구현이 가능하다. 추상메서드 (Abstarct Method) 상속받은 클래스가 반드시 구현해야 하는 메서드 추상 클래스나 인터페이스를 통해 자동 오버라이드 2020. 2. 19. [Java] LIST/ SET/ MAP Collection 컬렉션 Array가 같은 타입의 여러 개의 값을 효과적으로 관리하기 위한 객체라면, Collection은 다른 타입이거나 같은 타입의 여러 개의 값을 효과적으로 관리하기 위한 객체이다. Array와 Collection 차이점 Array Collection 이름 배열 컬렉션 크기 고정된 길이 (정적 메모리 할당) 가변적인 길이 (동적 메모리 할당) 타입 같은 타입만 가능 다른 타입도 가능 Java Collection Framework (JCF) list set map 순서 O X X 중복 O X 키(Key) : X 값(Value) : O 구현 클래스 - ArrayList - LinkedList - Vector - Stack - HashSet - SortedSet - TreeSet - H.. 2020. 2. 19. [Java] public static void main(String[] args) { } public static void main(String[] args) { } public static void main(String[] args) { } public static void main(String[] args) { } 는 자바의 메인 메서드이다. 자바 애플리케이션 실행 시 가장 먼저 시작되는 지점이다. 따라서 프로그램의 주 진입점이라고 한다. public 접근제한자 언제 어디서든 접근, 참조가 가능하다. static static 영역에 만들어져서 class.method로 호출한다. (non-static : new 객체, 객체.method) void 리턴 타입이 없다. String[] args 해당 파라미터 받아서 내부에서 사용하기 위한 변수이다. String 배열을 args 라는 이름의 변수.. 2020. 2. 19. [Spring] 스프링 기초 Spring 스프링의 정의 스프링이란 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다. 프레임워크란 프로그램의 골격이 되는 기본 코드를 제공하고, 소프트웨어 개발을 간소화하기 위해 개발되었다. 개발자는 프레임워크를 기반으로 소스코드를 작성하여 소프트웨어를 완성시키면 된다. 또한 스프링은 EJB(Enterprise JavaBean)기반 개발에서 POJO(Plain Old Java Object) 기반 개발이 가능하게 해준다. 스프링의 특징 경량 컨테이너 스프링은 EJB와 같이 복잡한 순서를 거치지 않아도 간단하게 이용할 수 있다. 자바 객체를 직접 관리하며 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리한다. (만들어질 당시는 경량이지만 지금은 아니다.) DI (Dependency Injection, 의존.. 2020. 2. 10. [Java] 마이바티스 MyBatis 마이바티스 MyBatis 마이바티스란 자바의 데이터 베이스 프로그래밍을 좀 더 간편하게 할 수 있도록 도와주는 개발 프레임워크*이다. JDBC를 통해 데이터 베이스에 액세스 하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로시저 및 고급 매핑을 지원하여 모든 JDBC 코드 및 매개변수의 중복 작업을 제거한다. 프로그램 코드와 SQL 쿼리가 완전히 분리되어 코드가 간결해지고 유지보수성이 향상된다는 장점이 있다. * 개발 프레임 워크란 개발자가 원하는 기능 구현에만 집중하여 빠르게 개발할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것으로 라이브러리가 포함되어 있다. 개발자는 프레임 워크가 정의해 놓은 규칙을 준수하며 사용해야 한다. 마이바티스 사용하기 마이바티스를 사용하기 위해서는 JAR파일을 클래스.. 2019. 12. 25. [알고리즘/자바] 하노이의 탑 하노이의 탑 Towers of Hanoi 하노이의 탑이란 쌓아 놓은 원반을 최소한의 횟수로 옮기는 퍼즐의 일종이다. 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원반들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원반들이 작은 것이 위에 있도록 순서대로 쌓여 있다. 게임의 목적은 아래 조건을 만족시키면서, 한 기둥에 꽂힌 원반들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다. 한번에 하나의 원반만 이동이 가능하며, 최종적으로 모든 원반을 세 번째 기둥으로 옮겨야 한다. 작은 원반 위로 큰 원반을 이동할 수 없다. 가장 위의 원반만 이동할 수 있다. 2019. 12. 25. [알고리즘/자바] 재귀 알고리즘 분석 : 상향식 분석 2019. 12. 25. [알고리즘/자바] 재귀 알고리즘으로 유클리드 호제법 구현하기 유클리드 호제법 크기가 큰 두 수가 있을 때 최대 공약수를 빠르게 구하기 위해서 사용한다. 유클리드 호제법은 A를 B로 나눈 나머지가 C일 때, (A와 B의 최대 공약수) = (B와 C의 최대 공약수)라는 사실을 이용해서 처음에 구하려고 했던 숫자의 크기를 점점 줄여 간단하게 만든 다음 최대 공약수를 구하는 방법이다. 예를 들어, 48과 21의 최대 공약수를 구해본다면. 48/21 ••• 6 21/6 ••• 3 6/3 ••• 0 최대 공약수는 3이 된다. 유클리드 호제법 메서드 구현 static int ea(int x, int y) { if (y == 0){ return x; } else { return ea(y, x % y); } class EuclidGCD { static int ea(int x, i.. 2019. 12. 23. [알고리즘/자바] 재귀 알고리즘으로 팩토리얼 구하기 재귀 Recursive 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 한다. 프로그래밍에서는 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식으로 주어진 문제를 푸는 방법을 뜻한다. 재귀 호출이나 되부름이라고 불리기도 한다. 팩토리얼 factorial 팩토리얼을 구하는 문제를 풀어보기 전에 팩토리얼의 개념이 가물가물한 문돌이, 문순이들은 이 단락을 읽어보도록 하자. 팩토리얼의 정의 간단하게 말해 수를 단계적으로 곱한다는 것이다. 계승이라고도 한다. 사용 n! = 1 x (···) x n 예시 3! = 1 x 2 x 3 = 6 5! = 1 x 2 x 3 x 4 x 5 = 120 단, 0! 은 1로 약속한다. 팩토리얼을 이해하기 쉬운 링크 첨부 https://t.. 2019. 12. 23. 이전 1 2 3 4 5 ··· 10 다음