프로그래밍 언어

프로그래밍 언어/Java + Kotlin

[Java] 스터디 14주차: 제네릭

제네릭(Generics)이란? 컴파일 시 타입을 체크해주는 기능 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 제네릭의 장점 1. 타입 안정성을 제공한다. 2. 타입체크와 형변환을 생략함으로써 코드가 간결해진다. 제네릭 용어 먼저 제네릭에서 사용되는 용어를 먼저 정리하고 가자. 타입 문자 T는 제네릭 클래스 Box의 타입 변수 또는 타입 매개변수라 한다. 이는 메소드의 매개변수와 유사한 면이 있기 때문이다. 타입 매개변수에 타입을 지정하는 것을 제네릭 타입 호출이라고 한다. 실제로 지정되는 타입'String'은 매개변수화된 타입, 즉 대입된 타입이라고 한다. 컴파일 후에는 제네릭 타입이 제거된다. 제네릭 사용법 제네릭 클래스의 선언 아래와 같이 클래스를 작성할 때 Object타입 대신 T와 같은..

프로그래밍 언어/Java + Kotlin

[Java] 스터디 13주차: I/O

자바 스트림/버퍼/채널 입출력(I/O) 입출력은 입력(Input)과 출력(Output)을 합친 말로, 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 의미한다. 스트림(Stream) 입출력을 수행한다는 것은 곧 한쪽에서 다른 쪽으로 데이터를 전달하는 것이다. 이를 위해선 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데, 이를 스트림(stream)이라고 한다. 즉, 스트림이란 데이터를 운반하는 데 사용되는 연결통로이다. 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다. 큐와 같은 FIFO구조로 되어있다고 생각하면 된다. 버퍼(Buffer) 데이터를 한쪽에서 다른 한쪽으로 전송하는 동안에 일시적으로 데이터를 보관하는 읽고..

프로그래밍 언어/Java + Kotlin

[Java] 스터디 12주차: 애노테이션

애노테이션이란? 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이 바로 애노테이션(annotation)이다.애노테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 다른 프로그램에게 유용한 정보를 제공할 수 있다는 장점이 있다. 이클립스나 인텔리제이 등의 IDE를 사용했다면 프로그램이 자동적으로 '@Override'라는 애노테이션을 붙여주는 것을 본 적이 있을 것이다. 만약 부모 클래스의 메소드를 오버라이딩하고자 하는데, 다음과 같이 프로그래머의 실수로 메소드명을 잘못 작성한다면 컴파일러는 그저 새로운 이름의 메소드가 추가된 것으로 인식한다. 그러나 아래와 같이 메소드 앞에 '@Override'라고 애노테이션을 붙이면 컴파일러가 같은 이름의 메소드가 조상에 ..

프로그래밍 언어/Java + Kotlin

[Java] 스터디 11주차: Enum

열거형이란? 열거형(Enum)은 서로 연관된 상수들의 집합이라고 할 수 있다. 자바의 열거형은 C언어의 열거형과 달리 값과 타입을 함께 비교하기 때문에 보다 논리적인 오류를 줄일 수 있다. class Card { enum Kind { CLOVER, HEART, DIAMOND, SPADE } // 열거형 Kind를 정의 enum Value { TWO, THREE, FOUR } // 열거형 Value를 정의 final Kind kind = Kind.CLOVER; final Value value = Value.TWO; } 자바의 열거형은 '타입에 안전한 열거형(typesafe enum)'이기 때문에 실제값이 같아도 타입이 다르면 컴파일 에러가 발생한다. 이처럼 값뿐만 아니라 타입까지 체크하기 때문에 타입에 안..

프로그래밍 언어/Java + Kotlin

[Java] 스터디 10주차: 쓰레드

쓰레드의 구현과 실행 쓰레드의 구현 쓰레드를 구현하는 방법에는 두 가지가 있는데, 어떤 방법을 선택하든지 상관없이 그저 쓰레드를 통해 작업하고자 하는 내용으로 run( )의 몸통{}을 채우는 것뿐이다. 1) Thread클래스를 상속 Thread클래스의 run()을 오버라이딩 class MyThread extends Thread { public void run() { // Thread클래스의 run()을 오버라이딩(쓰레드가 수행할 작업을 작성) /* 작업내용 */ } } MyThread t1 = new MyThread(); // 쓰레드의 생성 t1.start(); // 쓰레드의 실행 2) Runnable인터페이스를 구현 자바는 단일상속만을 허용하기 때문에 Runnable인터페이스를 구현하는 편이 더 일반..

코택
'프로그래밍 언어' 카테고리의 글 목록 (4 Page)