글

라벨이 BigData 청년인재 프로그램(Java)인 게시물 표시

BigData 청년인재 프로그램(Java) - 15. 입출력

15. 입출력 6/30(금)Day05 <데이터 전송통로 종류> -Stream : 단방향 전송통로 -IO패키지 : 양방향 전송통로 <데이터 전송단위> -BinaryByte : InputStream추상클래스(입력), OutputStream추상클래스(출력) -StringByte : Reader추상클래스(입력), Writer추상클래스(출력) <파일종류> -그림파일 : 2진바이트 -> InputStream, OutPutStream -텍스트파일 : ANSI표준(ASCII코드,1바이트) or UTF-8표준(UNI코드,2바이트) ->Reader, Writer -1.문자 -> 2.인코딩 -> 3.바이너리-> 4.디코딩 ->문자 <1. 스트림 개념> -입출력장치와 프로그램간 데이터전송 통로, 연속된 데이터 흐름 <2. 바이트 단위 스트림> -바이트기반 파일 입출력(그림,코드,...) <3. 문자 단위 스트림> -문자기반 파일 입출력(문자) <4. 보조 스트림> -문자변환 보조 스트림 : 데이터와 스트림의 형태가 다를때 사용?? -성능 향상 보조 스트림 : 버퍼input, 버퍼output -기본 타입 보조 스트림 : 기본형 -> 바이트 스트림형태로 입출력 -객체 입출력 보조 스트림 : 객체 -> 바이트나 문자단위로 입출력 -> !!마셜링+언마셜링기술!! -직렬화가 가능한 클래스 = Serializable 인터페이스를 구현한 클래스 public class A implements Serializable { int a; int b; ...} #A클래스의 기본형, 객체(참조형)은 모두 직렬화가 가능해진다. #transient 키워드가 붙은 멤버변수나 멤버메소드??는 직렬화 전송 불가능??

BigData 청년인재 프로그램(Java) - 14. 컬렉션 프레임워크

이미지
14. 컬렉션 프레임워크 6/30(금)Day05 -Collection을 사용하는이유? 1.동일자료형의 묶음(배열과 공통점) 2. 메모리 크기 변경가능 (배열은 메모리 크기 변경불가)  3. 참조값만 변경하여 데이터 추가삭제가 쉬움 (배열은 모든 value의 index값을 변경해야함) -동일자료형의 집합이므로 !정렬!을 위하 Interface가 존재 -정렬은 Anonymous Class객체를 생성하여 사용한다.(항상 인터페이스를 상속받는것 비효율적) -정렬을 위해서 equals()과 hashcode()메소드 Override필요(값을 비교해야하기때문) <1. 컬렉션 프레임워크 소개> 1.1 컬렉션은 여러 객체 원소의 삽입/삭제를 지원하는 인터페이스 1.2 Set, List, Queue로 분류 1.3 Set은 중복허용x List와 Queue는 중복허용o, Map은 <Key,Value>를 원소로 인식 <2. List 컬렉션> -순차적으로 나열된 원소처리 -메서드 : add(index, element), get(i), isEmpty(), size(),  2.1 ArrayList : 배열로 처리(원소 index로 접근) 2.2 LinkedList : 배열을 객체로 저장(원소 next 참조값으로 접근) 2.3 Vector : 예전부터 존재하는 List?? <3. Set 컬렉션> -집합개념, 중복허용x, 순서개념x, index개념x -메서드 : add(element), contains(element), isEmpty(), size(), Iterator<E> iterator() <4. Map 컬렉션> -Key, Value쌍으로 저장, key는 중복x, value는 중복o -메서드 : put(key, value), get(key), isEmpty(), size(), #Set<K...

BigData 청년인재 프로그램(Java) - 13. 주요 API 활용

