즐겁게!! 자신있게!! 살아보세!!

재밌는 인생을 위하여! 영촤!

Language_Study/JAVA 25

[JAVA, App] 14.기본API클래스

Properties Key 와 Value를 쌍으로 저장하는 자료구조 Map 은 모든 자료형을 사용할 수 있지만 Properties는 Key 와 Value 모두 String 만 가능 자료형이 결정되어 있어서 앞에 나온 자료구조 들과 다르게 Generics을 이용하지 않습니다. 환경설정을 xml 이나 텍스트 파일에 작성해두고 그 내용을 읽어서 프로그램에 적용하고자 하는 용도로 많이 사용 Spring 같은 프레임워크에서는 메시지 출력 등에 이용됩니다. 1.주요 메소드 String setProperty(String key, String value): 프로퍼티 저장 String getProperty(String key): key에 해당하는 프로퍼티를 가져옵니다. void store(OutputStream stre..

Language_Study/JAVA 2020.12.27

[JAVA, App] 13.Framework

List 데이터를 순서대로 저장하는 자료구조 자료구조에서는 배열을 Dense List 라고 하기도 합니다. 1.ArrayList(Vector 는 ArrayList의 Legacy 버전) 데이터를 물리적으로 연속해서 저장하는 List 크기 변경이 가능 제너릭이 구현(인스턴스를 만들 때 데이터 1개의 자료형을 확정을 해야 합니다.) 인스턴스를 만들 때 자료형을 확정하지 않으면 경고가 발생하고 데이터를 가져올 때 Object 타입으로 리턴되서 사용을 하고자 하면 강제 형 변환을 해야 합니다. Linked List 에 비해서 메모리 낭비가 적고 접근 속도가 빠릅니다. Linked List 에 비해서 데이터를 중간에 삽입하거나 삭제하는 경우 속도가 느립니다. Linked List는 논리적으로 연속해서 데이터를 저장..

Language_Study/JAVA 2020.12.25

[JAVA, App] 12.Interface

인터페이스 사용 1.인터페이스 final 상수와 추상 메소드 만을 가진 개체 최근에는 default method(구현된 메소드)를 소유 가능 다른 클래스에 implements 해서 사용, 다른 인터페이스에 extends 가능 2.사용 목적 다형성 구현을 위해서 템플릿 메소드 패턴을 구현하기 위해서 인터페이스에 메소드의 모형을 만들고 클래스서 구현하는 방식 클래스가 인터페이스를 implements 했다면 클래스에는 인터페이스의 메소드가 구현되어 있다는 보장을 할 수 있습니다. 추상메소드는 상속받은 곳에서 반드시 재정의 해야 합니다. 인터페이스를 다른 말로 부를 때 protocol 이라고도 합니다. 자료구조(Data Structure) 0개 이상의 데이터를 저장하는 방법 예전에는 각 자료구조의 특징을 숙지하..

Language_Study/JAVA 2020.12.25

[JAVA, App] 11.Package

java.lang 패키지 자바의 기본 패키지 이 패키지는 import 하지 않아도 패키지 이름을 생략 가능 1.Object 클래스 자바의 최상위 클래스 자바의 모든 클래스는 Object 클래스로부터 상속됨 이 클래스의 모든 속성이나 메소드는 다른 모든 클래스에서 사용 가능 이 클래스는 자바의 모든 클래스의 공통된 내용을 가지기 위해서 만들어진 클래스라서 인스턴스 생성은 하지 않습니다. Object clone(): 복제를 위한 메소드인데 재정의 해서 사용 boolean equals(Object obj): 인스턴스의 내용을 비교하기 위한 메소드로 재정의해서 사용 == : 참조형의 경우 참조가 같은지 비교 equals: 참조형에서 내부 데이터가 같은지 비교 int hashCode(): 인스턴스의 해시코드(참조..

Language_Study/JAVA 2020.12.25

[JAVA, App] 10.예외처리

예외처리 1.에러 1) 물리적 오류(컴파일 오류): 문법적으로 맞지 않는 문장을 만들어서 컴파일이나 실행이 되지 않는 현상 이클립스에서는 빨간색 에러를 표시해줍니다. 반드시 수정을 해서 실행을 시켜야 합니다. 2) 논리적 오류: 문법적으로는 잘못된 것이 없어서 실행이 되는데 실행 결과가 이상하게 나오는 현상 에러가 아니기 때문에 코드 상에는 찾기가 어렵고 메모리 값을 확인하기 위한 디버깅을 수행해서 오류를 수정 3) 예외(Exception): 문법적으로는 오류가 없어서 실행은 되지만 실행 중 특수한 상황이 발생하면 에러가 발생하는 현상 예외처리를 이용해서 잘못된 부분이 있으면 수정을 하고 그렇지 않으면 예외를 기록해서 프로그램을 종료하게 하거나 정상적으로 동작하도록 해주어야 합니다. 4) 단언(Asser..

Language_Study/JAVA 2020.12.25

[JAVA, App] 9.추상메소드

패키지 이름이나 클래스 이름을 변경하고자 할 때 직접 클릭해서 변경하는 것은 권장하지 않습니다. IDE에는 대부분 리팩토링 기능을 제공하는데 리팩토링 기능을 이용해서 변경을 하면 동일한 이름으로 만들어진 모든 것을 전부 변경해줍니다. Eclipse에서는 변경하고자 하는 패키지 이름이나 클래스 이름을 선택하고 마우스 오른쪽 클릭하고 [Refactor] - [Rename]을 선택하고 변경하고자 하는 이름을 입력 abstract(추상) 1) 추상 메소드 내용이 없는 메소드 다형성 구현을 위해서 하위 클래스에 오버라이딩 구현을 위해서 만든 메소드 Starcraft 라는 클래스의 attack 이라는 메소드는 없어도 실행상에는 아무런 문제가 없었지만 상위 클래스 자료형으로 만들어진 변수에 하위 클래스 자료형의 인스..

