Programing Language/Java

Programing Language/Java

Lambda Expression

Lambda Expression람다식이란 함수를 하나의 식으로 표현한 것이다.  함수를 람다식으로 표현하면 메소드의 이름이 필요없기 때문에, 익명 함수의 한 종류라고 볼 수 있다.  // 람다 방식(매개변수, ... ) -> { 실행문 ... }// 예시() -> "Hello World!"; 해당 람다식을 통해 다음과 같은 장점을 얻을 수 있다. 불필요한 코드를 줄이고, 가독성을 높힘함수를 만드는 과정없이 한번에 처리가능하여 생산성 증대병렬 프로그래밍에 용이  Java에서 제공하는 함수형 인터페이스Java에서는 자주 사용될 것 같은 함수형 인터페이스가 이미 정의되어 있다.   Supplier 매개변수 없이 반환값만 갖는 함수형 인터페이스이다. get() 함수를 이용하여 함수를 실행한다.// 정의@Func..

Programing Language/Java

Enum

최근 프로젝트를 진행하다가 "이건 Enum으로 빼서 처리하면 좋을 것 같은데요?"라는 조언을 들었다. Enum을 자바 공부하면서 들어보긴 했는데 어떠한 점이 좋은지, 어떻게 쓰면 되는지에 대해서는 명확하게 잘 알지는 못하기에 오늘은 Java의 Enum에 대해서 알아보고자 한다.   EnumEnum은 Enumeration의 약자로 열거, 목록의 뜻을 가지고 있으며 "상수의 데이터 집합"이라고 생각하면 된다. 일반적으로 상수를 정의하는 방법은 여러 가지가 존재하는데 이는 다음과 같다.  final 상수변수를 final 제어자를 이용해 변수를 상수화 한다. 동시에 static을 사용하여 메모리에 한 번만 할당 되게 설정한다는 장점을 가지지만 접근 제어자들 때문에 가독성이 좋지 못하다는 단점이 있다. priva..

Programing Language/Java

Optional

오늘은 Optional에 대해서 알아보자 OptionalJava8에서 나온 문법으로 NullPointerException(NPE)을 방지하도록 도와주는 클래스이다. Optional 을 이용하여 사용할 수 있으며 null이 올 수 있는 값을 감싸는 Wrapper 클래스로 나타낸다. 아래 코드와 같이 값을 저장하기 때문에, 참조하더라도 NPE가 발생하지 않도록 도와준다.public final class Optional { // If non-null, the value; if null, indicates no value is present private final T value; ...}  사용방법Optional.empty() : 값이 null인 경우Optional은 Wrapper 클래스이기 때문에..

Programing Language/Java

Stream

오늘은 Java Stream에 대해서 알아보고자 한다.   Stream스트림(Stream)이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의 할 수 있다. 데이터 처리 연산 : 스트림은 함수형 프로그래밍 언어에서 일반적으로 지원하는 연산(filter, map, reduce, find, match, sort...) 등으로 데이터를 조작할 수 있으며, 스트림 연산을 데이터를 순차적으로 또는 병렬적으로 실행 할 수 있다. 소스 : 스트림은 컬렉션, 배열, I/O 자원 등의 데이터 제공 소스로부터 데이터를 소비한다. 정렬된 컬렉션으로 스트림을 생성하면 정렬이 그대로 유지된다. 연속된 요소 : 컬렉션과 마찬가지로 스트림은 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. 컬..

Programing Language/Java

Thread (수정중)

오늘은 자바를 이용한 Thread 프로그래밍에 대해서 알아보고자 한다.   프로세스 vs 쓰레드프로세스 : 운영체제로 부터 자원을 할당받는 작업의 단위쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위 쉽게 이야기하면 프로세스는 실행중인 프로그램을 의미하며, 이런 프로그램은 OS위에서 실행된다. OS는 프로그램 실행을 위한 프로세스를 할당해줄때, 프로세스 안에 프로그램 Code와 Data 그리고 메모리영역(Stack, Heap)을 함께 할당해준다. Code : Java main 메소드와 같은 코드 Data : 프로그램이 실행 중 저장 할 수 있는 저장 공간(전역변수, 정적변수, 배열 ..)Memory(메모리 영역) : Stack: 지역변수, 매개변수 리턴 변수를 저장하는 공간Heap: 프로그램이 ..

Programing Language/Java

String 객체

오늘은 자바의 String 클래스에 대해서 정리하고 관련 알고리즘 문제를 해결 할 때 쓰는 패턴들을 정리해보고자 한다.    java String 아래는 java String 객체에서 사용할 수 있는 메소드와 기능을 정리한 표이다. 여기서 몇가지 헷갈리는 점을 몇개 체크해 보자면 아래와 같다. python에서 문자열을 접근할때 string[0] 처럼 인덱스 접근이 안되고, charAt()을 통해 접근한다. java collection에서 객체 배열의 길이는 size() String에서 길이는 length()로 구한다.문자열 함수설명참고equal해당 함수는 문자열 간의 “대소문자를 구분”하여서 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다.단, String과 StringBuffer간의..

Programing Language/Java

Collections Framework

오늘은 JCF(Java Collection Framework)에 대해서 정리해보고자 한다. 간단하게 말하자면 흔히 쓰는 자료구조 (스택, 큐, 링크드 리스트, 맵.... )등을 자바 클래스로 구현한 모음집이다.    컬렉션 프레임워크 종류  컬렉션 프레임워크는 크게 Collection 인터페이스와 Map 인터페이스로 나뉜다. List, Set 인터페이스와 달리 Map은 두개의 데이터를 묶어 한쌍으로 다루기 때문에 Collections 인터페이스와 따로 분리되어 있다.     Collection 인터페이스 - List, Set, Queue에 상속하는 최상위 컬렉션 타입- 다양한 종류의 컬렉션을 받아 자료를 삽입하거나 삭제, 탐색 기능을 할 수 있다. 메서드기능boolean add(Object o)boole..

Programing Language/Java

[Java] Java가 실행되는 과정과 JDK, JRE

Java가 실행되는 과정 자바의 소스코드는 다음과 같은 과정을 통해 실행된다. 📢 JVM : Java Virtual Machine 으로 자바 프로그램이 실행되는 가상의 공간으로 운영체제와 상관없이 JVM이 구성되어 있다면, JAVA 프로그램 실행이 가능하다. JRE Java Runtime Environment을 의미하며, Java로 컴파일 된 프로그램을 실행하는 환경을 의미한다. JDK Java Developer Kit 이라고 하며 Java 어플리케이션 개발을 위해 반드시 필요한 것이며 Java 컴파일러와 JRE을 포함하고 있다. 즉 JRE만 설치하게 되면 자바 프로그램을 실행 할 수 있으나, 자바 소스코드를 작성하여 실행 시키는 것은 불가능 하다.

JHeaon
'Programing Language/Java' 카테고리의 글 목록