본문 바로가기
[Java] 표준 API #1 - API 소개, Object(lang), Objects(util) [API]- Application Programming Interface- 자바 어플리케이션 프로그래밍에 있어서 필요한 꾸러미들을 제공해줌- 라이브러리- 맥 기준 : /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/rt.jar 포함- API 문서 : http://docs.oracle.com/javase/8/docs/api/ [API 패키지]1) java.lang : 문법 뿌리- 기본적인 클래스 패키지- Object : 클래스의 최상위 클래스- System : jvm, 표준입출력, 가비지컬렉터- Class : 리플렉션- String- StringBuffer, StringBuilder : 문자열 조작- Math : 수학 관련-.. 2017. 10. 1.
[자료구조 알고리즘] 큐 - ADT, Array/Circular/LinkedQueue 구현 [큐]- FIFO : 첫번째로 들어온 데이터가 첫번째로 나감 - 데이터 저장 입구와 출구가 각각 나뉨- 예시 : 매표소, 맛집 줄 등 [큐 ADT]1) isEmpty : 큐가 비었는지 확인2) enQueue : 큐에 데이터 저장3) deQueue : 큐에서 데이터 빼기(삭제)4) qPeek : 첫번째로 저장된 데이터 조회 [큐 구현]- Array, Linked(노드 간 연결)로 구현 1) ArrayQueue- 고정적인 크기 - 내부적으로는 index로 제어- 1열 형태 + 고정적인 크기 : 입구는 막혔고, 출구는 조금씩 입구와 가까워질 때 데이터가 지워진 공간이 메모리 낭비 => CircularQueue 구현이유 2) CircularQueue- Array를 사용- ArrayQueue의 한계점을 극복하기위.. 2017. 9. 29.
[Java] 예외처리 - 예외란, 예외처리, 사용자정의예외, java7 예외처리 [예외]1) 사용자의 잘못된 조작 2) 개발자의 잘못된 코딩 - 위 2가지 이유로 인해서 발생하는 오류를 예외(exception)라 함, jvm 불능되는 오류를 에러라 함 - 예외가 발생하면 응용프로그램이 종료됨 - 아래는 예외의 종류 1) 일반 예외 : 컴파일 과정에서 체크되는 예외, 코드 상(컴파일 과정에서 처리)에서 발생하는 예외 2) 실행 예외 : 컴파일 과정에서 체크되지않는 예외, 런타임 떄 발생하는 예외 3) 어플리케이션 예외 : 사용자정의 예외(1, 2번 중 하나에 속해짐), 아래에서 어떻게 만드는지 설명 - 자바는 예외를 객체로 관리함 : 예외 발생 시 예외 객체 생성(최상위 : java.lang.Exception) 1) 일반 예외 : Exception 상속, RuntimeException.. 2017. 9. 29.
[Java] 인터페이스 그리고 OOP 다형성 [인터페이스]1) 객체간의 상호작용 요청 목록, "인터페이스를 구현하는 객체는 이런 책임들을 진다"는 목록2) 이런 것을 할 수 있어 그러니 요청해(인터페이스) 목록- 이름 표준화- 내부만 변경하면 됨 : 구현부만 변경- 자료구조에서 표준 타입으로 관리할 수 있음 3) 인터페이스와 implements 클래스 == 다형성- 객체 다형성 : 다양한 역할을 할 수 있음, 손님인 동시에 바리스타도 될 수 있음- 메서드 다형성 : 구현객체에 따라 메서드 동작은 다양함, 선언부는 같지만- 필드 다형성 : 표준화된 타입(interface)로 선언, 참조하는 구현객체에 따라 실행 결과 다양- 매개변수 다형성 : 표준화된 타입(interface)로 선언, 인자 구현객체에 따라 실행 결과 다양=> 자동형변환됨, 자동형변환.. 2017. 9. 26.
[Java] JDBC와 RDBMS 개념 이야기 [DBMS의 등장]- 데이터베이스 관리 시스템이 등장하기 전 데이터 관리를 위해 어플리케이션에서 직접 File I/O를 작성함 - 어플리케이션과 데이터베이스 관리 프로그램을 따로 두기 시작함 : 데이터 관리 전용 프로그램 - Database Management System [SQL과 (R)DBMS]- 어플리케이션과 DBMS 간의 통신 내용(데이터 요청) : 어플리케이션에서 File I/O를 구현하지않고도 데이터를 입/출력을 할 수 있게됨 - SQL : 여러 DBMS(그 중 RDBMS)가 생겨났으니 표준화된 소통 방법이 있어야했음 - Structured Query Language [DBMS 접근 API와 JDBC]- sql이 DBMS에 저장된 데이터를 요청하는데에 사용된다면, 두 프로그램 간의 통신을 하기.. 2017. 9. 25.
[Java] 객체지향과 상속#2 - 자바 다형성 구현과 상속 [다형성과 상속](1) 다형성과 상속(extends, implements, Override)- 우선 다형성이란? : 하나의 타입이 여러 형태로 동작할 수 있다는 성질, OOP의 특징, 객체는 각각 고유한 성질을 가진다- 다형성은 어떻게 프로그래밍에서 나타나나?1) 객체타입에서의 다형성 : 여러 역할을 가질 수 있음- extends, implements 사용- A 카페에서는 손님, B 카페에서는 바리스타 2) 메서드의 다형성 : 같은 타입을 구현하는 객체타입이지만 각각 다르게 동작할 수 있음- 같은 Tire를 상속하고 Tire의 roll 메서드를 오버라이딩하지만 HankookTire, KumhoTire는 각각 다른 내부동작(성능)을 가짐- 같은 객체 타입에서 파생됐지만 각각의 특성을 가짐 - 자바 synt.. 2017. 9. 24.
[Java] 객체지향과 상속 #1 - 상속이란? [상속 기본개념] (1) 상속이란? 객체 관계를 중심으로 설명- 객체 간의 관계를 설정하는 것 : 여러 관계가 있지만 서로 속하는 관계로 설정함- 서로 속한다 : 상위와 하위(파생, 포함)관계로 설정하는 것을 말함- 예 : 타이어 > 한국타이어, 금호타이어 (2) 상속을 구체화한 자바 문법 : extends(class), implements(interface), Override(3) 상속 범위- private를 제외한 접근제어자 (4) extends를 사용해보자public class Account { /* private field */ private String account_num; private int money; /* public field */ public Account() { this.accou.. 2017. 9. 24.
[자료구조, 알고리즘] 스택 - Array, Linked 기반 구현(설명, 구현 수정함) [Stack]1) 구현 기반만 다를 뿐 같은 스택을 구현하는 것이기 때문에 Stack 인터페이스 생성해두고 상속 - ArrayStack - LinkedListStack 2) 인터페이스 public interface Stack { public boolean isEmpty(); public void push(Object data); public Object pop(); public Object peek() throws Exception;} [도구가 되는 자료구조] (1) 배열 (2) 연결리스트 - 배열과 연결리스트는 자체만으로도 좋은 자료구조이지만 다른 자료구조를 구성하는데에 있어서 도구가 되는 자료구조 [Array Stack](1) 스택 생성 : N의 크기로 생성, 현재는 비어있음 N개가 그럼 그걸 체크하.. 2017. 9. 22.
[Java] 어노테이션 - xml을 벗어나자 [어노테이션](1) 사전정의로는 주석이지만 자바에서는 주석 이상의 역할을 함 (2) 메타데이터 역할 - 컴파일, 런타임에서 어노테이션이 붙은 코드에 대해서 어떻게 처리할지 정보를 줌 - 사전에 세팅시키는 데이터와 로직을 분리시킬 수 있음 - 리스너 연결 같은 류의 중복되는 코드를 줄일 수 있음 - 활용 예제 그리고 써보면서 어노테이션에 대해서 더 알아보겠음 (3) 어노테이션 종류 1) 기본 제공 어노테이션 - @Override : 슈퍼 타입의 메서드를 오버라이딩할 때 기본적으로 세팅되며, 컴파일러가 정확하게 오버라이딩 됐는지 체크함 - @SuppressWarnings : 실행에는 문제없지만 컴파일 과정에서 뿜는 메세지를 보기 싫을 때 어노테이션 처리해두면 안뿜음 - @Deprecated : 더 나은 대안.. 2017. 9. 21.
[Java] 클래스 - 객체지향, static, instance, 접근제어자, 싱글턴 등 [객체지향과 클래스] : 조금 더 자세한 내용(http://jinbroing.tistory.com/207) (1) 객체 - 어떠한 기능을 만들기위해 필요한 존재 - 각각의 존재가 구분되고 고유의 상태와 행동을 가짐 : 독립적인 존재, 공용 인터페이스로만 요청이 가능 => 접근제어자 사용 : private, protected, public - 본질은 타 객체와 협력하는 존재(협력 요청 방법) : 객체.요청인터페이스() - 요청에 응해서 결과값을 줄 것인지는 응답 객체에 달림(캡슐화) - 타 객체가 협력 요청을 할 수 있도록 요청 인터페이스를 가지고 있음 (2) 객체지향 프로그래밍(OOP) : 객체들의 협력 관점에서 프로그래밍 하는 것 - 사용 : A 객체가 B 객체를 사용함, 사람과 자동차 - 집합 : 완.. 2017. 9. 19.