728x90

JAVA/JAVA 정리 19

[JAVA] 정렬 종류와 정의

정렬 종류와 정의 정렬의 정의 : 데이터를 정해진 순서로 재배열하는 것(오름차순, 내림차순) 정렬은 비교와 교환의 미학 수 많은 정렬 알고리즘이 존재함. 선택 정렬(Selection sort) (최소값의 인덱스를 찾아서 정렬되지 않은 부분의 제일 앞으로 보내기 ) (교환회수가 적어서 큰 레코드를 다룰 때 적합) 선택 정렬은 제자리 정렬 알고리즘의 하나로 주어진 리스트 중에 최소값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)). 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있다. 선택 정렬(selection sort) 알고리즘의 예제 배열에 9, 6, 7, 3, 5가 저장..

JAVA/JAVA 정리 2023.05.30

[JAVA] TDD란 ? 테스트 주도 개발 (JUnit)

TDD란 ?? 테스트 주도 개발(test-driven development, TDD)소프트웨어 개발 방법론 중의 하나로, 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법을 말한다. TDD를 이용한 개발방법 테스트 케이스 작성 테스트 케이스를 통과하는 코드 작성 작성한 코드 리팩토링 먼저 테스트 케이스와 테스트 코드를 작성한다. 테스트 코드가 개발을 주도하기 위해서는 반드시 실패를 포함하는 테스트 코드의 작성이 앞서야 한다. 다음으로는 테스트 케이스를 통과하는 코드를 작성한다. 작성된 코드는 개선될 수 있는 많은 여지를 포함한 코드이다. 마지막으로 리팩토링 단계에서 이를 개선한다. TDD는 기본적으로 위 3단계의 반복으로 진행하며 점진적으로 개발이 진행된다. 필요한 단위 기능에 ..

JAVA/JAVA 정리 2023.05.30

[JAVA] 제네릭

제네릭 컴파일 시 강한 타입 체크를 할 수 있다. 타입 변환(casting)을 제거한다 비제네릭 코드 List list = new ArrayList(); list.add("hello"); String str = (String)list.get(0); //타입 변환을 해야한다. 제네릭 코드 List list = new ArrayList(); list.add("hello"); String str = list.get(0); // 타입 변환을 하지 않는다. . 제네릭 타입(class,interface) 제네릭 타입은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다. 제네릭 타입은 클래스 또는 인터페이스 이름 뒤에 “”부호가 붙고, 사이에 타입 파라미터가 위치한다. public class 클래스명 {...} ..

JAVA/JAVA 정리 2023.05.30

[JAVA] JAVA 네트워크란 ?

내 컴퓨터의 IP 주소 확인하기 내 컴퓨터의 윈도우에서 명령창을 열어 ipconfig 명령 수행 포트 통신하는 프로그램 간에 가상의 연결단 포트 생성 IP 주소는 네트워크 상의 컴퓨터 또는 시스템을 식별하는 주소 포트 번호를 이용하여 통신할 응용프로그램 식별 모든 응용프로그램은 하나 이상의 포트 생성 가능 포트를 이용하여 상대방 응용프로그램과 데이터 교환 잘 알려진 포트(well-know ports) 시스템이 사용하는 포트 번호 잘 알려진 응용프로그램에서사용하는 포트 번호 0부터 1023 사이의 포트 번호 ex) 텔넷 23, HTTP 80, FTP 21 잘 알려진 포트 번호는 개발자가 사용하지 않는 것이 좋음 충돌 가능성 있음 Socket 클래스, 클라이언트 소켓 Socket 클래스 클라이언트 소켓에 사..

JAVA/JAVA 정리 2023.05.28

[JAVA] 스트림과 병렬 처리

스트림 입출력 버퍼를 가지고 순차적으로 이루어지는 입출력 자바의 입출력 스트림 응용프로그램과 입출력 장치를 연결하는 소프트웨어 모듈 입력 스트림 : 입력 장치로부터 자바 프로그램으로 데이터를 전달 출력 스트림 : 출력 장치로 데이터 출력 자바의 입출력 스트림 특징 스트림의 양끝에 입출력장치와 자바 응용프로그램 연결 스트림은 단방향 입력과 출력을 동시에 하는 스트림 없음 입출력 스트림 기본 단위 바이트 스트림의 경우 : 바이트 문자 스트림의 경우 : 문자(자바에서는 문자1개 : 2 바이트) 선입선출 구조 자바의 입출력 스트림 종류 바이트 스트림과 문자 스트림 바이트 스트림 입출력되는 데이터를 단순 바이트로 처리 예) 바이너리 파일을 읽는 입력 스트림 문자 스트림 문자만 입출력하는 스트림 문자가 아닌 바이너..