이미지
6/29(목)Day04 -API란?(Application Programming Interface) -응용 프로그램밍 인터페이스 응용프로그램에서 사용할수 있도록(이클립스에서 사용할수 있도록),  OS나 프로그래밍 언어가 제공하는 기능을(Java8.0이 제공하는 기능을)  제어할 수 있게 하는 인터페이스(쉽게 사용할 수 있도록 하는 Class모음) ex)System 클래스, println메소드, Object 클래스, String 클래스, StringBuffer클래스, Wrapper클래스 ... <1. Object 클래스> 1.1 Java언어의 최상위 클래스, 자동상속, 생성자모양 Object(){} 1.2 11개 메서드 존재 1.3 equals()메서드  - 참조변수(주소)를 비교, 반환값 boolean형 - ==연산자와 동일 -클래스비교->필드값비교 -String클래스의 equals()는 값을 비교하도록 재정의됨 - boolean result = obj1.equals(obj2); public boolean equals(Object obj) { if (this.hashcode() == obj.hashcode()) { return true; } else { return false; } } 1.4 toString()메서드 -필드값을 확인하는 용도로 사용한다.(Override 필수!) -클래스타입@해시코드 출력 toString() == getClass().getName() + "@" + Integer.toHexString(hashCode()); // 내부코드 -패키지이름.클래스타입@해시코드 -해시코드= 참조변수(주소)를 암호화(rsa알고리즘 사용)한것, 복호화 불가능, 16진수 -system.out.print(o) == system.ut.print(o.toStri...

BigData 청년인재 프로그램(Java) - 12. 예외처리

이미지
12. 예외처리 6/29(목)Day04 -예외처리가 중요한 이유 : 어떤이유로 에러가 발생하는지 이해해야 하므로 알아야한다. -에러발생한 내부정보를 감추기 위해 다른코드(system.out.print("~~에러가남"))를 수행 #Class Diagram : 직접 코딩하기 전에 먼저 설계하는 것이 매우 중요 -상속 vs 인터페이스의 차이? 1.상속 : 서브class 가 슈퍼class로 일반화 // 슈퍼class를 서브class로 구체화 2.인터페이스 : 실체class가 인터페이스의 spec(기능)을 실제기능으로 실체화 -의존 vs 연관의 차이? 3.의존 : A클래스가 B클래스의 참조를 매개변수나 지역변수로 가짐 ->참조값 유지x class A { public void func(B b) { b.print(); } } 4.연관 : A클래스가 B클래스의 참조를 필드로 가짐 ->참조값 유지o class A { private B b; public A() { this.b = new B(); b.print(); } } (의존하는 객체!의 참조값을 지역변수및 매개변수를 넘겨받음  vs 연관된 객채!의 참조값를 멤버로 가짐??) <1. 예외처리 개념> 1.1예외 vs 에러 -자바 프로그램 실행 중 발생하는 경미한 오류 vs 메모리나 내부의 심각한 문제 -사용자 잘못(복구가능) vs 개발자 잘못(복구불가능) 1.2예외의 종류 -비체크 예외(실행도중 오류) vs 체크 예외(컴파일 오류) -RuntimeException예외 vs RuntimeException을 제외한 모든 예외 -동적발생 vs 정적발생? -예외처리를 생략해도 컴파일 가능 vs 예외처리를 하지 않으면 컴파일 오류 발생 -예외처리는 옵션 vs 예외처리가 필수 <2. 예...

BigData 청년인재 프로그램(Java) - 11. 추상 클래스와 인터페이스

11. 추상 클래스와 인터페이스 6/28(수)Day03 -abstract는 불완전한것. 오직 상속대문에 사용, 선언만 존재하고 {}가없다, 재정의하여 사용 -상속의원칙(SOLID) 1 .  SRP (단일책임의 원칙: Single Responsibility Principle) : 1클래스 1기능->MVC(모델뷰컨트롤러) 2. O CP (개방폐쇄의 원칙: Open Close Principle) : 확장에개방, 변경에폐쇄 3.  LSP (리스코브 치환의 원칙: The Liskov Substitution Principle) : 서브->부모 치환가능 4.  ISP (인터페이스 분리의 원칙: Interface Segregation Principle) : 구체적인 인터페이스 구현 5.  DIP (의존성역전의 원칙: Dependency Inversion Principle) : 서브의변경->부모의변경강제하면x -형변환 : 자동형변환(자식->부모), 강제형변환(부모->자식, 조건부가능(instanceof연산값이 true)) <1. 추상 메서드> 1.1 메서드 몸체{}가 없는 abstract메서드 1.2 private과 final사용 불가능 why? abstract키워드는 상속과 관련有 1.3 추상클래스에서는 선언만->실체클래스에서 실행내용 작성(Override) <2. 추상 클래스> 2.1하나이상의 abstract메서드를 가진 클래스는 반드시 abstract class로 선언해야 컴파일 오류x 2.2 final사용 불가는 why? 반드시 (실체class가)상속해야 하는 class=abstract class 2.3 추상클래스 용도 : 추상클래스를 상속받는 실체클래스들이 공통된 필드(멤버변수)+메서드(멤버함수)규격을(내용이 아님) 갖도록 강제하기 위함 <3. 인터페이스> -Interface란?? 내부의 구...

