백엔드 과정/Java

    [Java] 컬렉션 개념 복습

    컬렉션 ? 컬렉션 이란 여러 개의 다양한 데이터들을 쉽고 효과적으로 처리할 수 있도록 표준화 된 방법을 제공하는 클래스들의 집합 데이터를 효율적으로 저장하는 자료구조 와 데이터를 처리하는 알고리즘 이 미리 구현되어 있음 Java.util 패키지에 포함 1. LIST List 인터페이스의 특징에 대해 이해하고 설명할 수 있다. List는 저장 순서가 유지되고 중복 저장을 허용한다. List 인터페이스 계열의 자료구조를 이해하고 설명할 수 있다. ArrayList, LinkedList, Vector, Stack이 있다. ArrayList의 사용 목적에 대해 이해할 수 있다. 가장 많이 사용되는 컬렉션 리스트이다. ArrayList는 배열의 단점을 보완하기 위해 만들어졌다. 배열은 크기를 변경할 수 없고, 요..

    [Java] 제네릭 개념 복습

    제네릭스가 무엇인지 이해하고 설명할 수 있다. 제네릭이란 데이터의 타입을 일반화 한다는 것을 의미한다. 다이아몬드 연산자를 사용하며, 의 T는 타입 변수를 뜻한다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 지정하는 방법을 말한다. 제네릭스 사용의 목적 혹은 장점에 대해 이해하고 설명할 수 있다. 제네릭을 활용하면 타입 변환 및 타입 검사에 들어가는 코드 생략이 가능하다. 컴파일 시에 미리 타입 검사를 시행하기 때문에 클래스나 애부에서 사용되는 객체의 타입 안정성이 높다. 제네릭스가 적용된 클래스에 타입변수를 지정하여 인스턴스를 생성할 수 있다. /* 타입을 Integer로 인스턴스를 생성하는 경우 */ GenericTest gt1 = new GenericTest(); /* JDK 7부터..

    [Java] API 개념 복습

    toString() 메소드 오버라이딩 목적을 이해하고 개발에 적용할 수 있다. java.lang.Object 클래스의 toString() 메소드는 인스턴스가 생성될 때 사용한 full class name과 @ 그리고 16진수 해쉬코드가 문자열로 반환된다. 16진수 해쉬코드는 인스턴스의 주소를 가키리는 값으로 인스턴스마다 모두 다르게 반환된다. Book book1 = new Book(1, "홍길동전", "허균", 50000); System.out.println("book1.toString() : " + book1.toString()); toString() 메소드로 출력한 결과 book1.toString() : com.greedy.section01.object.book.Book@77cf73f0 레퍼런스 변수..

    [Java] 다형성 개념 복습 / 추상클래스와 인터페이스

    다형성의 개념에 대해 설명할 수 있다. 하나의 인스턴스가 여러 타입을 가질 수 있는 것. 상속을 기반으로한 기술이다. 다형성의 장단점을 설명할 수 있다. 같은 동작을 하는 메소드를 새로운 객체가 생길때 마다 작성하지 않아도 된다. 여러 타입의 객체를 하나의 타입으로 관리할 수 있으므로 유지보수가 쉽고 결합도가 낮으며 확장성이 좋다. 동적 바인딩에 대해 설명할 수 있다. 컴파일 당시에는 해당 타입의 메소드와 정적으로 연결되어 있다가 런타입 당시 (실행시) 실제 객체가 가진 오버라이딩 된 메소드로 바인딩이 바뀌어 동적으로 동작하는 것을 의미한다. 동적바인딩은 상속 관계로 이루어져 메소드 오버라이딩이 되어 있어야 한다. 하나의 메소드 호출로 각기 다른 객체의 다른 메소드를 동작시키는 것. Parent p = ..

    [Java] 상속 개념 복습

    클래스 상속에 대한 개념을 설명할 수 있다. 부모 클래스가 가지는 멤버를 자식클래스가 물려받아 자신의 멤버인 것척럼 사용할 수 있도록 만든 기술 자바는 단일 상속을 지원한다. (모호성을 제거) 클래스 간의 상속 시에는 extends 키워드 사용 상속의 목적을 설명할 수 있다. 부모 클래스의 기능을 자식클래스에서 상속받아 코드를 재사용하는 것. 자식클래스는 부모 클래스가 가진 메소드를 사용할 수 있다. (private 멤버는 접근 불가) 상속의 장단점을 설명할 수 있다. 장점 새로운 클래스 작성 시 부모 클래스에서 작성된 코드를 이어받아 새로 작성하지 않아도 됨. 클래스의 재사용 클래스간 계층관계과 형성되어 다형성의 문법의 토대가 된다. 단점 부모클래스가 변경될 때 자식클래스에서 정상적인 동작을 할지 예측..

    [Java] 객체 배열 개념 복습

    객체 배열의 사용 목적과 구조를 이해하여 객체 배열을 생성하고 개발에 활용할 수 있다. 객체 배열은 레퍼런스 변수에 대한 배열이다. 생성한 인스턴스를 배열을 이용해서 관리하면 동일한 타입의 여러 개 인스턴스를 각각 취급하지 않고 연속 처리할 수 있어 유용하다. 또한 반환값은 1개의 값만 반환할 수 있기때문에 동일한 타입의 여러 인스턴스를 반환해야 하는 경우 객체 배열을 사용할 수 있다. Car 라는 클래스 타입의 객체를 car1 car2 각각의 객체로 생성했을 때 동일한 기능을 수행할 때 모든 객체를 일일히 동작해줘야 한다. car1.start(); car2.start(); .. 이러한 Car타입의 객체를 배열에 담으면 for문을 이용해 하나씩 접근하여 동일한 메소드를 처리할 수 있다. //향상된 for..

    [Java] 클래스와 객체 개념 복습

    기초적인 자바 학습이 끝났다. 그동안의 학습성취도를 평가하기 위해 학습진도표를 문제삼아 다시한번 개념정리를 하는 주간을 갖기로 했다. 반복문까지 파트는 건너뛰고, 난이도가 높아진 클래스와 객체 파트부터 차근차근 배운 내용을 정리하고 2주간 학습점검을 하기로 했다. 오늘 작성한 부분에서 막힌 개념은 포스팅 하단부분에 다시 작성하는 방식으로 한다. 사용자 정의의 자료형을 이해할 수 있다. 클래스는 서로 다른 자료형의 데이터를 사용자(개발자) 정의로 하나로 묶어 새로운 타입을 정의할 수 있다. 배열과 달리 다른 자료형들의 값을 하나로 묶을 수 있다. 클래스와 인스턴스의 차이를 이해하고 설명할 수 있다. 클래스는 객체를 만들어 내기 위한 설계도 혹은 틀이며 객체는 소프트웨어 세계에서 구현하는 대상이며, 클래스의..

    [Java] day22. 입출력IO 보조스트림/ 직렬화

    입출력 파트 이제 끝. 오늘로 자바 파트가 끝나고 오라클로 넘어간다. 그렇다고 자바가 완전히 끝난게 아니니 오라클 수업동안 자바도 같이 복습해야만 한다. 자바 + 오라클 + 당일과제 + 팀스터디 -> 오 빡세다... 여기에 정처기 필기까지 했다면 더 힘들었겠지만 정처산기 실기 까지 여유가 있으니 다행이다. 보조 스트림 filterStream 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해서 사용 보조 스트림은 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리가 불가능 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림을 생성 보조 스트림의 종류 입출력 성능(BufferedInputStream/BufferedOutputStream) 기본 데이터 타입 출력(DataInputStrea..

    [Java] day22. 입출력IO / Stream / File

    입출력이라는 것을 알아볼 때, 이 입력장치는 키보드가 될 수도 있고 프로그램이 될 수도 있지만, 우선 파일을 외부 자원으로 보고 확인하기 위해 파일 클래스에 대해 가장 먼저 학습했다. File 클래스 파일 시스템의 파일을 표현하는 클래스 JDK 1.0부터 지원하는 API로 파일 처리를 수행하는 대표적인 클래스 이다. 대상 파일에 대한 정보로 인스턴스를 생성하고 파일의 생성, 삭제 등등의 처리를 수행하는 기능을 제공하고 있다. 파일 클래스를 이용해서 인스턴스를 생성한다. 대상 파일이 존재하지 않아도 인스턴스를 생성할 수 있다. File file = new File("section01/file/test.txt";) createNewFile()을 통해 파일을 생성할 수 있고 성공 실패 여부를 boolean으로..