Language_Study/JAVA 2020.12.23

[JAVA, App] 8.상속

만들어진 클래스 이용 1.내가 원하는 기능을 가진 클래스를 찾기 2.내개 원하는 기능을 수행해주는 메소드를 찾기 static 인지 아닌지 확인: static 이라면 인스턴스를 생성할 필요가 없음 static이 아니라면 인스턴스를 생성해야 하므로 생성자를 다시 확인 메소드의 매개변수를 확인 매개변수는 메소드에게 일을 시킬 때 메소드가 사용할 데이터입니다. 필요한 데이터를 제공하지 않으면 메소드는 일을 하지 않거나 에러를 발생 return type을 확인 작업을 수행하고 어떤 결과를 돌려주는지 확인 package & import 1.package 관련있는 클래스의 모임 파일 시스템에서는 하나의 디렉토리 package가 배포 단위 클래스는 실행은 가능하지만 배포를 할 수 없습니다. 자바에서는 클래스들을 다른 ..

Language_Study/JAVA 2020.12.23

[JAVA, App] 7.클래스

객체 지향 프로그래밍(Object Oriented Programming - OOP) 1.객체 지향 특징 1) Encapsulation(캡슐화) : 관련있는 속성과 메소드를 묶는 것 클래스를 만드는 방법 2) Inheritance(상속성): 상위 클래스의 모든 것을 하위 클래스가 물려 받는 것 3) Polymorphism(다형성): 동일한 메시지에 대하여 다르게 반응하는 성질 동일한 코드가 호출하는 객체에 따라서 다른 메소드를 호출하는 것 2.객체 지향의 장점 코드의 재사용성이 뛰어남 3.객체 지향의 단점 함수형 프로그래밍 방식에 비해서 무겁다. 4.클래스와 인스턴스(객체 - 예전에는 Object) 최근에는 클래스도 오브젝트로 간주합니다. 클래스는 인스턴스들의 공통된 특징을 소유한 객체 클래스를 기반으로 ..

Language_Study/JAVA 2020.12.23

[JAVA, App] 6.검색

검색(search) 1.순차검색 데이터가 정렬되지 않았을 때 데이터를 앞에서부터 순서대로 검색 첫번째 데이터와 마지막 데이터의 검색 시간이 차이가 많이 나고 데이터가 없는 경우 전체 데이터를 확인해야만 없다는 사실을 알 수 있습니다. 2.제어검색 데이터가 정렬된 경우 사용하는 검색 방법 1) 이분 검색(Binary Search): 데이터의 중앙값과 비교해서 작으면 왼쪽 크면 오른쪽에 가서 다시 중앙값과 비교하는 방식 2) 피보나치 검색: 피보나치 수열의 값을 이용해서 검색 1,1,2,3,5,8,13...(첫번째 와 두번째는 1 세번째 부터는 앞쪽 2개 항의 합) 3) 보간 검색 검색 위치를 계산해서 검색 (검색값 - 최소값) / (최대값 - 최소값) 을 계산한 후 데이터 개수와 곱해서 찾는 방식 데이터의..

Language_Study/JAVA 2020.12.23

[JAVA, App] 5.데이터정렬

데이터 정렬 1.정렬의 구분 1) 오름차순(Ascending - 작은 것에서 큰 것 순으로 배치, 기본) 과 내림차순(Descending - 큰 것에서 작은 것 순으로 배치) 2) 알고리즘에 의한 분류 selection sort(선택정렬) : 교재에서 많이 설명, 정렬이 무엇인지 설명하고 제어문 학습하는 용도로 주로 이용, 실무에서느 거의 사용하지 않음 bubble sort insertion sort quick sort shell sort heap sort radix sort 등 면접이나 코딩 테스트에서는 quick sort를 많이 물어봅니다. 2.selection sort(선택 정렬) 20 30 40 50 10 : 정렬 되지 않은 상태 첫번째 위치부터 마지막 바로 앞 위치까지 자신의 뒤에 있는 모든 데..

Language_Study/JAVA 2020.12.23