BigData 청년인재 프로그램(Java) - 10. 객체지향 특징

10. 객체지향 특징 6/28(수)Day03 -4가지 특징 : 추상화(Class, interface), 캡슐화(public, private)  상속(extends,implements), 다형성(Override,Overload) <1. 캡슐화=Encapsulation> -데이터(필드)+행위(메서드) = 클래스 -실제 구현내부 은닉 -접근제한자(public)으로 속성과 메서드내부 접근 제한 <2. 상속성=Inheritance> 2.1 상속의 개념 -A is a B, A는 B를 상속받는다, class A extends B -소스코드의 중복감소 -Java는 다중상속x, 단일상속o, 다중 인터페이스 구현o 2.2 super -부모객체를 가리키는 참조변수 -자식객체는 부모객체를 생성후->자식객체 생성 -필드사용x, 생성자나 인스턴스 메소드에서 사용o -가리키는 객체는 runtime시 결정됨 -코드 안쓸때 : 묵시적 부모 클래스 생성자 호출 ->super(); -코드 쓸때 : 명시적 부모 클래스 생성자 호출 ->반드시 자식 생성자 첫 출에 위치 -부모생성자가 없다면(매개변수 있는 생성자) 컴파일 오류 <3. 다형성=Polymrphism> -같은이름을 갖는 메소드, 다른 참조변수를 가지는 메소드 -Overload(중복정의) : 동일class 또는 상속관계, 매개변수의(개수, 순서, 타입)이 다르다 -Override(재정의) : 상속관계, 매개변수의(개수, 순서, 타입)이 같다 3.1 오버로드(Overload) -동일한 이름의 메서드지만 매개변수가 다른 여러 메서드를 만드는 것 -조건 : 메서드이름이 같다 + 파라미터의 (개수, 순서, 자료형)이 다르다. #파라미터의 형태가 같고 + 반환형이 다른것은 오버로드가 아님. 3.2 오버라이드(Override) -슈퍼Class에서 정의한 메서드를 서브Clas...

BigData 청년인재 프로그램(Java) - 9. 접근제한자(Access Modifier)

9. 접근제한자(Access Modifier) 6/27(화)Day02 <1. 제한자(Modifier) 종류> 1.1 접근 제한자(Access Modifiers) -Class앞, Field(멤버변수)앞, 생성자 앞, Method 앞 -선언부에 사용, 단1개만 사용 -public Class, private int, public Student, public void sum(int a) -public, protected, private, [default] 1.2 사용 제어자(Usage Modifiers) -Class앞, Field(멤버변수)앞, 생성자 앞, Method 앞 -여러개 사용가능 -사용 제어자를 통하여 부가적인 기능을 지정 -static : 클래스의, 공통적인의 뜻. 객체생성하지 않고 사용한다. -final : final 클래스(상속x), final 메서드(재정의x), final 변수(상수) -abstract : abstract 클래스(abstract 메서드를 가진 클래스) -transient : transient 변수(직렬화 제외) -synchronized : 데이터 동기화 -native : 자바가 아닌 언어로 구현->자바 사용시 이용 -volatile -scrictfp : 부동소수 계산의 특정사항 제어? <2. 접근 제한자> 2.1 접근제한자 종류 및 접근 범위 public : 모든 인스턴스 // 메소드 내부 사용x(public 지역변수x) protected : 같은 package또는 자식클래스 // class, 지역변수x default : 같은 package//모두 가능 private : 같은 클래스//class, 지역변수x 2.2 접근제한자 사용 public :  o클래스 public class Student{} x지역변수 void add(){ public int a=0; } o멤버변수 ...

