기록/Programming Language 7

Java - 파일 관리

Java의 파일 관리?2024.06.05 - [공부한 기록/Programming Language] - Java - 스트림 Stream (2) Java - 스트림 Stream (2)2024.04.24 - [공부한 기록/Programming Language] - Java - 스트림 Stream입출력 처리 여기서 다루는 스트림의 개념은 이전 스트림 관련글과 같다. 스트림에 관한 내용을 다시 상기하려면 위 링크를 누르고aitidev.tistory.com 이전에 작성한 글의 연장선인데, 입출력 스트림에 대한 내용이었다. 이런 입출력 스트림은 파일이나 장치를 읽거나 쓰기 위해 사용하는데 파일 자체의 관리 기능은 제공하지 않는다. Java에서는 이러한 필요를 충족시키기 위해 File 클래스를 제공한다. File 클래..

Java - GUI

GUIGraphic User Interface의 약자로, 화면에 정보를 시각적으로 표현한, 사용자와 컴퓨터 간의 상호작용 방식이다. 우리가 당연 시 여기는 노트북을 켰을 때의 화면이 그것이다! 오늘은 이러한 GUI를 Java에서 어떻게 다루는지에 대해 공부한 내용을 정리하려 한다. GUI 프로그래밍을 하려면 아래 두 가지 라이브러리를 다룰 수 있다. AWT (abstract windows toolkit) : 운영체제가 제공하는 UI 컴포넌트 java 라이브러리다! 중량 컴포넌트라고도 하며, 운영체제에 따라 외형이 다르다.Swing : 순수 자바로 작성된 경량 컴포넌트다! 모든 스윙 컴포넌트는 AWT 컴포넌트와 완전 호환한다. AWTSwing구성 요소무거운 컴포넌트 (운영 체제 객체의 래퍼)가벼운 컴포넌트..

Java - 스트림 Stream (2)

2024.04.24 - [공부한 기록/Programming Language] - Java - 스트림 Stream Java - 스트림 Stream스트림 Stream 스트림은 사전적 의미로 '흐르다'라는 의미를 가진다. 프로그래밍 분야에서는 이는 '데이터의 흐름'을 일컫는다. 스트림에서는 스트림 데이터와 스트림 연산의 개념을 모두 포함aitidev.tistory.com  입출력 처리 여기서 다루는 스트림의 개념은 이전 스트림 관련글과 같다. 스트림에 관한 내용을 다시 상기하려면 위 링크를 누르고 읽어보자!  입출력(I/O)은 단어 그대로, 시스템 및 소프트웨어의 입력과 출력을 의미하는 것은 바로 알 수 있을 것이다. 이번에는 스트림의 입출력에 대해 알아보도록 하겠다!  입출력 스트림은 크게 2가지로 나뉘는데..

Java - 스트림 Stream

스트림 Stream 스트림은 사전적 의미로 '흐르다'라는 의미를 가진다. 프로그래밍 분야에서는 이는 '데이터의 흐름'을 일컫는다. 스트림에서는 스트림 데이터와 스트림 연산의 개념을 모두 포함한다.  JDK 8에서 새롭게 추가된 기능이라고 하며, 데이터 집합체를 반복적으로 처리할 때 사용한다. 가장 중요한 점은 데이터 소스가 무엇이든 같은 방식으로 다룰 수 있다는 것이다. 컬렉션이나 배열 뿐만 아니라 파일의 데이터도 같은 방식으로 다룰 수 있다. 스트림은 데이터를 읽기만 한다. 따라서 데이터소스를 변경하거나 하지 않는다.  컬렉션과 달리 일회용이며, 일시적인 저장공간을 필요로 하지 않는다. 컬렉션이 재사용이 가능하다. 스트림은 내부반복 Internal iteration으로 작업을 처리한..

Java - 컬렉션 프레임워크 Collection Framework

컬렉션 동일 객체를 여러 개 저장하고 조작할 때가 자주 있다. 요소를 하나 추가한다고 했을 때 배열은 고정된 크기이므로 새로운 크기의 배열을 생성하고 다시 요소를 순서대로 집어넣는 과정이 필요하다. 그런데 이러한 과정은 성능이 좋지 않다. 컬렉션이란, 데이터를 한 곳에 모아서 편하게 저장 및 관리하는 가변 크기의 객체 컨테이너이다. 동일하거나 유사한 객체 집단을 저장 및 조작하기 위한 코드가 필요했기 때문에 생겨났다. 컬렉션 프레임워크는 이러한 객체를 모아 효율적으로 관리할 수 있도록 해준다.   List, Queue, Set 차이는 다음과 같다.  첨언하자면, Map에서는 반복자가 제공되지 않는다.   여러 컬렉션 인터페이스List 컬렉션위의 설명처럼 객체 순서가 있..

Java - 람다식과 함수형 인터페이스(Predicate, Consumer, Supplier, Function, Operator)

함수형 프로그래밍 먼저 프로그래밍 패러다임에 대한 분류를 보자. 명령형 프로그래밍 : 무엇을 어떻게 하라고 지시함. 선언적 프로그래밍 : 무엇을 하라고만 지시함. 어떻게 하라고 지시하진 않음. 보이다시피 선언적 프로그래밍은 "해야 할 일"에 집중한다. 따라서 ‘무엇을 어떻게 해야할지’ 일일이 명령할 필요가 없고, ‘무엇을’ 하라고만 지시하면 된다. 즉, 짧고 편하게 무언가를 할 수 있다는 것이다. 각 패러다임으로 샌드위치를 만든다고 했을 때 예를 들면 다음과 같다. 명령형 프로그래밍 - 샌드위치 재료를 하나하나 언급하며 이를 만들어 달라고 한다. 선언적 프로그래밍 - 각각 정해진대로 샌드위치를 만들어 달라고 한다. 이런 선언적 프로그래밍 내에 함수형 프로그래밍이 있고, 이는 명령문을 일일이 읽어들이는 것..

Java - 인터페이스와 특수 클래스(추상 클래스)

Java Java와 Java에 대한 특징(컴파일러, JVM의 인터프리팅) 같은 자세한 정보는 시중의 책이나 타 블로그 글에 자세히 나와있으니 언급하지 않고, 여기서는 고급 Java에 대해 공부한 내용만 다룰 계획이다.  추상 클래스 추상 클래스는 상속계층에서 자식 멤버(필드, 메소드)의 이름을 통일하기 위해 사용한다.자체적으로 객체를 생성할 수 없다.추상 클래스에는 아예 없거나 하나 이상 있는 추상 메소드가 포함된다. 이 추상 메소드는 ‘무엇을 할지’ 선언하지, ‘어떻게 할지’ 선언하지는 않는다.추상 클래스의 기본적인 예제를 보자.abstract class 클래스 이름{ //필드 ...int a, b; //생성자 ... a(){} //메소드 ...일반덕으로 하나 이상의 ..

728x90
반응형