Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java

  1. Java 9 JShell에서 Map(맵)을 구현하는 방법

    JShell이란 무엇인가?JShell은 Java 9에 새롭게 도입된 Java 셸(Read-Eval-Print Loop, REPL) 도구입니다. 커맨드 라인(command-line) 환경에서 사용자의 입력을 읽어들이고, 즉시 실행한 후 그 결과를 화면에 출력해 주는 대화형(interactive) 도구입니다.일반적인 Java 클래스를 실행할 때처럼 main() 메서드를 작성하거나 별도의 컴파일 과정을 거칠 필요가 없기 때문에, 간단한 코드 조각이나 API 동작을 빠르게 실험하고 학습하기에 매우 유용합니다.Map 인터페이스의 특징JShe

  2. Java 9 다중 릴리스 JAR(MRJAR)란 무엇인가? 개념과 디렉터리 구조 완벽 정리

    다중 릴리스 JAR(Multi-Release JAR, MRJAR)란?다중 릴리스 JAR(multi-release jar, 이하 MRJAR)은 하나의 라이브러리 릴리스를 여러 JDK 버전에서 동작할 수 있도록 패키징한 JAR 파일입니다. 즉, JDK 9 환경에서 동작하는 라이브러리를 MRJAR 형태로 만들 수 있으며, MRJAR 내부에는 JDK 9로 컴파일된 클래스 파일이 포함됩니다. 이렇게 JDK 9로 컴파일된 클래스들은 JDK 9에서 새롭게 제공하는 API를 자유롭게 활용할 수 있다는 것이 가장 큰 장점입니다.기존 방식이라면 구버

  3. Java 9의 JShell에서 컴파일 오류를 피하는 방법

    JShell이란 무엇인가?JShell은 Java 코드를 대화형으로 실행하고 결과를 즉시 확인할 수 있는 도구입니다. JShell은 명령 프롬프트(command-line)에서 실행되는 REPL(Read-Evaluate-Print-Loop) 도구로, 별도의 클래스나 메서드 작성 없이 간단한 코드 조각을 빠르게 테스트할 수 있어 학습과 디버깅에 매우 유용합니다.컴파일 오류가 발생하는 이유JShell에서 컴파일 오류(compilation error)를 피하려면 변수를 사용하기 전에 반드시 먼저 선언해야 합니다. 일반적인 Java 프로그램과

  4. Java 9 JShell에서 ID로 스니펫을 다시 실행하는 방법

    JShell이란?JShell은 Java 9에서 처음 도입된 대화형 도구(REPL, Read-Eval-Print Loop)입니다. JShell을 사용하면 main() 메서드 없이도 표현식, 변수, 메서드, 클래스 등 다양한 코드 조각(스니펫)을 즉시 작성하고 실행하며 결과를 바로 확인할 수 있어 학습과 간단한 테스트에 매우 유용합니다.ID로 이전 스니펫 실행하기JShell은 입력된 모든 스니펫에 고유한 ID를 자동으로 부여합니다. 슬래시(/) 뒤에 해당 ID를 입력하면 이전에 실행했던 스니펫을 언제든지 다시 실행할 수 있습니다.예를

  5. Java 8과 Java 9의 차이점은 무엇일까? 핵심 변화 총정리

    Java 9는 기존 버전에는 없던 다양한 기능 개선과 새로운 특징을 도입한 릴리스입니다. 대표적으로 JShell(대화형 REPL 도구), HTTP/2 클라이언트, 자바 플랫폼 모듈 시스템(JPMS), 멀티 릴리스 JAR 파일, Stack Walking API, 인터페이스의 private 메서드, Process API 업데이트, 컬렉션 API 업데이트, Stream API 개선 등이 있습니다.그중에서도 가장 큰 변화는 코드 구조의 최상위 구성 요소가 패키지에서 모듈로 바뀌었다는 점입니다. 아래에서 Java 8과 Java 9의 주요 차

  6. Java 9의 JShell에서 기존 스니펫을 다시 실행하는 방법

    JShell은 Java 9에서 처음 도입된 REPL(Read-Evaluate-Print-Loop) 도구입니다. 이 도구를 사용하면 명령줄 환경에서 간단한 코드 조각(스니펫)을 즉시 실행하고 결과를 확인할 수 있습니다.JShell 세션 시작과 종료터미널이나 명령 프롬프트에 jshell을 입력하면 JShell 세션이 시작됩니다. 세션을 종료할 때는 /exit 명령을 사용하고, 특정 명령의 사용법을 찾아볼 때는 /help 명령을 활용합니다./reload — 기존 스니펫 다시 실행하기/reload 명령을 사용하면 현재 JShell 세션에

  7. Java 9 인터페이스에서 private 메서드와 private static 메서드 활용하기

    네, Java 9부터는 인터페이스(interface) 안에 private 메서드와 private static 메서드를 정의할 수 있습니다. 이 기능은 인터페이스 내부의 코드 중복을 제거하고 캡슐화를 강화하기 위해 도입되었습니다.private 메서드는 해당 인터페이스 내부에서만 접근할 수 있으며, 이를 구현하는 클래스나 다른 인터페이스에서는 접근하거나 상속할 수 없습니다. 즉, 외부로 노출되지 않으면서 인터페이스 내부의 보조 로직을 담당하는 역할을 합니다.주요 특징일반 private 메서드는 같은 인터페이스의 default 메서드에서

  8. Java 9에서 @SafeVarargs 어노테이션이 필요한 이유

    Java에서 가변 인자(varargs) 기능은 배열 타입의 매개변수나 동일한 메서드의 오버로드된 버전을 만들지 않고도, 가변적인 개수의 인자를 받는 메서드를 손쉽게 작성할 수 있도록 도입되었습니다.Java 9 이전 버전에서는 varargs 메서드를 제네릭(generics)과 함께 사용하면 경고 메시지가 표시되었습니다. 문제는 모든 메서드가 힙 오염(heap pollution)을 일으키는 것은 아님에도 불구하고, 컴파일러는 제네릭과 함께 사용되는 모든 varargs 메서드에 대해 경고를 출력한다는 점입니다. 이러한 불필요한 경고를 제

  9. Java 9 HTTP/2 클라이언트 API 완벽 정리: HttpClient, HttpRequest, HttpResponse

    HTTP/2란 무엇인가?HTTP/2는 기존 HTTP 프로토콜의 최신 버전입니다. 이 버전의 핵심 개선 사항은 서버와 클라이언트 간에 데이터가 어떻게 프레임화되고 전송되는지에 초점을 맞추고 있다는 점입니다. Java 9에서는 새로운 HTTP/2 프로토콜을 지원하기 위해 HTTP 클라이언트, 요청(Request), 응답(Response)을 각각 담당하는 별도의 클래스들을 제공합니다.새로운 API를 활용하면 HTTP 연결을 더욱 쉽게 유지 관리할 수 있고, 통신 속도가 빨라지며, 별도의 서드파티 라이브러리 없이도 반응성이 뛰어난 애플리케

  10. Java 9 모듈 시스템: 알아야 할 4가지 모듈 유형

    모듈 시스템(Module System)은 Java 9에서 새롭게 도입된 핵심 기능입니다. 모듈이란 패키지들의 집합을 의미하며, 크게 두 가지로 나뉩니다. 바로 내보내진 패키지(Exported Packages)와 숨겨진 패키지(Concealed Packages)입니다.내보내진 패키지와 숨겨진 패키지내보내진 패키지는 해당 모듈 외부에서도 자유롭게 사용할 수 있는 패키지입니다. 반면 숨겨진 패키지는 모듈 외부에서 접근할 수 없으며, 오직 해당 모듈 내부의 코드만 이 패키지들을 사용할 수 있습니다. 이러한 캡슐화를 통해 개발자는 라이브러리

  11. Java 9 모듈 시스템의 핵심, 모듈 설명자(Module Descriptor) 완벽 정리

    모듈(Module)은 패키지 단위로 구성된 클래스 형태의 코드와 프로퍼티 파일과 같은 정적 리소스를 하나로 묶은 코드 집합입니다. 모듈은 외부 환경에 해당 모듈을 사용하기 위해 필요한 모든 정보를 제공하며, Java 9부터 도입된 모듈 시스템(Platform Module System)의 기본 단위입니다.모듈 설명자란 무엇인가?모듈 설명자(Module Descriptor)는 모듈 시스템의 핵심 요소입니다. 모듈 디렉터리 계층 구조의 최상위 루트에 위치한 module-info.java 파일에 작성된 모듈 선언을 컴파일한 결과물로, 모듈

  12. Java 9 JLink 완벽 가이드: 커스텀 JRE 생성으로 애플리케이션 경량화하기

    JLink란 무엇인가?Java 9에 도입된 JLink의 핵심 목적은 개발자가 직접 커스텀 JRE(Customized JRE)를 생성할 수 있도록 하는 것입니다. 일반적으로 우리는 Oracle Corporation이 제공하는 기본 JRE(약 214MB)를 사용해 프로그램을 실행합니다.하지만 잠시 생각해 볼 필요가 있습니다. 아래와 같이 간단한 Hello World 메시지를 출력하는 프로그램을 실행한다고 가정해 보겠습니다.public class HelloWorldModuleTest {    publi

  13. Java 9의 JShell에서 스레드(Thread)를 생성하는 방법

    JShell이란 무엇인가?JShell은 Java 9에서 새롭게 도입된 대화형(인터랙티브) Java 셸 도구입니다. 기존 Java 프로그램처럼 main() 메서드를 선언하지 않고도 코드 조각(snippet)을 즉시 실행하고 그 결과를 바로 확인할 수 있다는 점이 가장 큰 특징입니다.JShell은 REPL(Read-Evaluate-Print Loop), 즉 읽기-평가-출력을 반복하는 도구로, 명령줄(command-line) 프롬프트에서 실행됩니다. JShell을 활용하면 변수, 메서드, 클래스, 스크래치 변수(scratch variab

  14. Java 9 Flow API로 리액티브 스트림(Reactive Streams) 구현하는 방법

    Flow API란 무엇인가?Flow API는 Java 9부터 도입된 리액티브 스트림(Reactive Streams) 명세의 공식 지원 기능입니다. 이 API는 이터레이터(Iterator) 패턴과 옵저버(Observer) 패턴을 결합한 형태로, 데이터 항목을 비동기적으로 처리하면서도 백프레셔(backpressure)를 효과적으로 관리할 수 있게 해줍니다.다만 Flow API는 RxJava처럼 최종 사용자를 위한 완성형 라이브러리가 아니라, 서로 다른 리액티브 라이브러리 간의 상호 운용성(interoperability)을 보장하기 위한

  15. Java 9 JShell에서 Java 버전, 공급업체 및 OS 정보 확인하는 방법

    Java 9부터 Java 프로그래밍 언어에 JShell이라는 강력한 도구가 새롭게 도입되었습니다. JShell을 활용하면 선언문(declarations), 문장(statements), 표현식(expressions)과 같은 코드 조각을 별도의 클래스나 컴파일 과정 없이 즉시 실행하고 결과를 확인할 수 있습니다.System.getProperty() 메서드로 환경 정보 조회하기System 클래스의 정적 메서드인 getProperty()를 사용하면 Java 버전과 공급업체(Vendor) 정보뿐만 아니라 OS 버전과 OS 이름 같은 시스템

  16. Java 9 Optional 클래스에서 스트림(Stream) 얻는 방법 – stream() 메서드 완벽 정리

    자바의 Optional 클래스는 null이 아닌(non-null) 값을 담거나 담지 않을 수도 있는 일종의 컨테이너 역할을 합니다. 이 클래스는 코드 곳곳에서 발생하는 NullPointerException을 줄이기 위해 Java 8에서 처음 도입되었습니다.그리고 Java 9에서는 기본값(default value)을 더욱 편리하게 다룰 수 있도록 세 가지 메서드가 새롭게 추가되었습니다. 바로 ifPresentOrElse(), or(), 그리고 stream()입니다.Optional에서 스트림 얻기stream() 메서드는 Optional

  17. Java 9 REPL(JShell)의 중요성과 핵심 기능 총정리

    REPL은 Read-Eval-Print-Loop(읽기-평가-출력-반복)의 약자입니다. 사용자가 표현식을 입력하면 이를 즉시 평가하고 그 결과를 바로 반환해 주는 대화형 셸 환경입니다. REPL을 사용하는 가장 큰 목적은 자바 파일을 만들고, 컴파일한 뒤 실행하는 번거로운 과정 없이 자바 프로그램과 빠르게 상호작용하는 것입니다. Java 9부터 도입된 JShell은 개발자에게 매우 유용한 도구일 뿐만 아니라, 자바 언어를 학습하는 데에도 탁월한 학습 환경을 제공합니다.REPL의 주요 특징Java 9에 기본적으로 내장되어 있어 별도 설

  18. Java 9의 Compact Strings와 Java 6의 Compressed Strings, 무엇이 다를까?

    Java 문자열 최적화 기술의 변화Java는 버전이 올라가면서 메모리 효율성을 높이기 위한 문자열 최적화 기술을 여러 차례 도입했습니다. 그중 대표적인 것이 Java 6에서 처음 등장한 Compressed Strings(압축 문자열)과, 이를 대체하기 위해 Java 9에서 새롭게 도입된 Compact Strings(컴팩트 문자열)입니다. 두 기술은 이름이 비슷하지만 내부 구현 방식과 성능 면에서 확연한 차이가 있습니다.Compact Strings란?Compact Strings는 Java 9에서 도입된 기능으로, 기존 Java 6의

  19. Java 9의 StackWalker.getCallerClass() 메서드: 호출자 클래스를 확인하는 방법

    Java 9는 StackWalker API를 통해 지연(lazy) 접근 방식의 효율적인 스택 탐색 기능을 제공하며, 스택 트레이스를 손쉽게 필터링할 수 있습니다. StackWalker 객체를 사용하면 호출 스택을 순회하고 각 스택 프레임에 접근할 수 있습니다. 이 클래스에는 walk(), forEach(), getCallerClass() 등 유용한 메서드들이 포함되어 있습니다. getCallerClass() 메서드는 현재 실행 중인 메서드를 호출한 클래스, 즉 호출자(caller) 클래스를 반환합니다. 호출자 클래스 정보를 얻으려면

  20. Java 9 JShell에서 모든 클래스, 인터페이스, 열거형 목록을 확인하는 방법

    Java 9에 새롭게 도입된 JShell은 REPL(Read-Evaluate-Print-Loop, 읽기-평가-출력-반복) 방식으로 동작하는 대화형 도구입니다. 이 도구를 사용하면 Java 코드를 실행하고 결과를 즉시 확인할 수 있습니다. 별도의 프로젝트를 생성하거나 컴파일·빌드 과정을 거치지 않고도 표현식이나 간단한 알고리즘을 빠르게 테스트할 수 있다는 점이 큰 장점입니다. JShell을 활용하면 표현식 실행, import 문 사용은 물론 클래스, 메서드, 변수 정의까지 자유롭게 할 수 있습니다.그렇다면 현재 JShell 세션에서

Total 1926 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:56/97  20-컴퓨터/Page Goto:1 50 51 52 53 54 55 56 57 58 59 60 61 62