BigData 청년인재 프로그램(Java) - 8. package와 import

8. pakage와 import 6/27(화)Day02 <1.자바 소스코드 파일구조> 1.1 package선언 : 0번 또는 1번, 선언방법 : package top.sub 1.2 import선언 : 0~n번, 선언방법 : import top.sub.class이름; 1.3 class선언 : 0~n번(public class는 1번), 선언방법 : [접근제한자][사용제어자] class 클래스이름{} <2. 패키지(package) 선언> 2.1 관련된 클래스와 인터페이스를 그룹핑하여 물리적 폴더 개념으로 분리한것. 2.2 소스코드의 1번째줄에 선언 <3. import 선언> 3.1 사용한 클래스가 속한 패키지를 지정 3.2 import Java.lang.*; 와 현재 class가 속한 패키지는 생략됨(컴파일시 자동생성) 3.3 다른 패키지의 class를 사용하려면 import필요 3.4 package선언과 class선언 사이에 선언함. #java.util패키지에 Collection Class존재 #java.sql패키지에 jdbc관련 Class존재

BigData 청년인재 프로그램(Java) - 7. 객체 지향 프로그래밍

7. 객체 지향 프로그래밍 6/27(화)Day02 <1. 객체지향> 1.1 객체지향 -실세계를 구성하는 모든것 -객체(인스턴스) = 특성(필드,데이터) + 기능(메소드,처리) -참조변수. 을통해 다른객체에 메시지를 전달하고 호출하여 상호작용함 <2. 클래스와 객체> 2.1 클래스(Class) ->틀, 객체의 속성과 기능을 정의, 재사용하여 여러객체 생성 2.2 객체(Instance) -> 구체화, new로 heap에 메모리 할당, 실행시 메모리 할당 <3. 클래스의 구성요소> 3.1 클래스의 구성요소 3.1.1) 속성(멤버변수)(=Field) : 클래스변수 or 인스턴스변수 3.1.2) 기능(멤버함수)(=Method) <4. 클래스의 정의> 4.1 [접근제한자][사용제어자] class 클래스이름 [extends 부모클래스이름] [implements 인터페이스이름]{ //field //method } public abstract class A extends B implements C,D{ static int a; static void test(String s, int a){}; } 4.2 이미 정의된 class : 라이브러리(import 필요), 사용자정의 class <5. 주석> 5.1 한줄 주석  : // 주석내용 : 단축키 (ctrl + /) 5.2 여러줄 주석  : /* 주석내용*/ : 단축키(ctril +shift + /) 5.3 주석으로 api문서만들기  : /** 설명 */ : 탄축키(/** + 엔터) 1)API문서위치 : 선언문 앞에 2)API 전용 어노테이션(@) @author 작성자, @version 수정버전 =>class API에 사용 @param 매개변수 설명, @return 반환변수 설명, @exception 예외처리...

BigData 청년인재 프로그램(Java) - 6. 배열(Array)

이미지
6. 배열(Array) 6/27(화)Day02 -역할이 다르면 변수를 다르게 선언하기 -선언하면 메모리가 다르게 잡힌다 -같은 이름의 변수인지는 중요하지 않다. 참조값이 중요하다 -선언은 매우 중요함 -최근은 배열안스는 추세 why? -> 배열은 선언과 함께 할당되는 메모리 크기 고정 ->collection, list, map, set, vector을 사용 #변수 vs 배열 -둘다 데이터를 저장함 -1개저장 vs 동일 데이터타입+여러개 저장 -int a; vs int[] a; -선언과함께 할당 vs new로 메모리 할당 -참조변수로 구분 vs 참조변수+index로 구분 #class와 배열 -class : 사용자 정의 데이터타입(C언어의 구조체와 유사) -class와 배열의 차이 : class는 필드뿐 아니라 메소드도 추가됨 -class의 기본제공 데이터타입 : Object, String, ... -class의 사용자정의 데이터타입 : Student, ...(class 정의로 데이터타입 생성) <1. 배열이란?> 1.1 동일 데이터 타입의 많은 데이터를 하나로 묶어 그룹으로 관리하기 위한 메모리 공간 1.2 배열에 저장된 원소들은 서로 연속적으로 위치 1.3 배열도 객체이므로 new 키워드로 배열객체를 생성해야 함 1.4 생성후 배열의 크기는 불변 ex)int a, a2, a3; vs int[] a = new int[3]; -선언+할당 vs 선언이후 new로 객체생성 및 메모리 할당 -변수명이 여러개 vs 변수명 한개(a : 참조변수) <2. 1차원 배열> 2.1 1차원 배열 선언 : [접근제한자] 타입[] 배열명; 또는 [접근제한자] 타입 배열명[]; ex) private int[] a; 또는 private int a[]; 2.2 1차원 배열 생성 : 배열명 = new 타입[배열크기]; ex) a =...

BigData 청년인재 프로그램(Java) - 5. 제어문

5. 제어문 6/26(월)Day01 -제어문 핵심 1.조건을 어떻게 줄것인가? 2. 어떤 패턴으로 흐름을 처리할 것인가? 3. 제어문=실행순서를 바꾸는것 4.반복회수를 알면 for문(배열) 모르면 while문(DB,Set), switch는 경우의수 일때 사용 <1. 조건문 : 조건식 + 수행문> 1.1 if문 : 조건식 type은 boolean형(중요) if(조건식) { 수행문 } else if(조건식){ 수행문 }else { 수행문 }  1.2 switch문 : 조건식 type (1)정수형, (2)문자형, (3)문자열 ->실수x, 논리x, 참조x switch(조건식) { case 값1 : 수행문; [break;] case 값2 :  ... [default :  수행문;} <2. 반복문 : 조건식 + 수행문 ~반복> 2.1 while문 : 조건식이 true면 계속 반복 while(조건식){ 수행문 } 2.2 do~while문 : do무조건 1번실행, 조건식이 true면 계속 반복 do{ 수행문 }while(조건식); 2.3 for문 : 초기화, 조건식, 증감식, 수행문 for(초기화; 조건식; 증감식){ 수행문 } 2.4 EnhancedFor문 : 객체의 item수만큼 반복, Java5이후 for(데이터타입 변수명 : 객체의 참조변수){ 수행문} for(String s : list){ System.out.println( list.get())} <3. 분기문 : swtich의 조건문, 반복문을 빠져나감> 3.1 break문 : 반복문에서 if조건문을 사용하여 반복문을 빠져나감 3.2 continue문 : 현재속해 있는 반복문의 조건식으로 이동???(모르겠) 3.3 return문 : 값반환

BigData 청년인재 프로그램(Java) - 4. 연산자(Operator)

이미지
4. 연산자(Operator) 6/26(월)Day01 <1. 연산자와 피연산자> 1.1 연산자 : 수식의 기능을 수행하는 기호 1.2 피연산자 : 연산자의 작업대상(변수, 상수, literal, 수식) < 2.연산자의 종류> 2.1 단항연산자 : +,-, (데이터타입), ++, --, ~, ! 2.2 이항연산자 : +,-, /, %, <<, >>, >>>, >,<,==, !=, &, |, &&, ||, ^ 2.3 삼항연산자 : (조건식) ? 표현식1 : 표현식2 2.4 대입연산자 : =, +=,-=, *=, /=, %= #산술,대입,단축대입 연산자 : +,-,=,*=,.. #비교,논리,비트연산자 : >, <, ==, !=, &,|, &&, ||, !, ^, ~, >>, <<< #증감연산자 : ++, -- #부호연산자 : +,- #형변환연산자 : (데이터타입) -> 기본형-기본형끼리 // 참조형-상속관계참조형끼리 <3. 연산자 우선순위> <4. 형변환(Type Cast)> 4.1 자동형변환 : 작은 Type -> 큰 Type, 데이터손실x 4.2 명시적형변환 : 큰 Type -> 작은 Type, 데이터손실o 가능성 Object o = new String(); : 자동형변환 String s = new Object(); : 컴파일오류 String s = (String) new Object(); : 명시적 형변환