JAVA/JAVA 정리 2023.05.27

[JAVA] 컬렉션 프레임워크

컬렉션(Collection) 프레임워크란? 다수의 객체를 저장하고 효율적으로 추가, 삭제, 검색할 수 있도록 구현된 인터페이스와 클래스들을 말한다. 주요 인터페이스로 List, Set, Map이 있다. 배열도 다수의 객체를 저장할 수 있다. 하지만, 저장할 수 있는 크기가 고정적이며, 중간 인덱스의 자료를 삭제했을 때 빈 곳이 생기기도 한다. 이로 인해 고정적 크기의 연속된 객체를 저장하는 것은 좋지만, 유동적인 크기를 갖는 객체 저장에는 적합하지 않을 수 있다. 컬렉션이란? 사전적 의미로 요소를 수집해서 저장하는 것을 말한다. List (순서) set(종복X) Map(key, value / 키, 값) List 컬렉션 리스트(List)란 저장된 요소들의 순서가 있고 데이터에 중복이 가능하고 인덱스(ind..

JAVA/JAVA 정리 2023.05.26

[JAVA] 람다식

메서드가 1개인 인터페이스는 람다식으로 표현이 가능하다. java.util.function 패키지에 있는 인터페이스들이 람다식에 주로 사용되는 인터페이스들이다. Predicate : 임의의 타입 인수 1개를 받아 boolean을 리턴하는 Function인터페이스이다. Function인터페이스 : 인수가 1개 리턴이 1개인 경우에 사용 메서드가 1개인 인터페이스는 람다식으로 표현이 가능하다. java.util.function 패키지에 있는 인터페이스들이 람다식에 주로 사용되는 인터페이스들이다. Function인터페이스 : 인수가 1개 리턴이 1개인 경우에 사용 인수가 없고 리턴값이 1개인 함수 ==> Supplier 인터페이스 구현 인수가 1개고 리턴값이 없는 함수 ==> Consumer 인터페이스 구현 ..

JAVA/JAVA 정리 2023.05.10

[JAVA] 예외처리

예외와 예외 클래스 프로그램은 수 많은 것들을 입력으로 받고 출력으로 내보는 것이기 때문에 정말 사소한 것들(오버플로우때문에 프로그램이 진짜 죽는 경우가 있다.) 때문에 에러가 나서 동작하지 않는 경우가 있다. 이런 경우를 대비하기 위해 자바는 예외 처리(Exception)를 만들었고, 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 예외는 크게 2종류가 있는데, 하나는 일반 예외(Exception)이고, 다른 하나는 실행 예외(Runtime Exception) 이 있다. 일반 예외는 컴파일러 체크 예외라고도 하는데, 예외 처리 코드가 없다면 컴파일오류가 나는 예외이다. 실행 예외는 컴파일과정에서 예외 처리 코드가 나지 않는 예외로, 개발자가 잘 숙지하여 예외 처리 ..

JAVA/JAVA 정리 2023.05.09

[JAVA] 중첩 클래스와 중첩 인터페이스

중첩 클래스와 중첩 인터페이스란? 중첩 클래스(Nested Class)란 클래스 내부에 선언한 클래스를 말하는데, 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. 중첩 클래스 public class Name { class NestedClass { } } 중첩 인터페이스 public class Name{ interface NestedInterface { } } 중첩 클래스 멤버 클래스: 클래스 멤버로서 선언되는 중첩 클래스 로컬 클래스: 메소드 내부에서 선언되는 중첩 클래스 선언 위치에 따른 분류 선언위치 설명 멤버 클래스 인스턴스 멤버 클래스 class A{ class B {...} } A 객체를 ..

JAVA/JAVA 정리 2023.05.08
728x90