Programming Language (14) 썸네일형 리스트형 14. 람다와 스트림 람다식(Lambda Expression)함수(메서드)를 간단한 '식(expression)'으로 표현하는 방법이다. 익명 함수(이름이 없는 함수, anonymous function)이다. 람다식으로 인해 메서드를 변수처럼 다루는 것이 가능하다.람다식 작성하기메서드의 이름과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능 (끝에 ';'안 붙임) 매개변수의 타입이 추론 가능하면 생략 가능 (대부분의 경우 생략가능) 주의사항매개변수가 하나인 경우, 괄호() 생략 가능 (타입이 없을 때만) 블록 안의 문장이 하나뿐 일 때, 괄호{} 생략 가능 (끝에 ';' 안 붙임) 단, 하나뿐인 문장이 return문일 경우 괄호{} 생략 불가람다식은 익명 .. 13. 쓰레드 프로세스(process)와 쓰레드(thread)프로세스- 실행 중인 프로그램이다.- OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다.- 프로그램을 수행하는 데 필요한 자원(데이터 + 메모리) 와 쓰레드로 구성되어 있다. 쓰레드- 프로세스의 자원을 이용해서 실제로 작업을 수행하는 단위이다.- 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재한다.- 둘 이상의 쓰레드를 가진 프로세스를 ‘멀티쓰레드 프로세스’라고 한다.멀티쓰레딩의 장단점멀티쓰레딩: 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것이다. 멀티쓰레딩의 장점CPU의 사용률을 향상시킨다.자원을 보다 효율적으로 사용할 수 있다.사용자에 대한 응답성이 향상된다.작업이 분리되어 코드가 간결해진다. 멀티쓰레딩의 단점여러 쓰레드가 같.. 12. 지네릭스, 열거형, 애너테이션 지네릭스(Generics)다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다.객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 지정한 타입 외에 다른 타입의 객체가 저장되면 에러가 발생한다.//TV객체만 저장할 수 있는 ArrayList를 생성ArrayList tvList = new ArrayList();tvList.add(new Tv()); //OKtvList.add(new Audio()); //컴파일 에러. Tv 외에 다른 타입은 저장 불가 제네릭스의 장점- 타입 안정성을 제공한다.- 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. 지네릭 타입은 클래스와 메서드에 선언할 수 있다.타입 변수는 ‘.. 11. 컬렉션 프레임웍 컬렉션 프레임웍컬렉션 프레임웍이란 데이터 군(群)을 저장하는 클래스들을 표준화한 설계이다.- 컬렉션(collection)은 다수의 데이터, 즉 데이터 그룹을 의미한다.- 프레임웍은 표준화된 프로그래밍 방식을 의미한다. 컬렉션 프레임웍은 컬렉션(다수의 데이터)을 다루는데 필요한 다양하고 풍부한 클래스들을 제공한다.컬렉션 프레임웍의 핵심 인터페이스컬렉션 프레임웍에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스(List, Set, Map)을 정의하였다. 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다.인터페이스인터페이스List순서가 있는 데이터의 집합. 중복 허용 O .. 10. 날짜와 시간 & 형식화 날짜와 시간 java.util.Date 날짜와 시간을 다룰 목적으로 JDK1.0부터 제공된 클래스이며, Date의 메서드는 대부분 deprecated되었지만, 여전히 쓰이고 있다. java.util.Calendar Date클래스를 개선한 클래스로 JDK1.1부터 제공되었지만, 몇 가지 단점이 존재한다. java.time패키지 기존의 Data클래스와 Calendar클래스의 단점을 개선한 새로운 클래스들이 JDK1.8부터 추가되었다. 새로 추가된 java.time패키지만 배우면 좋을 텐데, 아쉽게도 Calender와 Date는 자바의 탄생부터 지금까지 20년 넘게 사용되어왔고, 지금도 계속 사용되고 있으므로 배우지 않고 넘어갈 수 없다. Calender와 Date의 기능은 소소한 예제들을 이해하고 필요할 때.. 9. java.lang 패키지와 유용한 클래스 Object클래스 java.lang패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있으며, java.lang패키지의 클래스들은 import문 없이 바로 사용 가능 하다. Object클래스는 모든 클래스의 최고 조상이므로, Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다. Object클래스는 멤버변수는 없고 오직 메서드 11개만 가지고 있다. Object클래스의 메서드 - equals( ) equals( )는 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려주는 역할을 한다. 아래의 코드는 Object클래스에 저의되어 있는 equals메서드의 실제 내용이다. public boolean equals(Object obj) { return (this=.. 8. 예외처리 프로그램 오류 프로그램 오류 또는 에러는 프로그램이 실행 중 오작동이나 비정상적인 종료를 초래하는 원인이다. 프로그램 오류는 발생시점에 따라 아래와 같이 구분된다. - 컴파일 에러: 컴파일 시에 발생하는 에러 - 런타임 에러: 실행 시에 발생하는 에러 - 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램 오류를 아래와 같이 두 가지로 구분한다. - 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 - 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외 클래스의 계층구조 오류(Exception과 Error) 클래스의 계층 구조 모든 예외의 최고 조상은 Exception 클래스이다... 7. 객체지향 프로그래밍 II 상속상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스 이름을 'extends'와 함께 써주면 된다.class Parent {}class Child extends Parent{ ...} 위의 Parent 클래스와 Child 클래스는 서로 상속 관계에 있다고 하며, Parent 클래스는 '조상 클래스', Child 클래스는 '자손.. 6. 객체지향 프로그래밍 I 객체지향 언어객체지향언어의 가장 큰 장점은 ‘코드의 재사용성이 높고 유지보수가 용이하다.’는 것이다.앞으로 상속, 다형성 같은 객체지향개념을 학습할 때 재사용성과 유지보수 그리고 중복된 코드의 제거, 이 세가지 관점에서 보면 보다 쉽게 이해할 수 있을 것이다. 객체지향언어의 주요 특징은 다음과 같다. - 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. - 코드의 관리가 용이하다 코드 간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. - 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.클래스와 .. 5. 배열 배열이란?배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다.변수와 달리 배열은 각 저장공간이 연속적으로 배치되어 있다.배열의 선언와 생성원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙이면 된다.대괄호[]는 타입 뒤에 붙여도 되고 변수이름 뒤에 붙여도 되는데, 타입에 붙이는 쪽을 선호한다.타입[] 변수이름, ex) int[] scores;타입 변수이름[], ex) int scores[];배열을 선언한 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다. 배열을 생성하기 위해서는 연산자 ‘new’와 함께 배열의 타입과 길이를 지정해주어야 한다.new 타입[길이]in.. 이전 1 2 다음