[JAVA] 람다 표현식(Lambda Expression)
·
Java
람다 표현식(Lambda Expression) 람다 표현식(Lambda Expression)은 간단히 말하자면 함수(메서드)를 간단한 함수 '식(expression)'으로 표현하는 방법을 말한다. // 메서드 int max(int a, int b) { return a > b ? a : b; } 람다식으로 표현하면 메서드 타입/이름, 매개변수의 타입 등의 불필요한 코드를 생략할수 있게 되어 코드가 매우 간결해지고 가독성을 높여준다.. // 람다식 (a,b) -> a > b ? a :b; 이러한 특징들은 람다 표현식을 식별자 없이 실행할 수 있는 함수 표현식을 의미하는 익명 함수(이름이 없는 함수, anonymous function) 라고도 한다. 람다 표현식 작성하기 화살표(->) 가호를 사용하여 람다 표..
[JAVA] 표준 입출력과 File 클래스, 직렬화(Serialization)
·
Java
표준 입출력 자바에서 콘솔과 같은 표준 입출력 장치를 위해 운영체제 시스템과 관련된 기능을 제공하는 클래스 System을 정의해 놓았다. 모든 멤버가 static이기 때문에 별도의 인스턴스를 생성할 필요가 없으며 표준 입출력 관리와, 환경 변수 접근, 시스템 속성, 현재 ms / ns시간 확인, 객체 복사 등에 사용된다. 표준 입출력은 시스템에서 설정을 따르겠다는 뜻으로 일반적으로 표준 입력 장치는 키보드, 표준 출력 장치는 콘솔(console, 화면)을 의미하며 환경에 따라 다른 입출력 소스가 될 수도 있다. System클래스는 표준 입출력을 위해 in, out.error와 같은 클래스 변수를 제공한다. 자료형 멤버 변수 설명 static PrintStream out 표준 출력 스트림 static In..
[JAVA] 버퍼 스트림
·
Java
버퍼(Buffer) 버퍼란 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역을 말한다. 버퍼링 (buffering) 버퍼를 활용하는 방법 또는 버퍼를 채우는 과정을 말한다. 동시에 버퍼는 입력받은 값은 버퍼에 저장해두었다가 버퍼가 가득차거나 개행 문자가 나타나면 버퍼의 내용을 한 번에 전송하게 된다 그렇다면 버퍼를 왜 사용하는 걸까? 입출력을 수행하는데에 있어서 속도차이를 극복하기 위해 사용하는 임시 저장 공간인 버퍼를 사용한다. 예를 들어 입력 장치는 1초당 100개의 데이터를 전송할 수 있고, 출력 장치는 1초당 10개의 데이터를 전송받을 수 있을 때 버퍼가 없다면 입역 장치의 속도를 출력 장치의 속도에 맞춰 입력 장치의 효율이 크게 떨어진다. - 입력 ..
[JAVA] 자바의 입출력과 스트림(I/O stream)
·
Java
스트림(stream) 스트림(stream)이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 말한다. 보통 시스템은 여러가지 입출력 장치를 가지고 있고 장치에 따라 입출력 부분을 다르게 구현하면 호환성이 떨어지기 마련이다. 이런 입출력 장치를 다루기 위한 각각의 방법이 있다면 입출력을 사용할때 어떤 데이터 형식을 사용할것인지가 이미 정해져있다는 것을 의미한다. 예를 들어 키보드로 입출력을 받는데 사용되는 입출력 방식, 데이터 형식과 네트워크를 통해 입출력되는 입출력 방식, 데이터 형식이 다르다면 시스템의 다양한 입출력 을 사용하기 위해서는 각각의 입출력 방식, 데이터 형식을 사용자가 이해하고 있어야 사용할 수 있었고 이런 방식은 프로그래밍을 힘들게 한다. 이를 해결하기 위해 자바에서는 파일이나 ..
[JAVA] 쓰레드의 동기화(synchronization)
·
Java
쓰레드의 동기화(synchronization) 쓰레드의 동기화(synchronization)란 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는 것을 말한다. 싱글 쓰레드 프로세스라면 공유 데이터에 단 하나의 쓰레드 만이 접근하므로 문제가 되지 않는다. 하지만 멀티 쓰레드 프로세스의 경우 두 개 이상의 여러 쓰레드가 자원을 공유하기 때문에 데이터에 동시에 접근하게 된다면 다른 쓰레드에 영향을 미칠 수 있기 때문에 동기화가 필요하다. 동기화를 하지 않을 경우 class Main { public static void main(String args[]) { Runnable r = new RunnableEx13(); // RunnableEx13의 객체 r 생성 new Thread(r,"쓰레드1")..
[JAVA] 쓰레드(thread)
·
Java
프로세스와 쓰레드 (process & thread) 프로세스 : 실행중인 프로그램, 자원(resources)과 쓰레드로 구성 자원이란 메모리, Cpu와 같은 것을 말함 쓰레드 : 프로세스 내에서 실제 작업을 수행, 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다. 멀티쓰레드의 장단점 대부분의 프로그램이 멀티쓰레드로 작성되어 있지만, 멀티쓰레드 프로그래밍이 장점만 있는 것은 아니다. 장점 - 시스템 자원을 보다 효율적으로 사용할 수 있다. - 사용자에 대한 응답성(responseness)이 향상된다. - 작업이 분리되어 코드가 간결해 진다. 단점 - 동기화(synchronization)에 주의해야 한다..
PP_D
'Java' 카테고리의 글 목록 (2 Page)