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

Java

  1. Java 9 StackWalker API로 스택 프레임 필터링하는 방법

    StackWalker API는 프로그램 실행 중에 스택 트레이스(stack trace) 정보를 스트림 형태로 제공합니다. 이 API는 가상 머신(VM)이 전체 스택의 스냅샷을 캡처하도록 요구하며, 필터링 작업을 위해 스택 프레임 요소들의 배열을 반환합니다. walk() 메서드를 사용하면 스택 프레임을 건너뛰거나(skip) 제거하고(drop) 개수를 제한(limit)할 수 있습니다. 또한 filter() 메서드를 활용해 클래스 기준으로 특정 조건에 맞는 첫 번째 스택 프레임만 가져오거나, 일치하는 모든 프레임을 한꺼번에 조회할 수도

  2. Java 9 플랫폼 로깅 API(Platform Logging API) 완벽 가이드

    Java 9에서 새롭게 도입된 플랫폼 로깅 API(Platform Logging API)는 메시지를 기록하기 위한 서비스 인터페이스를 제공하여, 로그 메시지의 소비자(consumer)가 이를 활용할 수 있도록 설계되었습니다.LoggerFinder와 ServiceLoader의 역할플랫폼 로깅 API의 핵심인 LoggerFinder 구현체는 java.util.ServiceLoader API를 통해 시스템 클래스로더(System ClassLoader)에 의해 로드됩니다. 이 구현체를 기반으로 애플리케이션은 java.util.logging

  3. Java 9의 JShell을 활용한 ArrayList 구현 방법

    JShell이란 무엇인가?JShell은 명령줄에서 자바 코드를 입력하는 즉시 실행 결과를 화면에 출력해 주는 대화형 자바 셸 도구입니다. JShell은 REPL(Read Evaluate Print Loop) 방식으로 동작하며 명령 프롬프트에서 바로 실행할 수 있습니다. 명령 프롬프트에 jshell이라고 입력하면 JShell이 시작되고, /exit 명령을 입력하면 종료됩니다.특히 JShell에서는 간단한 코드 조각을 테스트할 때 별도의 main() 메서드를 작성할 필요가 없습니다. 클래스 파일을 만들고 컴파일하는 과정 없이 코드를 한

  4. Java 9의 새로운 버전 관리 체계 완벽 가이드

    Java 9의 새로운 버전 관리 체계 개요Java 9부터는 시맨틱 버저닝(Semantic Versioning) 방식과 일관성을 갖춘 새로운 버전 관리 체계가 적용되었습니다. 버전 번호는 점(.)으로 구분된 비어 있지 않은(non-empty) 문자열 시퀀스로 구성되며, 크게 세 가지 핵심 요소인 메이저 버전 번호($MAJOR), 마이너 버전 번호($MINOR), 보안 수준($SECURITY)으로 이루어집니다.새로운 버전 관리 규칙은 Runtime.Version 클래스에 문서화되어 있으며, 이 클래스를 통해 프로그램 실행 중에도 버전

  5. Java 9의 CLDR(Common Locale Data Repository) 완벽 정리: 국제화 개선 사항 살펴보기

    Java 9의 국제화(Internationalization) 개선 사항 중 가장 주목할 만한 변화는 바로 CLDR 로케일 데이터가 기본값으로 활성화된 것입니다.이번 글에서는 Java 9에 도입된 로케일 데이터 소스의 종류와 우선순위 설정 방법을 자세히 알아보겠습니다.로케일 데이터의 4가지 소스Java 9에서는 아래 키워드를 통해 식별되는 네 가지 로케일 데이터 소스를 제공합니다.1. CLDRUnicode 컨소시엄이 운영하는 Common Locale Data Repository(CLDR) 프로젝트에서 제공하는 로케일 데이터입니다. 전

  6. Java 9 통합 JVM 로깅(-Xlog) 완벽 가이드: 개념부터 실전 예시까지

    Java 9는 JVM 내부 구성 요소 전반에 걸쳐 상세한 수준 제어가 가능한 통합 로깅 시스템(Unified Logging System)을 도입했습니다. 새로운 명령줄 옵션인 -Xlog 하나만으로 모든 로깅 설정을 일관되게 관리할 수 있으며, 이를 통해 복잡한 시스템 수준의 JVM 구성 요소에서 발생하는 문제에 대한 근본 원인 분석(RCA, Root Cause Analysis)을 손쉽게 수행할 수 있습니다. -Xlog 옵션은 JVM의 모든 로깅 구성 요소를 제어하는 데 사용됩니다. -Xlog의 인자(arguments)는 다음 규칙

  7. Java 9 JShell에서 문자열(String)을 구현하고 활용하는 방법

    JShell은 Java 9에서 처음 공식적으로 도입된 REPL(Read-Eval-Print Loop) 애플리케이션입니다. 명령줄(command-line) 프롬프트 환경에서 간단한 Java 프로그램과 작은 로직들을 즉시 실행하고 평가할 수 있는 도구로, 문장(statement), 간단한 프로그램, 루프(loop), 표현식(expression) 등을 손쉽게 테스트할 수 있습니다. 입력을 읽고 평가한 후 결과를 출력하는 방식으로 동작하기 때문에 학습이나 빠른 프로토타이핑에 매우 유용합니다.아래 예제를 통해 JShell에서 String 클

  8. Java 9에서 JShell 디버깅 모드 사용하는 방법

    JShell은 코드 조각(snippet)을 클래스에 넣지 않고도 바로 실행할 수 있는 REPL(Read-Eval-Print Loop) 도구입니다. 이 도구를 사용하면 Java에서 선언문, 실행문, 표현식을 손쉽게 평가할 수 있으며, 코드의 일부를 테스트하기 위해 별도로 main() 메서드를 만들 필요가 없습니다. JShell에는 내부 동작을 확인할 수 있는 디버깅 기능이 내장되어 있습니다. "/debug" 명령어를 입력하면 JShell 구현에 대한 디버깅 정보가 출력됩니다. 명령어를 입력하는 순간 디버깅 모드가 켜

  9. 자바 9의 HTTP/2 클라이언트 API란? 특징과 사용법 완벽 정리

    HTTP/2 클라이언트 API 소개자바 9에서 새롭게 도입된 HTTP/2 클라이언트 API는 기존 HTTP/1.1 대비 뛰어난 성능 개선을 제공하며, 서버 푸시(Server Push) 이벤트까지 지원합니다. 덕분에 웹사이트를 더욱 효율적이고 빠르게 탐색할 수 있습니다.특이한 점은 HTTP/2 클라이언트가 jdk.incubator.httpclient라는 이름의 인큐베이터(incubator) 모듈 형태로 제공된다는 것입니다. 인큐베이터 모듈이란 아직 정식 기능으로 확정되지 않아, 향후 자바 버전에서 변경 사항이 생길 수 있는 실험적 모

  10. Java 9 ProcessHandle 인터페이스 완벽 가이드: 프로세스 관리의 핵심 기능과 사용법

    Java 9 ProcessHandle 인터페이스란?Java 9에서 새롭게 도입된 ProcessHandle 인터페이스는 운영체제의 네이티브 프로세스와 상호작용할 수 있게 해주는 강력한 기능입니다. 이 인터페이스를 활용하면 프로세스 관련 작업을 수행하고 상태를 확인할 수 있으며, 프로세스 ID(pid), 시작 시간, 누적 CPU 사용 시간, 인수(arguments), 명령어(command), 사용자(user), 부모 프로세스, 자식 프로세스(descendants) 등의 정보를 손쉽게 조회할 수 있습니다.ProcessHandle이 제공하

  11. Java 9의 변수 핸들(VarHandle)이란 무엇일까?

    변수 핸들(Variable Handle)은 하나의 변수 또는 변수 집합에 대한 참조를 의미합니다. 여기에는 힙(heap) 데이터 구조에 존재하는 정적 필드(static field), 비정적 필드(non-static field), 그리고 배열의 개별 요소까지 모두 포함됩니다.변수 핸들은 기존의 메서드 핸들(Method Handle)과 개념적으로 유사하며, java.lang.invoke.VarHandle 클래스를 통해 표현됩니다. 객체 생성 시에는 java.lang.invoke.MethodHandles.Lookup의 정적 팩토리 메서드

  12. Java 9 JShell에서 람다 표현식(Lambda Expression) 구현하는 방법

    JShell은 자바 최초의 REPL(Read-Eval-Print Loop)이자 명령줄(command-line) 도구로, 자바 프로그래밍 언어의 다양한 요소를 대화형으로 실행하고 확인할 수 있게 해줍니다. 이 도구를 활용하면 클래스에 속하지 않고도 특정 기능을 독립적으로 테스트할 수 있습니다. JShell은 사용자의 입력을 받아 읽고 결과를 즉시 출력하는 간단하고 편리한 프로그래밍 환경을 명령줄에서 제공합니다. 람다 표현식(lambda expression)은 어떤 클래스에도 소속되지 않은 채 생성되는 함수로, 코드를 훨씬 간결하게 작

  13. Java 9 Process API에서 부모(상위) 프로세스를 가져오는 방법

    ProcessHandle 인터페이스란?Java 9에서 도입된 ProcessHandle 인터페이스를 사용하면 운영체제 프로세스에 대한 다양한 작업을 수행하고 상태를 확인할 수 있습니다. 이 인터페이스는 프로세스의 고유 PID, 시작 시간, CPU 사용 시간, 사용자, 부모 프로세스, 그리고 자식 프로세스(descendants) 등의 정보를 제공합니다.특히 부모 프로세스에 접근하려면 parent() 메서드를 호출하면 되며, 반환 타입은 Optional<ProcessHandle>입니다. 만약 자식 프로세스에 부모가 없거나 부모

  14. Java 9에서 String 클래스에 새로 추가된 메서드: chars()와 codePoints()

    Java에서 String은 불변(immutable) 클래스입니다. Java 9에서는 String 클래스에 두 가지 유용한 메서드가 새롭게 추가되었는데, 바로 chars()와 codePoints()입니다. 두 메서드 모두 IntStream 객체를 반환하기 때문에, Java 8부터 도입된 Stream API와 함께 활용하면 문자열을 더욱 간결하고 직관적으로 처리할 수 있습니다. 1) chars() chars() 메서드는 문자열을 구성하는 각 char 값을 확장(zero-extension)한 int 값들의 스트림을 반환합니다. 즉, 문

  15. Java 9 JShell로 피보나치 수열 구현하기

    JShell이란?JShell은 Java 9에서 새롭게 도입된 Java 셸 도구로, 자바 코드를 작성하면 그 결과를 즉시 출력해 주는 기능을 제공합니다. 명령줄 프롬프트에서 바로 실행할 수 있는 REPL(Read-Evaluate-Print-Loop) 도구이기 때문에 간단한 코드 테스트나 학습용으로 매우 유용합니다.피보나치 수열이란?피보나치 수열(Fibonacci Series)은 첫 두 숫자 이후의 모든 숫자가 바로 앞의 두 숫자의 합으로 이루어지는 수열을 의미합니다. 예를 들어 0, 1부터 시작하면 다음과 같은 형태가 됩니다.0, 1

  16. Java 9에서 현재 스레드의 모든 스택 프레임을 표시하는 방법

    스택 워킹 API(Stack Walking API)는 호출 스택(call stack)을 순회하며 정보를 추출할 수 있는 유연한 메커니즘을 제공합니다. 이 API를 활용하면 각 프레임을 지연(lazy) 방식으로 필터링하고 접근할 수 있어 불필요한 연산 없이 필요한 정보만 효율적으로 얻을 수 있습니다. StackWalker 클래스는 이 스택 워킹 API의 진입점(entry point) 역할을 담당합니다.여기서 말하는 스택 트레이스(stack trace)는 특정 시점의 호출 스택에 대한 표현입니다. 각 요소는 하나의 메서드 호출(meth

  17. Java 9 컴팩트 문자열(Compact Strings)이란? 개념과 동작 원리

    컴팩트 문자열(Compact Strings)이란?Java 9부터 JVM은 컴팩트 문자열(Compact Strings)이라는 새로운 기능을 도입해 문자열을 더 효율적으로 최적화합니다. 기존에는 문자열 내부를 char[] 배열로 저장했지만, 이제는 byte[] 배열로 표현할 수 있게 되었습니다.문자 인코딩 방식으로는 UTF-16 또는 Latin-1(ISO-8859-1)을 사용할 수 있습니다. JVM이 문자열에 Latin-1로 표현 가능한 문자만 포함되어 있다고 판단하면, 내부적으로 문자당 1바이트만 사용합니다. 반면 한글처럼 UTF-1

  18. Java 9 JShell에서 별 패턴 출력하기: REPL 도구 활용 가이드

    JShell이란 무엇인가?JShell은 Java 9에서 새롭게 도입된 REPL(Read-Eval-Print Loop) 도구로, Java 코드를 작성하고 그 결과를 즉시 확인할 수 있게 해줍니다. JShell을 사용하면 새 프로젝트를 생성하거나 컴파일·빌드 과정을 거치지 않고도 표현식(expression)이나 간단한 알고리즘을 바로 평가해볼 수 있습니다.또한 표현식 실행 외에도 import 문을 사용하거나 클래스, 메서드, 변수를 정의할 수 있습니다. 참고로 JShell은 Java 9의 JDK에는 포함되어 있지만, JRE에는 포함되지

  19. Java 9에서 모든 모듈 이름을 확인하는 방법

    Java 9에서는 모듈(Module) 개념이 새롭게 도입되었습니다. 모듈이란 코드와 데이터를 하나로 묶은, 이름이 지정된 자기 기술적(self-describing) 컬렉션입니다.여기서 코드는 자바 클래스와 인터페이스 같은 타입들을 포함하는 패키지의 집합으로 구성되며, 데이터에는 리소스 및 기타 정적 정보가 포함됩니다. 또한 각 모듈은 고유한 이름, 의존성(dependencies), 그리고 외부에 공개할 내보낸(exported) 패키지 정보를 가지고 있습니다.모듈 선언 문법module com.tutorialspoint.mymodule

  20. Java 9 module-info.java 파일의 구성 요소 완벽 정리

    Java 9 모듈 시스템과 module-info.java 파일모듈(module)은 애플리케이션을 구성하는 독립적인 단위로, 하나의 기능을 담당합니다. Java 9에서 도입된 플랫폼 모듈 시스템(JPMS)은 코드를 더 체계적이고 안전하게 관리할 수 있도록 도와줍니다.모듈은 다음 세 가지 중요한 구성 요소를 포함합니다.이름(Name): 모듈을 고유하게 식별하기 위한 식별자의존성(Dependencies): 현재 모듈이 의존하는 다른 모듈들내보낸 패키지(Exported Packages): 외부 애플리케이션이 사용할 수 있도록 공개된 패키지

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