본문 바로가기

Java/information

(31)
[자바/JAVA] annotation 어노테이션(annotation) -자바에서는 소스 코드에 코드 외에 부가적인 정보(어노테이션)를 넣을 수 있는 기능이 있다. -어노테이션은 코드에는 영향을 주지 않는다. -어노테이션은 메타데이터(metadata)라고도 부른다. -자바 시스템에서 기본적으로 제공하는 어노테이션과 필요에 따라 사용자가 직접 커스텀 어노테이션들을 만들어서 사용할 수도 있다. @Inherited : 하위 클래스가 상속받는 상위 클래스임을 알림 @Override : 상위 클래스의 메소드를 오버라이딩했음을 알림 @Depresated : 해당 아이템은 더이상 사용하지 말라는 경고 알림 (하위호환을 위해서 메소드 자체를 없애지는 못하지만 사용하지 말것을 사용자에게 알리고 싶을 때 붙여준다.) @SupperssWarnings : 컴파일러..
[자바/JAVA] Thread 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션이 실행되는데, 이것을 프로세스(process)라고 한다. 그리고 프로세스 내부에서 코드의 실행 흐름을 스레드(thread)라고 한다. 운영체제에서는 실행 중인 하나의 애플리케이션을 프로세스라고 부른다. 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는데 이것이 프로세스이다. 하나의 애플리케이션은 멀티 프로세스를 만들기도 한다. 운영체제는 두 가지 이상의 작업을 동시에 처리하는 멀티 태스킹을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고, 병렬로 실행시킨다. 예를 들어, 워드로 문서 작업을 하면서 동시에 윈도우 미디어 플레이어로 음악을 들을 수..
[자바/JAVA] 람다식과 열거형 람다 표현식 람다식이란 익명 함수를 생성하기 위한 식으로서 코드를 간결하게 만들기 위해 사용한다. -이름없는 함수: 나중에 한 번 이상 실행할 수 있도록 만들어 놓는 코드 블록 -함수의 역할을 하지만 이름이 없음 형태 (매개변수)->{수행되어야 하는 코드} -기호 '->'는 람다 연산자라고 부르고 '->' 왼쪽에는 함수의 매개변수를 적고 오른쪽에는 함수가 반환할 값 또는 식을 적음 업데이트 장,단점 장점 : 코드가 간결해짐 단점 : 코드가 너무 간결해지면서 무슨 의미인지 알수가없을정도로 심플해짐 람다 표현식 사용 -람다 표현식을 구현한 인터페이스는 함수형 인터페이스 -함수형 인터페이스에는 추상 메소드만 한 개 있어야함 -지연 처리 : 인터페이스 변수에 람다 표현식을 할당하고, 호출하면 그제서야 람다 표현..
[자바/JAVA] 컬렉션 프레임워크 컬렉션 프레임워크는 검색 기능을 강화시킨 TreeSet과 TreeMap을 제공한다. TreeSet의 객체와 TreeMap의 키는 저장과 동시에 자동으로 오름차순으로 정렬이 되는데 이는 이진트리를 이용해서 계층적인 구조를 가지면서 객체를 저장한다. 하나의 부모 노드는 두개의 자식 노드와 연결되는데 이진 트리는 부모노드값보다 작은 노드는 왼쪽 자식노드에 위치시키고 부모값보다 큰 노드는 오른쪽 자식노드에 위치시켜서 오름차순으로 정렬된 값을 얻으려면 [왼쪽자식->부모->오른쪽자식]노드 순으로 값을 읽으면 되고 내림차순으로 정렬된 값을 얻으려면 [오른쪽자식->부모->왼쪽자식]순으로 값을 읽으면 된다. 기본값은 오름차순으로 정렬된 값을 리턴한다. Set인터페이스 타입 변수에 대입해도 되지만 TreeSet 클래스 타..
[자바/JAVA] Iterator와 ListIterator Iterator와 ListIterator -이터레이터는 컬렉션 프레임워크에서 순환자 역할 -Iterator는 한 방향으로만 순환이 가능 Iterator의 메소드 boolean hasNext() :이후에 원소가 더 있는지 판단함 원소가 더 있다면 true를 반환함 E next() : 다음 원소를 반환함 ListIterator메소드 boolean hasNext() : 이후에 원소가 더 있는지 판단함, 원소가 더 있다면 true를 반환함 boolean hasPrevious() : 이전에 원소가 있는지 판단함. 원소가 있다면 true를 반환함 E next() : 다음 원소를 반환함 E previous() : 이전 원소를 반환함 .iterator();//오름차순으로 데이터를 리턴하는 반복자를 활용하는 메소드 Se..
[자바/JAVA] 제네릭 컬렉션 프레임워크 생성자 함수의 매개변수 값으로 결정한 타입을 매개변수로 넣게 되면 다이아몬드 기호도 생략이 가능하다. 구체적인 타입을 명시적으로 지정했으 때 메소드 앞에 기호도 생략 가능하다. 제한된 제네릭 타입 -제네릭 T 자리에는 클래스 타입이 V이거나 V클래스의 하위 클래스 타입만 올 수 있다는 뜻이다. 인터페이스를 사용해도 implements가 아닌 extends 키워드를 사용한다. 타입 파라미터에 지정되는 구체적인 타입을 제한할 필요가 종종 있다. 예를 들면 숫자를 연산하는 제네릭 메소드는 매개값으로 Number타입 또는 하위 클래스 타입(Byte, Short, Integer, Long, Double)의 인스턴스만 가져야 한다. 이것이 제한된 타입 파라미터(bounded type parameter)가 필요한 이..
[자바/JAVA] generic 저번 과제 복습 하나의 스트림으로 입력과 출력이 동시에 가능하지 않다. 프로그램을 기준으로 데이터가 들어오면 입력스트림이다. 프로그램을 기준으로 데이터가 나가면 출력스트림이다. 파일에 데이터를 저장하려면 출력 스트림을 사용해야 한다. 이미지 데이터는 InputStream 또는 Reader로 모두 읽을 수 있다. (x) (Reader는 문자기반 스트림이기에 바이트로 된 이미지를 읽지 못한다) Reader의 read()메소드는 1문자를 읽고 리턴한다. InputStream의 read() 메소드는 1byte를 읽고 리턴한다. InputStream의 read(byte[] b) 메소드는 읽은 바이트 수를 리턴한다. InputStream의 read(byte[] b, int off, int len)메소드에 대한 설명..
[자바/JAVA] 보조 스트림 보조 스트림 -스트림 중에 직접 데이터를 읽고 쓰는데 이용하는 스트림이 있고, 다른 스트림에 보조 역할을 하는 스트림이 있다 보조 스트림이란 다른 스트림과 연결이 되어 여러 가지 편리한 기능을 제공해주는 스트림을 말한다. 보조 스트림은 자체적으로 입출력을 수행할 수 없기 때문에 입출력 소스와 바로 연결되는 InputStream, OutputStream, Feader, Writer 등에 연결해서 입출력을 수행한다. 보조 스트림은 문자 변환, 입출력 성능 향상, 기본 타입 입출력 등의 기능을 제공한다. 프로그램은 입력 스트림으로부터 직접 데이터를 읽지 않고, 보조 스트림에서 제공하는 기능을 이용해서 데이터를 읽는다. 반대로 출력 스트림으로 직접 데이터를 보내지 않고 보조 스트림에서 제공하는 기능을 이용해서 ..