카테고리 아카이브: 프로그램 작성

Spring에서의 연결 : @Autowired, @Resource 및 @Inject

1. 개요 이 Spring Framework 기사는 @Resource , @Inject 및 @Autowired 어노테이션 과 같은 종속성 주입과 관련된 어노테이션의 사용을 보여줍니다 . 이러한 주석은 종속성을 해결하는 선언적 방법을 클래스에 제공합니다. 예를 들면 : @Autowired ArbitraryClass arbObject; 직접 인스턴스화하는 것과는 반대로 (명령 적 방식) 예를 들면 다음과 같습니다. ArbitraryClass arbObject = new ArbitraryClass(); 세 가지 주석 중 두 개는 Java 확장 패키지에 속합니다 : javax.annotation.Resource 및 javax.inject.Inject . @Autowired 주석은에 속하는 org.springframework.beans.factory.annotation의 패자세히보기 »

자바 스레드를 죽이는 방법

1. 소개 이 간단한 기사에서는 Thread.stop () 메서드가 더 이상 사용되지 않기 때문에 그렇게 간단하지 않은 Java 에서 스레드 를 중지하는 방법에 대해 설명합니다. Oracle의이 업데이트에서 설명한대로 stop () 은 모니터링 대상 개체를 손상시킬 수 있습니다. 2. 플래그 사용 스레드를 만들고 시작하는 클래스부터 시작하겠습니다. 이 작업은 저절로 끝나지 않으므로 해당 스레드를 중지 할 수있는 방법이 필요합니다. 이를 위해 원자 플래그를 사용할 것입니다. public class ControlSubThread implements Runnable { private T자세히보기 »

Java로 사용자 지정 주석 만들기

1. 소개 Java 주석은 소스 코드에 메타 데이터 정보를 추가하기위한 메커니즘입니다. Java의 강력한 부분이며 JDK5에 추가되었습니다. 주석은 XML 설명자 및 마커 인터페이스 사용에 대한 대안을 제공합니다. 패키지, 클래스, 인터페이스, 메서드 및 필드에 연결할 수 있지만 주석 자체는 프로그램 실행에 영향을주지 않습니다. 이 자습서에서는 사용자 지정 주석을 만드는 방법과이를 처리하는 방법에 중점을 둘 것입니다. 주석 기본 사항에 대한 기사에서 주석에 대해 자세히 알아볼 수 있습니다. 2. 사용자 지정 주석 만들기 객체를 JSON 문자열로 직렬화 할 목적으로 세 가지 사용자 지정 주석을 만들 것입니다. 우리는 객체가 직렬화 될 수 있음을 컴파일러에 알리기 위해 클래스 수준에서 첫 번째 것을 사용할 것입니다. 다음으로 두 번째 항목을 JS자세히보기 »

Java에서 목록을 문자열로 변환

1. 소개 이 빠른 기사에서는 List of elements를 String 으로 변환하는 방법을 살펴 보겠습니다 . 이것은 검사 / 디버깅을 위해 사람이 읽을 수있는 형식으로 콘솔에 내용을 인쇄하는 것과 같은 특정 시나리오에서 유용 할 수 있습니다. 2. 표준 toString () A의 목록 가장 간단한 방법 중 하나 는 List 에서 toString () 메서드를 호출하는 것입니다 . @Test public void whenListToString_thenPrintDefault() { List intLIst = Arrays.asLi자세히보기 »

Java URL 인코딩 / 디코딩 가이드

1. 소개 간단히 말해 URL 인코딩은 URL의 특수 문자를 사양을 준수하고 올바르게 이해하고 해석 할 수있는 표현으로 변환합니다. 이 기사에서는 URL 이 사양을 준수하고 네트워크를 통해 올바르게 전송되도록 URL을 인코딩 / 디코딩하거나 데이터를 형성하는 방법에 초점을 맞출 것입니다. 2. URL 분석 기본 URI 구문은 다음과 같이 일반화 할 수 있습니다. scheme:[//[user:[email protected]]host[:port]][/]path[?query][#fragment] URI 인코딩의 첫 번째 단계는 해당 부분을 검사 한 다음 관련 부분 만 인코딩하는 것입니다. URI의 예를 살펴 보겠습니다. String testUrl =자세히보기 »

JAX-WS 소개

1. 개요 JAX-WS (Java API for XML Web Services)는 SOAP (Simple Object Access Protocol) 웹 서비스를 만들고 사용하기위한 표준화 된 API입니다. 이 기사에서는 SOAP 웹 서비스를 만들고 JAX-WS를 사용하여 연결합니다. 2. SOAP SOAP는 네트워크를 통해 메시지를 보내기위한 XML 사양입니다. SOAP 메시지는 모든 운영 체제와 독립적이며 HTTP 및 SMTP를 포함한 다양한 통신 프로토콜을 사용할 수 있습니다. SOAP는 XML을 많이 사용하므로 도구 / 프레임 워크와 함께 사용하는 것이 가장 좋습니다. JAX-WS는 SOAP 사용을 자세히보기 »

java.lang.UnsupportedClassVersionError를 수정하는 방법

1. 소개 이 짧은 튜토리얼에서는 Java 런타임 오류 java.lang.UnsupportedClassVersionError : Unsupported major.minor version의 원인 과 해결 방법에 대해 알아 봅니다. 2. 오류 살펴보기 예제 오류부터 살펴 보겠습니다. Exception in thread "main" java.lang.UnsupportedClassVersionError: com/baeldung/MajorMinorApp has been compiled by a more recent version of t자세히보기 »

Java Enum에 값 첨부

1. 소개 Java 열거 형은 상수 값을 만들고 사용하는 언어 지원 방법을 제공합니다. 유한 한 값 집합을 정의함으로써 열거 형 은 String 또는 int 와 같은 상수 리터럴 변수보다 형식에 안전 합니다. 그러나 열거 형 값은 유효한 식별자 여야 하며 관례에 따라 SCREAMING_SNAKE_CASE를 사용하는 것이 좋습니다. 이러한 제한이 주어 열거 형 값은 사람이 읽을 수있는 문자열 또는 문자열이 아닌 값에 적합하지 않다 . 이 튜토리얼에서는 enum 의 기능을 Java 클래스로 사용하여 원하는 값을 첨부합니다. 2. Java Enum 을 클래스로 사용 우리는 종종 단순한 값 목록으로 열거 형 을 만듭니다 . 예를 들어 다음은 간단한 열거 형 으로 주기율표의 처음 두 행입니자세히보기 »

Apache Maven 가이드

1. 소개 소프트웨어 프로젝트 빌드는 일반적으로 종속성 다운로드, 클래스 경로에 추가 jar 배치, 소스 코드를 바이너리 코드로 컴파일, 테스트 실행, 컴파일 된 코드를 JAR, WAR 및 ZIP 파일과 같은 배포 가능한 아티팩트로 패키징하고 이러한 아티팩트 배포와 같은 작업으로 구성됩니다. 응용 프로그램 서버 또는 저장소에. Apache Maven은 이러한 작업을 자동화하여 소프트웨어를 수동으로 빌드하는 동안 인간이 오류를 일으킬 위험을 최소화하고 코드를 컴파일하고 패키징하는 작업을 코드 생성 작업과 분리합니다. 이 튜토리얼에서는 XML로 작성된 중앙 정보 인 POM ( Project Object Model )을 사용하여 Java 소프트웨어 프로젝트를 설자세히보기 »

Java에서 정수의 자릿수

1. 소개 이 빠른 자습서에서는 Java 에서 Integer 의 자릿수를 가져 오는 다양한 방법을 살펴 봅니다. 또한 이러한 다양한 방법을 분석하고 어떤 알고리즘이 우리 상황에 가장 적합한 지 알아낼 것입니다. 2. 정수 의 자릿수 여기에서 설명하는 방법의 경우 양의 정수만 고려합니다. 음수 입력이 예상되면 이러한 메서드를 사용하기 전에 먼저 Math.abs (number) 를 사용할 수 있습니다. 2.1. 문자열 기반 솔루션 Integer 에서 자릿수를 얻는 가장 쉬운 방법은 String 으로 변환 하고 length () 메서드를 호출하는 것입니다. 이것은 숫자 의 문자열 표현의 길이를 반환합니다 . int length = String.자세히보기 »

Java에서 목록을 반복하는 방법

1. 소개 목록의 요소를 반복하는 것은 프로그램에서 가장 일반적인 작업 중 하나입니다. 이 자습서에서는 Java에서이를 수행하는 다양한 방법을 검토 할 것입니다. 우리는 순서대로 목록을 반복하는 데 집중할 것입니다. 반대로 진행하는 것도 간단합니다. 2. for 루프 먼저 for 루프 옵션 을 살펴 보겠습니다 . 예를 들어 국가 목록을 정의하여 시작하겠습니다. List countries = Arrays.asList("Germany", "Panama", "Australia"); 2.1. 기본 for 루프 반복을위한 가장 일반적인 흐름 제어 문은 기본 for 루프입니다. 에 대한 루프자세히보기 »

java.util.concurrent.Future 가이드

1. 개요 이 기사에서 우리는 Future 에 대해 배울 것 입니다. Java 1.5부터 사용되어 왔으며 비동기 호출 및 동시 처리 작업시 매우 유용 할 수있는 인터페이스입니다. 2. 선물 만들기 간단히 말해서 Future 클래스는 비동기 계산의 미래 결과를 나타냅니다. 결과 는 처리가 완료된 후 결국 Future에 나타납니다 . Future 인스턴스 를 만들고 반환하는 메서드를 작성하는 방법을 살펴 보겠습니다 . 장기 실행 메서드는 비동기 처리 및 Future 인터페이스에 적합한 후보입니다 . 이를 통해 Future 에 캡슐화 된 작업 이 완료 되기를 기다리는 동안 다른 프자세히보기 »

JPA / Hibernate 캐스케이드 유형 개요

1. 소개 이 튜토리얼에서는 JPA / Hibernate에서 캐스 케이 딩이 무엇인지 논의 할 것입니다. 그런 다음 사용 가능한 다양한 캐스케이드 유형과 해당 의미를 다룰 것입니다. 2. 캐스 케이 딩이란? 엔터티 관계는 종종 다른 엔터티 (예 : 사람 - 주소 관계) 의 존재에 의존합니다 . 포함하지 않는 사람 의 주소 개체 자체의 의미가 없습니다. Person 엔티티를 삭제하면 Address 엔티티도 삭제되어야합니다. 캐스 케이 딩이이를 달성하는 방법입니다. 대상 엔터티에 대해 몇 가지 작업을 수행하면 연결된 엔터티에 동일한 작업이 적용됩니다. 2.1. JPA 캐스케이드 유형 모든 JPA 관련 캐스케이드 작업은 항목을 포자세히보기 »

자바 인터페이스의 정적 및 기본 메소드

1. 개요 Java 8은 람다 식, 기능적 인터페이스, 메서드 참조, 스트림, 선택적, 인터페이스의 정적 및 기본 메서드를 포함한 몇 가지 새로운 기능을 테이블에 추가했습니다 . 그들 중 일부는 이미이 기사에서 다루었습니다. 그럼에도 불구하고 인터페이스의 정적 및 기본 메서드는 그 자체로 더 자세히 살펴볼 가치가 있습니다. 이 기사에서는 인터페이스에서 정적 및 기본 메소드 를 사용하는 방법에 대해 자세히 논의하고 유용 할 수있는 몇 가지 사용 사례를 살펴 봅니다. 2. 인터페이스의 기본 메소드가 필요한 이유 일반 인터페이스 메서드와 마찬가지로 기본 메서드는 암시 적으로 공용 이므로 public 한정자 를 지정할 필요가 없습니다 . 일반 인터페이스 메소드와 달리 메소드 서명 시작 부분에 default 키워드로 선언되며 구현 을 제공합니다 . 간자세히보기 »

Java에서 사용자 입력 읽기 및 쓰기

1. 소개 이 빠른 자습서에서는 Java에서 사용자 입력 및 출력을 위해 콘솔을 사용하는 몇 가지 방법을 보여줍니다 . 입력을 처리하기위한 Scanner 클래스 의 몇 가지 메서드를 살펴본 다음 System.out을 사용하여 몇 가지 간단한 출력을 보여줄 것 입니다. 마지막으로 콘솔 입력 및 출력 모두에 대해 Java 6부터 사용할 수 있는 Console 클래스 를 사용하는 방법을 살펴 보겠습니다 . 2. System.in 에서 읽기 첫 번째 예에서는 java.util 패키지 의 Scanner 클래스를 사용하여 System.in ( "표준"입력 스트림)에서 입력을 가져옵자세히보기 »

Spring Batch 소개

1. 소개 이 기사에서는 Spring Batch에 대한 실용적이고 코드 중심의 소개에 초점을 맞출 것입니다. Spring Batch는 강력한 작업 실행을 위해 설계된 처리 프레임 워크입니다. Spring 4 및 Java 8을 지원하는 현재 버전 3.0입니다. 또한 배치 처리를위한 새로운 Java 사양 인 JSR-352를 수용합니다. 다음은 프레임 워크의 몇 가지 흥미롭고 실용적인 사용 사례입니다. 2. 워크 플로 기본 사항 Spring 배치는 작업 저장소가 작업을 예약하고 상호 작용하는 작업을 수행하는 전통적인 배치 아키텍처를 따릅니다. 작업에는 둘 이상의 단계가있을 수 있으며 모든 단계는 일반적으로 데이터를 읽고, 처리하고, 쓰는 순서를 따릅자세히보기 »

자바의 메모리 누수 이해

1. 소개 Java의 핵심 이점 중 하나는 내장 된 가비지 수집기 (또는 줄여서 GC ) 의 도움으로 자동화 된 메모리 관리입니다 . GC는 암시 적으로 메모리 할당 및 해제를 처리하므로 대부분의 메모리 누수 문제를 처리 할 수 ​​있습니다. GC는 메모리의 상당 부분을 효과적으로 처리하지만 메모리 누수에 대한 완벽한 솔루션을 보장하지는 않습니다. GC는 꽤 똑똑하지만 완벽하지는 않습니다. 메모리 누수는 성실한 개발자의 응용 프로그램에서도 여전히 잠복 할 수 있습니다. 응용 프로그램이 상당한 수의 불필요한 개체를 생성하여 중요한 메모자세히보기 »

Cron 표현식 가이드

1. 개요 간단히 말해서 cron은 Unix 기반 시스템에서 사용할 수있는 기본 유틸리티입니다. 사용자가 지정된 날짜 / 시간에 주기적으로 실행되도록 작업을 예약 할 수 있습니다. 또한 사람의 개입이 필요한 많은 프로세스 실행을 자동화하는 데는 당연히 훌륭한 도구입니다. Cron은 데몬 프로세스로 실행됩니다. 즉, 한 번만 시작하면 백그라운드에서 계속 실행됩니다. 이 프로세스는 crontab 을 사용 하여 일정 항목을 읽고 작업을 시작합니다. 시간이 지남에 따라 cron 표현식 형식이 널리 채택 되고 다른 많은 프로그램과 라이브러리에서이를 사용합니다. 2. Crontab 작업 크론 일정은 아래에있는 간단한 텍스트 파일 /자세히보기 »

Java의 확인 및 확인되지 않은 예외

1. 개요 Java 예외는 확인 된 예외와 확인되지 않은 예외의 두 가지 주요 범주로 나뉩니다 . 이 기사에서는 사용 방법에 대한 몇 가지 코드 샘플을 제공합니다. 2. 확인 된 예외 일반적으로 확인 된 예외는 프로그램의 제어를 벗어난 오류를 나타냅니다. 예를 들어,의 생성자 FileInputStream에이 발생 FileNotFoundException이를 입력 파일이 존재하지 않는 경우. Java는 컴파일 타임에 확인 된 예외를 확인합니다. 따라서 확인 된 예외를 선언 하려면 throws 키워드를 사용해야합니다 . private static void checkedExcept자세히보기 »

자바에서 최대 공약수 찾기

1. 개요 수학에서 0이 아닌 두 정수의 GCD 는 각 정수를 균등하게 나누는 가장 큰 양의 정수입니다. 이 자습서에서는 두 정수의 최대 공약수 (GCD)를 찾는 세 가지 접근 방식을 살펴 봅니다. 또한 Java에서 구현되는 방법을 살펴 보겠습니다. 2. 무차별 대입 첫 번째 접근 방식에서는 1부터 주어진 가장 작은 숫자까지 반복하고 주어진 정수가 인덱스로 나눌 수 있는지 확인합니다. 주어진 숫자를 나누는 가장 큰 인덱스는 주어진 숫자 의 GCD입니다. int gcdByBruteForce(int n1, int n2) { int gcd = 1;자세히보기 »

CompletableFuture 가이드

1. 소개 이 튜토리얼은 Java 8 동시성 API 개선으로 도입 된 CompletableFuture 클래스 의 기능 및 사용 사례에 대한 가이드 입니다. 2. 자바의 비동기 계산 비동기 계산은 추론하기 어렵습니다. 일반적으로 모든 계산을 일련의 단계로 생각하고 싶지만 비동기 계산의 경우 콜백으로 표현되는 작업은 코드 전체에 흩어져 있거나 서로 깊숙이 중첩되는 경향이 있습니다 . 단계 중 하나에서 발생할 수있는 오류를 처리해야 할 때 상황은 더욱 악화됩니다. 미래의 인터페이스는 비동기 계산의 결과로 제공하기 위해 자바 5에 추가 된,하지만 이러한 계산을 결합하거나 가능한 오류를 처리 할 수있는 방법이 없었다. Java 8은 CompletableFuture 클래스를 도입했습니다 . Future 인터페이스 와 함께 CompletionStage 인터페이스 도 구현했습니다 . 이 인터페이스는 다른 단계와 결합 할 수있는 비동기 계산 단계에자세히보기 »

Spring Bean 범위에 대한 빠른 가이드

1. 개요 이 빠른 튜토리얼에서는 Spring 프레임 워크의 다양한 유형의 Bean 범위에 대해 학습합니다. Bean의 범위는 사용되는 컨텍스트에서 해당 Bean의 수명주기 및 가시성을 정의합니다. 최신 버전의 Spring 프레임 워크는 6 가지 유형의 범위를 정의합니다. 하나씩 일어나는 것 원기 의뢰 세션 신청 웹 소켓 요청, 세션, 응용 프로그램 및 웹 소켓 에서 언급 한 마지막 네 가지 범위 는 웹 인식 응용 프로그램에서만 사용할 수 있습니다. 2. 싱글 톤 범위 싱글 톤 범위 로 빈을 정의 한다는 것은 컨테이너가 해당 빈의 단일 인스턴스를 생성하고 해당 자세히보기 »

Java에서 Null 문 확인 방지

1. 개요 일반적으로 null 변수, 참조 및 컬렉션은 Java 코드에서 처리하기가 까다 롭습니다. 식별하기 어려울뿐만 아니라 처리하기도 복잡합니다. 사실, null 처리시 누락 된 부분은 컴파일 타임에 식별 할 수 없으며 런타임에 NullPointerException 이 발생합니다. 이 자습서에서는 Java에서 null 을 확인해야하는 필요성 과 코드에서 null 확인 을 방지하는 데 도움이되는 다양한 대안을 살펴 보겠습니다 . 2. NullPointerException 이란 무엇입니까 ? NullPointerException 에 대한 Javadoc에 따르면 다음 과 같이 객체가 필자세히보기 »

스프링 부트 액추에이터

1. 개요 이 기사에서는 Spring Boot Actuator를 소개합니다. 먼저 기본 사항을 다룬 다음 Spring Boot 2.x 대 1.x에서 사용할 수있는 기능에 대해 자세히 설명합니다. 반응 형 프로그래밍 모델을 활용하여 Spring Boot 2.x 및 WebFlux에서이 모니터링 도구를 사용, 구성 및 확장하는 방법을 배웁니다. 그런 다음 Boot 1.x를 사용하여 동일한 작업을 수행하는 방법에 대해 설명합니다. Spring Boot Actuator는 첫 번째 Spring Boot 릴리스와 함께 2014 년 4 월부터 사용할 수 있습니다. Spring Boot 2의 출시와 함께 Actuator가 재 설계되었으며 새롭고 흥미로운 엔드 포인자세히보기 »

최대 절전 모드 2 단계 캐시

1. 개요 ORM (object-relational mapping) 프레임 워크와 같은 데이터베이스 추상화 계층의 장점 중 하나는 기본 저장소에서 검색된 데이터를 투명하게 캐시 하는 기능 입니다. 이는 자주 액세스하는 데이터에 대한 데이터베이스 액세스 비용을 제거하는 데 도움이됩니다. 캐시 된 콘텐츠의 읽기 / 쓰기 비율이 높으면 특히 큰 개체 그래프로 구성된 엔터티의 경우 성능이 크게 향상 될 수 있습니다. 이 기사에서는 Hibernate 2 단계 캐시를 살펴 봅니다. 우리는 몇 가지 기본 개념을 설명하고 언제나처럼 간단한 예를 통해 모든 것을 설명합니다. 우리는 JPA를 사용하고 JPA에서 표준화되지 자세히보기 »

주어진 위치에서 문자열에 문자 추가

1. 소개 이 빠른 튜토리얼에서, 우리는거야 A의 특정 위치에 문자를 추가하는 방법을 보여 문자열 에서 자바 . 원래 문자열, 문자 및 추가해야하는 위치 를 취하는 간단한 함수의 세 가지 구현을 제시 합니다. String 클래스는 최종적이고 변경 불가능하므로 함수는 추가 된 문자가 있는 새 String 을 반환해야 합니다. 2. 문자 배열 사용 여기서 아이디어는 새로운 문자 배열을 만들고 주어진 위치 이전에 원래 문자열 에서 문자를 복사하는 것 입니다. 그런 다음 새 문자를 해당 위치에 놓고 원래 문자열 의 나머지 문자를 새 배열의 후속 위치에 복사합니다 . 마지막으로 해당 배열에서 원하는 문자열 을 생성합니다 . public String addChar(String str, char ch, int position) {자세히보기 »

자바 서블릿 소개

1. 개요 이 기사에서는 자바 웹 개발의 핵심 인 서블릿을 살펴 보겠습니다. 2. 서블릿과 컨테이너 간단히 말해서 Servlet은 요청을 처리하고 처리하고 응답으로 응답하는 클래스입니다. 예를 들어 서블릿을 사용하여 HTML 양식을 통해 사용자로부터 입력을 수집하고 데이터베이스에서 레코드를 쿼리하며 웹 페이지를 동적으로 생성 할 수 있습니다. 서블릿은 서블릿 컨테이너 라는 다른 Java 애플리케이션의 제어를 받습니다. 웹 서버에서 실행되는 응용 프로그램이 요청을 받으면 , 서버 손 서블릿 컨테이너에 요청 - 다시 대상 서블릿에 전달합니다. 3. Maven 종속성 웹 앱에 서블릿 지원을 추가하려면 javax . servlet-api 종속성이 필요합니다. javax.servlet javax.servlet-api 3.1.0 최신 maven 종속성은 여기에서 찾을 수 있습니다. 물론 앱을 배포 할자세히보기 »

자바의 JSON

Jackson상의 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 개요 Java에서 JSON 데이터로 작업하는 것은 쉬울 수 있지만 대부분의 Java에서와 마찬가지로 선택할 수있는 많은 옵션과 라이브러리가 있습니다. 이 가이드는 이러한 선택을 더 쉽게 만들고 현재 생태계에 대한 확실한 이해를 제공해야합니다. Java에서 가장 일반적인 JSON 처리 라이브러리에 대해 설명합니다. 잭슨 Gson json-io Genson 우리는 각 라이브러리에 대한 간단한 구조를 따르고 있습니다. 먼저 시작하는 데 자세히보기 »

자바에서 메서드 오버로딩 및 오버라이드

1. 개요 메소드 오버로딩 및 오버라이드는 Java 프로그래밍 언어의 핵심 개념이므로 심층적으로 살펴볼 가치가 있습니다. 이 기사에서는 이러한 개념의 기본 사항을 배우고 어떤 상황에서 유용 할 수 있는지 알아 봅니다. 2. 메서드 오버로딩 메서드 오버로딩은 응집력있는 클래스 API를 정의 할 수있는 강력한 메커니즘입니다. 메서드 오버로딩이 중요한 기능인 이유를 더 잘 이해하기 위해 간단한 예제를 살펴 보겠습니다. 두 숫자, 세 숫자 등을 곱하는 다른 방법을 구현하는 순진한 유틸리티 클래스를 작성했다고 가정 해 보겠습니다. multiply2 () , multiply3 () , multiply4 () 와 같이 오해의 소지가 있거나 모호한 이름을 메서드에 부여했다면 잘못 설계된 클래스 API가 될 것입니다. 여기에서 메서드 오버로딩이 시작됩니다. 간단히 말자세히보기 »

Java 속성 시작하기

1. 개요 대부분의 Java 애플리케이션은 일반적으로 컴파일 된 코드 외부에 키-값 쌍으로 간단한 매개 변수를 저장하기 위해 특정 시점에 속성을 사용해야합니다. 따라서 언어는 이러한 유형의 구성 파일을 처리하도록 설계된 유틸리티 클래스 인 java.util.Properties 라는 속성에 대한 첫 번째 클래스 지원을 제공 합니다. 이것이이 기사에서 초점을 맞출 것입니다. 2. 속성로드 2.1. 속성 파일에서 속성 파일에서 키-값 쌍을로드하는 예부터 시작하겠습니다. 클래스 경로에서 사용할 수있는 두 개의 파일을로드합니다. app.properties : version=1.자세히보기 »

자바의 연결 풀링에 대한 간단한 가이드

1. 개요 연결 풀링은 잘 알려진 데이터 액세스 패턴으로, 주요 목적은 데이터베이스 연결 및 읽기 / 쓰기 데이터베이스 작업과 관련된 오버 헤드를 줄이는 것입니다. 간단히 말해서 연결 풀은 가장 기본적인 수준에서 특정 요구 사항에 맞게 구성 할 수 있는 데이터베이스 연결 캐시 구현 입니다. 이 자습서에서는 몇 가지 인기있는 연결 풀링 프레임 워크를 간략히 살펴보고 자체 연결 풀을 처음부터 구현하는 방법을 배웁니다. 2. 왜 연결 풀링인가? 물론 문제는 수사적입니다. 일반적인 데이터베이스 연결 수명주기와 관련된 일련의 단계를 분석하면 그 이유를 이해할 수 있습니다. 데이터베이스 드라이버를 사용하여 데이터베이스에 대한 연결 열기 데이터 읽기 / 쓰기를위한 TCP 소켓 열기 자세히보기 »

Java Bean 유효성 검사 기본 사항

1. 개요 이 빠른 튜토리얼에서는 표준 프레임 워크 인 JSR 380 ( Bean Validation 2.0 이라고도 함)을 사용 하여 Java Bean을 검증하는 기본 사항을 다룹니다 . 사용자 입력 유효성 검사는 대부분의 응용 프로그램에서 매우 일반적인 요구 사항입니다. 그리고 Java Bean Validation 프레임 워크는 이러한 종류의 논리를 처리하기위한 사실상의 표준이되었습니다. 2. JSR 380 JSR 380은 Jakarta EE 및 JavaSE의 일부인 Bean 유효성 검사를위한 Java API 사양입니다. 이렇게하면 @NotNull자세히보기 »

다 대다 어노테이션 튜토리얼

1. 소개 이 빠른 자습서에서는 Hibernate에서 이러한 유형의 관계를 지정하는 데 @ManyToMany 주석을 사용 하는 방법을 간략하게 살펴 보겠습니다 . 2. 전형적인 예 두 엔터티 직원 과 프로젝트 간의 다 대다 연결을 보여주는 간단한 엔터티 관계 다이어그램으로 시작하겠습니다 . 이 시나리오에서는 지정된 직원 을 여러 프로젝트에 할당 할 수 있으며 프로젝트에 여러 직원이 작업 할 수 있으므로 둘 사이에 다 대다 연결이 발생합니다. employee_id 를 기본 키로 사용 하는 employee 테이블 과 project_id 를 기본 키로 사용 하는 프로젝트 테이블이 있습니다. 양쪽을 연결하려면 여기에 employee_자세히보기 »

Java의 If 조건에서 Not 연산자 사용

1. 소개 Java의 if-else 문에서 표현식이 true 일 때 특정 조치를 취할 수 있고 false 일 때 대안을 취할 수 있습니다 . 이 자습서에서는 not 연산자를 사용하여 논리를 반전하는 방법에 대해 알아 봅니다 . 2. if-else 진술 간단한 if-else 문으로 시작하겠습니다 . boolean isValid = true; if (isValid) { System.out.println("Valid"); } else { System.out.println("Invalid"); } 프로그램이 부정적인 경우 만 처리하면된다면 어떨까요? 위의 예를 어떻게 다시 작성합니까?자세히보기 »

curl로 REST API 테스트

1. 개요 이 튜토리얼은 curl을 사용하여 REST API를 테스트하는 방법에 대한 간략한 개요를 제공합니다 . curl 은 데이터 전송을위한 명령 줄 도구이며 HTTP를 포함한 약 22 개의 프로토콜을 지원합니다. 이 조합은 REST 서비스를 테스트하기위한 아주 좋은 임시 도구입니다. 2. 명령 줄 옵션 curl은 200 개 이상의 명령 줄 옵션을 지원합니다 . 그리고 우리는 명령에서 URL과 함께 0 개 이상의 그것들을 가질 수 있습니다. 그러나 우리의 목적을 위해 그것을 사용하기 전에 우리의 삶을 더 쉽게 만들어 줄 두 가지를 살펴 보겠습니다. 2.1. 말 수가 많은 테스트 할 때 상세 모드를 다음으로자세히보기 »

날짜를 LocalDate 또는 LocalDateTime으로 변환하고 그 반대로

1. 개요 Java 8부터는 새로운 Date API 인 java.time이 있습니다. 그러나 때로는 여전히 새 API와 이전 API간에 변환을 수행하고 둘 다의 날짜 표현으로 작업해야합니다. 2. java.util.Date 를 java.time.LocalDate로 변환 이전 날짜 표시를 새 날짜로 변환하는 것으로 시작하겠습니다. 여기 에서 Java 8의 java.util.Date 에 추가 된 새로운 toInstant () 메서드를 활용할 수 있습니다 . 우리가 변환 할 때 인스턴트 객체를, 사용하는 데 필요한 것 ZoneId을 하기 때문에인스턴트 객체는 시간대에 구애받지 않고 타임 라인의 지점에 불과합니다.자세히보기 »

Spring @Qualifier 주석

1. 개요 이 기사에서는 @Qualifier 주석이 우리에게 어떤 도움이 될 수 있는지 , 어떤 문제를 해결하고 어떻게 사용하는지 살펴볼 것입니다. 또한 @Primary 주석과 이름 별 자동 연결과 어떻게 다른지 설명합니다 . 2. 명확성을위한 Autowire 필요성 @Autowired 어노테이션은 명시 적으로 봄에 종속성을 주입 할 필요가 만드는 좋은 방법입니다. 유용하지만이 주석만으로는 Spring이 주입 할 빈을 이해하는 데 충분하지 않은 사용 사례가 있습니다. 기본적으로 Spring은 유형별로 자동 연결된 항목을 확인합니다. 컨테이너에서 동일한 유형의 Bean을 둘 이상 사용할 수있는 경우 프레임 워크는 NoUniqueBeanDefinitionException을 발생시켜 자동 연결 에 둘 이상의 Bean을 사용할 수 있음을 나타냅니다. 주어진 인스턴스에서 자세히보기 »

Java 대기열 인터페이스 가이드

1. 소개 이 튜토리얼에서는 Java의 Queue 인터페이스에 대해 설명 합니다. 첫째, 우리는거야 테이크 들여다 뭐라고에서 큐가 수행하고, 핵심 방법 중 일부 . 다음으로 Java가 표준으로 제공 하는 다양한 구현에 대해 살펴 보겠습니다 . 마지막으로 모든 것을 마무리하기 전에 스레드 안전성에 대해 이야기하겠습니다. 2. 대기열 시각화 빠른 비유로 시작하겠습니다. 우리가 방금 첫 번째 사업 인 핫도그 가판대를 열었다 고 상상해보십시오. 우리는 소규모 비즈니스를 위해 가능한 가장 효율적인 방법으로 새로운 잠재 고객에게 서비스를자세히보기 »

Spring에서의 Thymeleaf 사용 소개

1. 소개 Thymeleaf는 HTML, XML, JavaScript, CSS 및 텍스트를 처리하고 생성하기위한 Java 템플릿 엔진입니다. 이 기사에서는 Spring MVC 애플리케이션의 뷰 레이어에서 몇 가지 기본 사용 사례와 함께 Spring 과 함께 Thymeleaf를 사용하는 방법에 대해 설명 합니다. 라이브러리는 매우 확장 가능하며 자연스러운 템플릿 기능을 통해 템플릿을 백엔드없이 프로토 타입화할 수 있으므로 JSP와 같은 다른 인기있는 템플릿 엔진과 비교할 때 개발 속도가 매우 빠릅니다. 2. Thymeleaf를 Spring과 통합 먼저 Spring과 통합자세히보기 »

자바의 추상 팩토리 패턴

1. 개요 이 기사에서는 Abstract Factory 디자인 패턴에 대해 설명합니다. Design Patterns : Elements of Reusable Object-Oriented Software 책에서는 Abstract Factory가 "구체적인 클래스를 지정하지 않고 관련되거나 종속 된 객체의 패밀리를 생성하기위한 인터페이스를 제공합니다"라고 말합니다. 즉,이 모델을 사용하면 일반적인 패턴을 따르는 개체를 만들 수 있습니다. JDK에서 추상 팩토리 디자인 패턴의 예는 javax.xml.parsers.DocumentBuilderFactory 클래스 의 newInstance () 입니다 . 2. 추상 공장 설계 패턴 예 이 자세히보기 »

Java로 파일을 복사하는 방법

1. 개요 이 기사에서는 Java에서 파일을 복사하는 일반적인 방법에 대해 설명합니다. 먼저 표준 IO 및 NIO.2 API와 두 개의 외부 라이브러리 (commons-io 및 guava)를 사용합니다. 2. IO API (JDK7 이전) 우선, java.io API 로 파일 을 복사 하려면 스트림을 열고 콘텐츠를 반복하고 다른 스트림에 기록해야합니다. @Test public void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOException { File copied = new File("src/test/resources/copiedWithIo.txt"); try ( InputStream in = new Bu자세히보기 »

Java에서 문자열 분할

1. 소개 문자열 분할 은 매우 빈번한 작업입니다. 이 빠른 자습서는 Java로 간단하게 수행하는 데 사용할 수있는 일부 API에 중점을 둡니다. 2. String.split () 핵심 라이브러리 ( String 클래스 자체가 split () 메서드를 제공함 ) 부터 시작해 보겠습니다. 이는 대부분의 시나리오에 매우 편리하고 충분합니다. 구분 기호를 기반으로 주어진 String을 분할하여 Strings 배열을 반환합니다 . 몇 가지 예를 살펴 보겠습니다. 쉼표로 나누는 것으로 시작합니다. String[] splitted = "peter,james,thomas".s자세히보기 »

Java의 Trie 데이터 구조

1. 개요 데이터 구조는 컴퓨터 프로그래밍에서 중요한 자산을 나타내며이를 사용하는시기와 이유를 아는 것은 매우 중요합니다. 이 기사는 trie ( "try"라고 발음) 데이터 구조, 구현 및 복잡성 분석에 대한 간략한 소개입니다. 2. 시도 트라이는 일반적인 알고리즘 과정에서 잘 알려져 있지 않거나 널리 언급되지는 않지만 중요한 데이터 구조입니다. trie (디지털 트리라고도 함) 및 때로는 기수 트리 또는 접두사 트리 (접두사로 검색 할 수 있음)는 정렬 된 트리 구조로, 저장하는 키 (일반적으로 문자열)를 활용합니다. 트리에서 노드의 위치는 해당 노드가 연결된 키를 정의하며, 이는 노드가 해당 노드에만 해당하는 키를 저장하는 이진 검색 트리와 비교하여 시도를 다르게 만듭니다. 노드의 모든 하위 항목에는 해당 노드 와 관련된 문자열 의 공통 접두사가 있지만 루트는 빈 문자열 과 연결됩니다 . 여기 자세히보기 »

Maven과 함께하는 봄

목차 개요 Maven의 기본 스프링 종속성 Maven을 사용한 Spring Persistence Maven을 사용한 Spring MVC Maven을 사용한 스프링 보안 Maven을 사용한 스프링 테스트 마일스톤 사용 스냅 샷 사용 결론 1. 개요 이 튜토리얼은 Maven을 통해 Spring 의존성 을 설정하는 방법을 보여줍니다 . 최신 Spring 릴리스는 Maven Central에서 찾을 수 있습니다. 2. Maven의 기본 스프링 종속성 Spring은 고도로 모듈화되도록 설계되었습니다. Spring의 한 부분을 사용하면 다른 부분이 필요하지 않으며 필요하지 않습니다. 예를 들어 기본 Spring Con자세히보기 »

Spring @Value에 대한 빠른 가이드

1. 개요 이 빠른 자습서에서는 @Value Spring 주석을 살펴볼 것 입니다. 이 주석은 Spring 관리 빈의 필드에 값을 주입하는 데 사용할 수 있으며 필드 또는 생성자 / 메소드 매개 변수 수준에서 적용 할 수 있습니다. 2. 응용 프로그램 설정 이 어노테이션에 대한 다양한 사용을 설명하려면 간단한 Spring 애플리케이션 구성 클래스를 구성해야합니다. 당연히 @Value 주석 으로 주입 할 값을 정의하려면 속성 파일이 필요합니다 . 따라서 먼저 구성 클래스에서 속성 파일 이름 으로 @PropertySource 를 정의해야합니다 . 속성 파일을 정의 해 보겠습니다. value.from.file=Value got from the file priority=high listOfValues=A,B,C 3. 사용 예 기본적이고 거의 쓸모없는 예로서 주석의 "문자열 값"만 필드에 삽자세히보기 »

Java의 구성, 집계 및 연결

1. 소개 객체는 실생활과 프로그래밍에서 둘 사이에 관계가 있습니다. 때때로 이러한 관계를 이해하거나 구현하기가 어렵습니다. 이 튜토리얼에서는 때때로 쉽게 혼합되는 세 가지 관계 유형 (구성, 집계 및 연관)에 대한 Java의 견해에 초점을 맞출 것입니다. 2. 구성 구성 은 관계의 "소속"유형입니다. 이는 객체 중 하나가 다른 객체를 포함하는 논리적으로 더 큰 구조임을 의미합니다. 즉, 다른 개체의 일부 또는 구성원입니다. 또는 이를 "has-a"관계라고합니다 (상속인 "is-a"관계와는 반대). 예를 들어 방은 건물에 속하거나 건물에 방이 있습니다. 그래서 기본적으로 우리가 그것을“속하다”자세히보기 »

Java에서 두 문자열이 아나그램인지 확인

1. 개요 Wikipedia에 따르면 철자는 다른 단어 나 구의 문자를 재 배열하여 형성된 단어 또는 구입니다. 문자열 의 애너그램은 순서에 상관없이 각 문자의 양이 정확히 같은 또 다른 문자열 이라고 말함으로써 문자열 처리에서 이것을 일반화 할 수 있습니다 . 이 자습서에서는 공백 및 숫자와 같은 비 알파 문자를 포함하여 각 문자의 수량이 동일해야하는 전체 문자열 아나그램을 감지하는 방법을 살펴볼 것입니다. 예 : “! low-salt!” 그리고 "owls-lat !!" 정확히 동일한 문자를 포함하므로 철자법으로 간주됩니다. 2. 솔루션 두 문자열이 애너그램인지 결정할 수있는 몇 가지 솔자세히보기 »

자바 동시성

자바 동시성 기초 java.util.concurrent 개요 자바에서 동기화 된 키워드 가이드 Java의 Volatile 키워드 가이드 java.util.concurrent.Future 가이드 Java의 ThreadLocal 소개 자바 스레드의 수명주기 자바 스레드를 죽이는 방법 자바의 스레드 풀 소개 실행 가능 구현과 스레드 확장 자바의 wait 및 notify () 메소드 자바에서 실행 가능 vs. 호출 가능 Java에서 대기와 절전의 차이점 Java의 Thread.join () 메서드 자바에서 뮤텍스 객체 사용 ThreadPoolTaskExecutor corePoolSize 대 maxPoolSize Java의 고급 동시성 자바의 데몬 스레드 Java ExecutorService 가이드 (인자세히보기 »

Java에서 문자열의 일부 제거 또는 바꾸기

1. 개요 이 튜토리얼에서는 Java 에서 문자열의 일부를 제거하거나 교체 할 수있는 다양한 방법을 살펴볼 것 입니다. String API를 사용하여 하위 문자열을 제거 및 / 또는 교체 한 다음 StringBuilder API 를 사용 하고 마지막 으로 Apache Commons 라이브러리 의 StringUtils 클래스를 사용하는 방법을 살펴 봅니다. 보너스 로 String API와 Apache Commons RegExUtils 클래스를 사용하여 정확한 단어 를 바꾸는 방법도 살펴볼 것 입니다. 2. 문자열 API 하위 문자열을 대체하는 가장 간단하고 간단한 방법 중 하나는 String 클래스 의 replace, replaceAll 또는 replaceFirst 를 사용하는 것 입니다자세히보기 »

Java 구현을 사용한 Minimax 알고리즘 소개

1. 개요 이 기사에서는 Minimax 알고리즘과 AI에서의 응용 프로그램에 대해 설명합니다. 게임 이론 알고리즘이므로이를 사용하여 간단한 게임을 구현합니다. 또한 알고리즘 사용의 이점에 대해 논의하고 어떻게 개선 할 수 있는지 살펴 보겠습니다. 2. 소개 Minimax는 의사 결정 알고리즘으로, 일반적으로 턴제 2 인용 게임에 사용 됩니다. 알고리즘의 목표는 최적의 다음 움직임을 찾는 것입니다. 알고리즘에서 한 플레이어는 최대 화기, 다른 플레이어는 최소화 기입니다. 평가 점수를 게임 보드에 할당하면 한 플레이어는 최대 점수를 가진 게임 상태를 선택하고 다른 플레이자세히보기 »

Spring Boot에서 테스트

1. 개요 이 튜토리얼에서는 Spring Boot의 프레임 워크 지원을 사용하여 테스트를 작성 하는 방법을 살펴 봅니다 . 테스트를 실행하기 전에 Spring 컨텍스트를 부트 스트랩하는 통합 테스트뿐만 아니라 격리 된 상태에서 실행할 수있는 단위 테스트를 다룰 것입니다. Spring Boot를 처음 사용하는 경우 Spring Boot 소개를 확인하세요. 2. 프로젝트 설정 이 기사에서 사용할 애플리케이션은 직원 리소스 에 대한 몇 가지 기본 작업을 제공하는 API입니다 . 이는 일반적인 계층 형 아키텍처입니다. API 호출은 컨트롤러 에서 서비스 , 지속성 계층으로 처리됩니다. 3. Maven 종속성자세히보기 »

Java의 BigDecimal 및 BigInteger

1. 개요 이 튜토리얼에서는 BigDecimal 및 BigInteger 클래스를 보여줍니다 . 두 데이터 유형, 특성 및 사용 시나리오를 설명합니다. 또한 두 클래스를 사용하여 다양한 작업을 간략하게 다룰 것입니다. 2. BigDecimal BigDecimal 은 변경 불가능한 임의 정밀도의 부호있는 10 진수를 나타냅니다 . 두 부분으로 구성됩니다. 스케일되지 않은 값 – 임의 정밀도 정수 Scale – 소수점 오른쪽의 자릿수를 나타내는 32 비트 정수 예를 들어, BigDecimal 3.14의 스케일되지 않은 값은 314이고 스케일은 2입니다. 고정밀 산술을 위해 BigDecimal 을 사용 합니다. 또한 규모를 제어하고 동작을 반올림자세히보기 »

Java의 Fork / Join Framework 가이드

1. 개요 fork / join 프레임 워크는 Java 7에서 제공되었습니다. 사용 가능한 모든 프로세서 코어를 사용하여 병렬 처리 속도를 높이는 데 도움이되는 도구를 제공합니다. 이는 분할 및 정복 접근 방식을 통해 수행 됩니다 . 실제로 이는 프레임 워크가 먼저 "포크" 하여 비동기 적으로 실행될 수있을만큼 단순해질 때까지 작업을 더 작은 독립 하위 작업으로 재귀 적으로 분할 한다는 것을 의미합니다 . 그 후 "join"부분이 시작됩니다 . 여기서 모든 하위 작업의 결과는 반복적으로 단일 결과로 결합됩니다. 또는 void를 반환하는 작업의 경우 프로그램은 모든 하위 작업이 실행될 때까지 기다립니다. 효과적인 병렬 실행, 포크를 제공하기 위해 / 프레임 워크가 호출 된 스레드 풀 사용에 가입 ForkJoinPool 유형의 작업자 스레드 관리, ForkJoinWorkerThread을 . 2. ForkJoinPool ForkJoinPool는 프레임 워크의 핵심입니다. 작업자 스레드를 관리하고 스레드 풀 상태 및 성능자세히보기 »

Big O 표기법의 실용적인 Java 예제

1. 개요 이 튜토리얼에서는 Big O Notation이 의미하는 바에 대해 설명 합니다. 코드 실행 시간에 미치는 영향을 조사하기 위해 몇 가지 예를 살펴 보겠습니다. 2. Big O 표기법의 직관 우리는 종종 Big O Notation을 사용하여 설명 된 알고리즘 의 성능을 듣습니다 . 알고리즘의 성능 또는 알고리즘 복잡성에 대한 연구는 알고리즘 분석 분야에 속합니다. 알고리즘 분석은 알고리즘이 사용하는 디스크 공간 또는 시간과 같은 리소스 수에 대한 질문에 답합니다. 우리는 시간을 자원으로 볼 것입니다. 일반적으로 알고리즘을 완료하는 데 걸리는 시간이 짧을수록 좋습니다. 3. 일정자세히보기 »

Gson을 사용하여 문자열을 JsonObject로 변환

1. 개요 Gson 라이브러리를 사용하여 Java에서 JSON으로 작업 할 때 원시 JSON을 더 쉽게 작업 할 수있는 다른 클래스 또는 데이터 구조로 변환하는 몇 가지 옵션이 있습니다. 예를 들어 JSON 문자열을 맵으로 변환 하거나 매핑이있는 사용자 지정 클래스를 만들 수 있습니다. 그러나 때로는 JSON을 일반 객체로 변환하는 것이 편리합니다. 이 튜토리얼에서는 Gson 이 String 에서 JsonObject 를 제공 하는 방법을 알아 봅니다 . 2. Maven 종속성 먼저 pom.xml에 gson 종속성 을 포함해야합니다 . com.google.code.gson gson 2.8.5 Maven Centra자세히보기 »

Java의 ThreadLocal 소개

1. 개요 이 기사에서는 java.lang 패키지 의 ThreadLocal 구성을 살펴볼 것 입니다. 이를 통해 현재 스레드에 대해 개별적으로 데이터를 저장하고 특수한 유형의 객체 내에 간단히 래핑 할 수 있습니다. 2. ThreadLocal API TheadLocal 구조가 될 것입니다 데이터를 저장하는 데 우리를 허용 에만 액세스 에 의해 특정 스레드 . 특정 스레드와 함께 번들로 제공되는 Integer 값을 원한다고 가정 해 보겠습니다 . ThreadLocal threadLocalValue = new ThreadLocal(); 다음으로 스레드에서이 값을 사용하려면 get () 또는 set () 메서드 만 호출하면 됩니다. 간단히 말해, ThreadLocal 은 스레드를 키로 사용하여 맵 내부에 데이터를 저장 자세히보기 »

ConcurrentMap 가이드

1. 개요 맵 은 당연히 가장 널리 사용되는 Java 컬렉션 스타일 중 하나입니다. 그리고 중요한 것은 HashMap 이 스레드로부터 안전한 구현이 아니라는 반면 Hashtable 은 작업을 동기화하여 스레드 안전성을 제공합니다. Hashtable 은 스레드로부터 안전 하지만 그다지 효율적이지 않습니다. 또 다른 완전히 동기화 지도 에는 Collections.synchronizedMap는 하나 큰 효율을 발생하지 않습니다. 높은 동시성에서 높은 처리량의 스레드 안전성을 원한다면 이러한 구현은 갈 길이 아닙니다. 이 문제를 해결하기 위해 Java Collections Framework 는 Java 1.5에 ConcurrentMap 을 도입 했습니다 .자세히보기 »

Java의 정규식 \ s 및 \ s +

1. 개요 문자열 대체는 Java에서 문자열을 처리 할 때 표준 작업입니다. String 클래스 의 편리한 replaceAll () 메서드 덕분에 정규 표현식으로 문자열 대체를 쉽게 수행 할 수 있습니다. 그러나 때때로식이 혼동 될 수 있습니다 (예 : \ s 및 \ s +). 이 짧은 튜토리얼에서는 예제를 통해 두 정규식의 차이점을 살펴 보겠습니다. 2. \ s 와 \ s + 의 차이점 정규식 \ s 는 사전 정의 된 문자 클래스입니다. 단일 공백 ​​문자를 나타냅니다. 공백 문자 세트를 검토해 보겠습니다. [ \t\n\x0B\f\r] 더하기 자세히보기 »

Java의 상속 및 구성 (Is-a 대 Has-a 관계)

1. 개요 추상화, 캡슐화 및 다형성과 함께 상속 및 구성은 객체 지향 프로그래밍 (OOP)의 초석입니다. 이 자습서에서는 상속 및 구성의 기본 사항을 다루고 두 유형의 관계 간의 차이점을 찾는 데 집중할 것입니다. 2. 상속의 기본 상속은 강력하지만 남용되고 오용되는 메커니즘입니다. 간단히 말해, 상속을 통해 기본 클래스 (일명 기본 유형)는 주어진 유형에 대해 공통적 인 상태 및 동작을 정의하고 하위 클래스 (일명 하위 유형)가 해당 상태 및 동작의 특수 버전을 제공하도록합니다. 상속을 사용하는 방법에 대한 명확한 아이디어를 얻기 위해 사용자 에 대한 공통 필드 및 메서드를 정의 하는 기본 클래스 Person 을 만들고 하위 클래스 Waitress 및 자세히보기 »

Java 정규식 API 가이드

1. 개요 이 기사에서는 Java Regex API와 Java 프로그래밍 언어에서 정규식을 사용하는 방법에 대해 설명합니다. 정규 표현식의 세계에는 grep, Perl, Python, PHP, awk 등과 같이 선택할 수있는 다양한 종류가 있습니다. 이는 한 프로그래밍 언어에서 작동하는 정규식이 다른 프로그래밍 언어에서 작동하지 않을 수 있음을 의미합니다. Java의 정규식 구문은 Perl에서 찾은 구문과 가장 유사합니다. 2. 설정 Java에서 정규식을 사용하려면 특별한 설정이 필요하지 않습니다. JDK에는 정규식 작업 전용 의 특수 패키지 java.util.regex 가 포함되어 있습니다 . 코드로 가져 오기만하면됩니다. 또한 java.lang.String 클래스에는 코드에서 일반적으로 사용하는 정규식 지원이 내장되어 있습니다. 3. Ja자세히보기 »

자바의 숫자 형식

1. 개요 이 튜토리얼에서는 Java의 숫자 형식 지정에 대한 다양한 접근 방식과이를 구현하는 방법을 살펴 봅니다. 2. String # format을 사용한 기본 숫자 서식 문자열 # 형식의 방법은 수치를 포맷 매우 유용합니다. 이 메서드는 두 개의 인수를 사용합니다. 첫 번째 인수는 우리가보고자하는 소수 자릿수에 대한 패턴을 설명하고 두 번째 인수는 주어진 값입니다. double value = 4.2352989244d; assertThat(String.format("%.2f", value)).isEqualTo("4.24"); assertThat(String.format("%.3자세히보기 »

Spring을 사용한 REST 오류 처리

REST 상단 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 개요 이 튜토리얼은 REST API를 위해 Spring을 사용하여 예외 처리를 구현하는 방법을 설명 합니다. 우리는 또한 약간의 과거 개요를 얻고 다른 버전이 도입 한 새로운 옵션을 볼 것입니다. Spring 3.2 이전에 Spring MVC 애플리케이션에서 예외를 처리하는 두 가지 주요 접근 방식은 HandlerExceptionResolver 또는 @ExceptionHandler 주석이었습니다. 둘 다 분명한 단점이 있습니다. 3.2부터 이전 두 솔루션의 한계를 해결하고 전체 애플리케이션에서 통합 된 예외 처리를 촉진하기 위해 @Contr자세히보기 »

최대 절전 모드에서 Eager / Lazy 로딩

지속성 상단 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 소개 ORM으로 작업 할 때 데이터 가져 오기 /로드는 eager와 lazy의 두 가지 유형으로 분류 할 수 있습니다. 이 빠른 기사에서 우리는 차이점을 지적하고 그것들이 Hibernate에서 사용될 수 있음을 보여줄 것입니다. 2. Maven 종속성 Hibernate를 사용하기 위해 먼저 pom.xml에 주요 의존성을 정의합시다 . org.hibernate 자세히보기 »

Java의 URL에서 파일 다운로드

1. 소개 이 자습서에서는 파일을 다운로드하는 데 사용할 수있는 몇 가지 방법을 살펴 봅니다. Java IO의 기본 사용법부터 NIO 패키지, Async Http Client 및 Apache Commons IO와 같은 일부 공통 라이브러리에 이르는 다양한 예제를 다룹니다. 마지막으로 전체 파일을 읽기 전에 연결이 실패 할 경우 다운로드를 재개 할 수있는 방법에 대해 설명합니다. 2. Java IO 사용 파일을 다운로드하는 데 사용할 수있는 가장 기본적인 API는 Java IO입니다. URL 클래스를 사용하여 다운로드하려는 파일자세히보기 »

Tomcat java.net.BindException : Java에서 이미 사용중인 주소 오류

1. 개요 이 빠른 자습서에서는 일반적인 java.net.BindingException 오류 : Address already in Use 오류의 원인과이를 처리하는 방법에 대해 알아 봅니다. 2. 오류는 언제 발생합니까? 아시다시피 Apache Tomcat 서버는 기본적으로 8080 포트를 사용합니다. 포트 번호의 범위는 0 ~ 65535이지만 한 번에 하나의 애플리케이션 만 포트를 점유 할 수 있습니다 . 예외는 응용 프로그램이 다른 프로세스에서 이미 가져온 포트를 사용하려고하거나 Tomcat 서버를 제대로 중지하지 않았 음을 나타냅니다. 자세히보기 »

스레드 안전성이란 무엇이며이를 달성하는 방법은 무엇입니까?

1. 개요 Java는 기본적으로 멀티 스레딩을 지원합니다. 이는 별도의 작업자 스레드에서 바이트 코드를 동시에 실행함으로써 JVM이 애플리케이션 성능을 향상시킬 수 있음을 의미합니다. 멀티 스레딩은 강력한 기능이지만 대가가 따릅니다. 다중 스레드 환경에서 우리는 스레드로부터 안전한 방식으로 구현을 작성해야합니다. 이는 다른 스레드가 잘못된 동작을 노출하거나 예측할 수없는 결과를 생성하지 않고 동일한 리소스에 액세스 할 수 있음을 의미합니다. 이 프로그래밍 방법론을 "스레드 안전성"이라고합니다. 이 튜토리얼에서는이를 달성하기위한 다양한 접근 방식을 살펴자세히보기 »

Java는 언제 ExceptionInInitializerError를 발생합니까?

1. 개요 이 빠른 자습서에서는 Java가 ExceptionInInitializerError 예외 의 인스턴스를 throw하는 원인을 살펴 보겠습니다 . 우리는 약간의 이론으로 시작할 것입니다. 그런 다음 실제로이 예외의 몇 가지 예를 살펴 보겠습니다. 2. ExceptionInInitializerError 있는 ExceptionInInitializerError는 예기치 않은 예외가 정적 이니셜 발생했음을 나타낸다. 기본적으로이 예외를 볼 때 Java가 정적 초기화 블록을 평가하거나 정적 변수를 인스턴스화하는 데 실패했음을 알아야합니다. 실제로 정적 초기화 프로그램 내에서 예외가 발생할 때마다 Java는 자동으로 해당 예외를 ExceptionInInitializerError 클래스 의 인스턴스 안에 래핑합니다 . 이렇게하면 근본 원인으로 실제 예외에 대한자세히보기 »

Maven에서 Java 버전 설정

1. 개요 이 빠른 자습서에서는 Maven에서 Java 버전 을 설정하는 방법을 보여줍니다 . 계속 진행하기 전에 Maven의 기본 JDK 버전을 확인할 수 있습니다 . mvn -v 명령을 실행하면 Maven이 실행되는 Java 버전이 표시됩니다. 2. 컴파일러 플러그인 사용 컴파일러 플러그인에서 원하는 Java 버전을 지정할 수 있습니다. 2.1. 컴파일러 플러그인 첫 번째 옵션은 컴파일러 플러그인 속성에서 버전을 설정하는 것입니다. 1.8 1.8 Maven 컴파일러는 – target 및 – 소스 버전 에서이 명령을 허용합니다 . Java 8 언어 기능을 사용하려면 – 소스 를 1.8 로 설정해야합니다 . 또한 컴파일 된 클래스가 JVM 1.8과 호환되도록하려면 – target 값이 1.8 이자세히보기 »

자바의 StackOverflowError

1. 개요 StackOverflowError 는 우리가 직면 할 수있는 가장 일반적인 런타임 오류 중 하나이기 때문에 Java 개발자에게 짜증이 날 수 있습니다. 이 기사에서는 다양한 코드 예제와 처리 방법을 살펴봄으로써이 오류가 어떻게 발생할 수 있는지 살펴 보겠습니다. 2. 스택 프레임 및 StackOverflowError 발생 방법 기본부터 시작하겠습니다. 메서드가 호출되면 호출 스택에 새 스택 프레임이 생성됩니다. 이 스택 프레임은 호출 된 메서드의 매개 변수, 로컬 변수 및 메서드의 반환 주소, 즉 호출 된 메서드가 반환 된 후 메서드 실행이 계속되어야하는 지점을 보유합니다. 자세히보기 »

자바 비트 연산자

1. 개요 연산자는 Java 언어에서 데이터 및 변수에 대해 작동하는 데 사용됩니다. 이 자습서에서는 Bitwise Operators와 Java에서 작동하는 방식을 살펴 봅니다. 2. 비트 연산자 비트 연산자는 이진수 또는 입력 값 비트에 대해 작동합니다. 정수 유형 ( long, int, short, char 및 byte)에 적용 할 수 있습니다 . 다양한 비트 연산자를 살펴보기 전에 먼저 작동 방식을 이해해 보겠습니다. 비트 연산자는 십진수에 해당하는 이진수에 대해 작업하고 주어진 연산자에 따라 비트 단위로 연산을 수행합니다. 자세히보기 »

WebSocket 용 Java API 가이드

1. 개요 WebSocket은 양방향, 전이중, 실시간 클라이언트 / 서버 통신을 제공하여 서버와 웹 브라우저 간의 효율적인 통신 제한에 대한 대안을 제공합니다. 서버는 언제든지 클라이언트에 데이터를 보낼 수 있습니다. TCP를 통해 실행되기 때문에 지연 시간이 짧은 낮은 수준의 통신을 제공하고 각 메시지의 오버 헤드를 줄 입니다. 이 기사에서는 채팅과 유사한 애플리케이션을 만들어 WebSockets 용 Java API를 살펴 보겠습니다. 2. JSR 356 JSR 356 또는 WebSocket 용 Java API는 Java 개발자가 WebSocket을 응용 프로그램과 통합하는 데 사용할 수있는 API를 지정합니다 (서버 측과 Java 클라이언트 측 모두). 이 Java API는 서버 및 클라이언트 측 구성 요소를 모두 제공합니다. 서버 : jav자세히보기 »

스프링 컴포넌트 스캐닝

1. 개요 이 튜토리얼에서는 Spring의 컴포넌트 스캐닝을 다룰 것입니다. Spring으로 작업 할 때 클래스를 Spring Bean으로 만들기 위해 클래스에 주석을 달 수 있습니다. 그러나 그 외에도 주석이 달린 클래스를 검색 할 위치를 Spring에 알릴 수 있습니다 .이 특정 실행에서 모든 클래스 가 Bean이되어야하는 것은 아닙니다. 물론 구성 요소 스캔에 대한 몇 가지 기본값이 있지만 검색을 위해 패키지를 사용자 정의 할 수도 있습니다. 먼저 기본 설정을 살펴 보겠습니다. 2. 인수없는 @ComponentScan 2.1. Spring 애플리케이션에서 @Co자세히보기 »

java.util.GregorianCalendar 가이드

1. 소개 이 튜토리얼에서는 GregorianCalendar 클래스를 간단히 살펴볼 것 입니다. 2. GregorianCalendar GregorianCalendar 는 추상 클래스 java.util.Calendar 의 구체적인 구현입니다 . 당연히 Gregorian Calendar는 세계에서 가장 널리 사용되는 시민 달력입니다. 2.1. 인스턴스 얻기 GregorianCalendar 의 인스턴스를 가져 오는 데 사용할 수있는 두 가지 옵션이 있습니다 . Calendar.getInstance () 및 생성자 중 하나를 사용합니다. 정적 팩토리 메자세히보기 »

자바 스캐너

1. 스캐너 개요 이 빠른 자습서에서는 Java Scanner 클래스 를 사용하여 입력을 읽고 다른 구분 기호로 패턴을 찾고 건너 뛰는 방법을 설명합니다. 2. 파일 스캔 먼저 Scanner를 사용하여 파일을 읽는 방법을 살펴 보겠습니다 . 다음 예에서는 " Hello world " 가 포함 된 파일 을 토큰으로 읽습니다 . @Test public void whenReadFileWithScanner_thenCorrect() throws IOException{ Scanner scanner = new Scanner(new File("test.txt")); assertTrue(scanner.hasNext()); assertEquals("Hello", scanner.next자세히보기 »

자바 배열 : 참조 가이드

1. 소개 이 자습서에서는 Java 언어 인 배열의 핵심 개념에 대해 자세히 알아 봅니다. 먼저 배열이 무엇인지 살펴본 다음 사용 방법을 살펴 보겠습니다. 전반적으로 다음 방법을 다룰 것입니다. 어레이 시작하기 배열 요소 읽기 및 쓰기 배열 루프 배열을 List 또는 Streams 와 같은 다른 개체로 변환 배열 정렬, 검색 및 결합 2. 어레이 란 무엇입니까? 먼저 배열이 무엇인지 정의해야합니다. Java 문서에 따르면 배열은 동일한 유형의 고정 된 수의 값을 포함하는 객체 입니다. 배열의 요소는 인덱싱되므로 숫자로 액세스 할 수 있습니다 ( 인덱스 라고 함 ). 배열은 번호가 매겨진 셀 목록으로 간주 할 수 있으며 각 셀은 값을 보유하는 변수입니다. Java에서 번호 매기기는 0에서 시작합니다. 기본 유형 배열과 객체 유형 배열이 있습니자세히보기 »

Java의 문자열에서 하위 문자열 가져 오기

1. 개요 이 빠른 자습서에서는 Java에서 문자열의 하위 문자열 기능에 중점을 둘 것입니다. 우리는 대부분 String 클래스 의 메서드를 사용하고 Apache Commons의 StringUtils 클래스 의 메서드를 거의 사용하지 않습니다 . 다음의 모든 예제에서 우리는이 간단한 문자열을 사용할 것입니다. String text = "Julia Evans was born on 25-09-1984. " + "She is currently living in the USA (United States of America)."; 2. 부분 문자열의 기초 여기에서 아주 간단한 예부터 시작해 보겠습니다. 시작 인덱스로 하위 문자열을 추출합니다. asse자세히보기 »

자바의 Varargs

1. 소개 Varargs 는 Java 5 에서 도입되었으며 한 유형의 임의 개수의 매개 변수를 지원하는 메소드의 약어를 제공합니다. 이 기사에서는이 핵심 Java 기능을 사용하는 방법을 살펴 봅니다. 2. Varargs 이전 Java 5 이전에는 임의의 수의 인수를 전달할 때마다 배열의 모든 인수를 전달하거나 N 개의 메서드 (각 추가 매개 변수에 대해 하나씩)를 구현해야했습니다. public String format() { ... } public String format(String value) { ... } public String format(String val1, String val2) { ... } 3. Varargs 사용 Varargs 는 내부 배열을 사용하여 임의의 수의 매개 변수를 자동으로 처리 할 수있는 새로운 구문을 도입하여 상용구 코드 작성을 피할 수 있도록 도와줍니다. 표준 유형 선언과 생략자세히보기 »

최대 절전 모드를 사용하는 스프링 부트

1. 개요 이 기사에서는 Hibernate에서 Spring Boot를 사용하는 방법을 살펴 보겠습니다. 간단한 Spring Boot 애플리케이션을 빌드하고이를 Hibernate와 통합하는 것이 얼마나 쉬운 지 살펴 보겠습니다. 2. 애플리케이션 부트 스트랩 Spring Initializr를 사용하여 Spring Boot 애플리케이션을 부트 스트랩합니다. 이 예에서는 Hibernate를 통합하는 데 필요한 구성과 종속성 만 사용하여 Web , JPA 및 H2 종속성을 추가합니다. 다음 섹션에서 이러한 종속성에 대해 설명합니다. 프로젝트를 생성하고 IDE에서 열어 보겠습니다. 생성 된 프로젝트 구조를 확인하고 필요한 구성 파일을 식별 할 수 있습니다. 프로젝트 구조는 다음과 자세히보기 »

Spring @Pathvariable 주석

1. 개요 이 빠른 자습서에서는 Spring의 @PathVariable 주석을 살펴 보겠습니다 . 간단히 말해, @PathVariable 주석은 요청 URI의 매핑 템플릿 변수를 처리하는 데 사용할 수 있습니다 , 및 방법의 매개 변수로 사용합니다. @PathVariable 및 다양한 속성 을 사용하는 방법을 살펴 보겠습니다 . 2. 간단한 매핑 @PathVariable 주석 의 간단한 사용 사례 는 기본 키로 엔터티를 식별하는 끝점입니다. @GetMapping("/api/employees/{id}") @ResponseBody public String getEmployeesById(@PathVariable String id) { ret자세히보기 »

Java로 PDF 파일 생성

1. 소개 이 빠른 기사에서는 인기있는 iText 및 PdfBox 라이브러리를 기반으로 처음부터 PDF 문서를 만드는 데 중점을 둡니다. 2. Maven 종속성 프로젝트에 포함되어야하는 Maven 종속성을 살펴 보겠습니다. com.itextpdf itextpdf 5.5.10 org.apache.pdfbox pdfbox 2.0.4 최신 버전의 라이브러리는 iText 및 PdfBox에서 찾을 수 있습니다. 파일을 암호화해야 할 경우를 대비하여 추가하려면 하나의 추가 종속성이 필요합니다. Bounty Castle Provider 패키자세히보기 »

자바에서 알파벳순으로 문자열 정렬

1. 개요 이 튜토리얼에서는 문자열을 알파벳순 으로 정렬하는 방법을 보여줍니다 . 두 단어가 동일한 문자 집합으로 구성되어있는 경우 그 중 하나가 유효성 검사가 될 수 있습니다. 그렇게하면 애너그램인지 확인할 수 있습니다. 2. 문자열 정렬 내부적으로 String 은 작동 할 문자 배열을 사용합니다. 따라서 toCharArray () : char [] 메서드를 사용하고 배열을 정렬 하고 결과에 따라 새 문자열을 만들 수 있습니다. @Test void givenString_whenSort_thenSorted() { String ab자세히보기 »

스프링 컨트롤러에 대한 빠른 가이드

1. 소개 이 기사에서는 Spring MVC의 핵심 개념 인 컨트롤러에 초점을 맞출 것입니다. 2. 개요 한 발 뒤로 물러나 일반적인 Spring Model View Controller 아키텍처 에서 Front Controller 의 개념을 살펴 보겠습니다 . 매우 높은 수준에서 우리가보고있는 주요 책임은 다음과 같습니다. 들어오는 요청을 가로 챕니다. 요청의 페이로드를 데이터의 내부 구조로 변환합니다. 추가 처리를 위해 데이터를 모델 로 보냅니다. 모델 에서 처리 된 데이터를 가져와 렌더링을 위해 해당 데이터를 뷰로 이동 합니다. 다음은 Spring MVC 의 높은 수준의 흐름에 대한 빠른 다이어그램입니자세히보기 »

Oracle JDK와 OpenJDK의 차이점

1. 소개 이 기사에서는 Oracle Java Development Kit와 OpenJDK의 차이점을 살펴 보겠습니다. 먼저 각각을 간략히 살펴본 다음 비교해 보겠습니다. 그 후 다른 JDK 구현 목록을 볼 수 있습니다. 2. Oracle JDK 및 Java SE 역사 JDK (Java Development Kit)는 Java 플랫폼 프로그래밍에 사용되는 소프트웨어 개발 환경입니다. 여기에는 소위 개인 런타임이라고하는 완전한 Java Runtime Environment가 포함되어 있습니다. 이름은 독립형 JRE보다 더 많은 도구와 Java 애플리케이션 개발에 필요한 다른 구성 요소가 포함되어 있다는 사실에서 비롯되었습니다. Oracle은 JDK라는 용어를 사용하여 Java SE (S자세히보기 »

Java를 사용하여 목록에서 요소를 찾는 방법

1. 개요 목록에서 요소를 찾는 것은 개발자로서 접하는 매우 일반적인 작업입니다. 이 빠른 자습서에서는 Java로이를 수행 할 수있는 다양한 방법을 다룹니다. 2. 설정 먼저 고객 POJO 를 정의하여 시작하겠습니다 . public class Customer { private int id; private String name; // getters/setters, custom hashcode/equals } 그런 다음 고객 의 ArrayList : List customers = new ArrayList(); customers.add(new Customer(1, "Jack")); customers.add(new Customer(2, "James")); customers.add(new Customer(3, "Kelly")); 우리가 재정의했습니다 것을 참고 해시 코드 와 동등한 우리의 고객 클래스를. 현재의 equals 구자세히보기 »

Java에서 A * 경로 찾기 구현

1. 소개 길 찾기 알고리즘은지도를 탐색하는 기술로 , 서로 다른 두 지점 사이의 경로를 찾을 수 있습니다. 알고리즘마다 장단점이 다르며, 알고리즘의 효율성과 생성되는 경로의 효율성 측면에서 종종 있습니다. 2. 길 찾기 알고리즘이란? Pathfinding Algorithm은 노드와 에지로 구성된 그래프를 그래프를 통해 경로로 변환하는 기술입니다 . 이 그래프는 순회가 필요한 모든 것이 될 수 있습니다. 이 기사에서는 London Underground 시스템의 일부를 횡단하려고합니다. (동일 보트의 "런던 지하 지상 DLR 크로스 레일지도"는 CC자세히보기 »

자바의 세마포어

1. 개요 이 빠른 자습서에서는 Java의 세마포어 및 뮤텍스의 기본 사항을 살펴 봅니다. 2. 세마포어 java.util.concurrent.Semaphore 부터 시작하겠습니다 . 세마포어를 사용하여 특정 리소스에 액세스하는 동시 스레드 수를 제한 할 수 있습니다. 다음 예에서는 시스템의 사용자 수를 제한하는 간단한 로그인 대기열을 구현합니다. class LoginQueueUsingSemaphore { private Semaphore semaphore; public LoginQueueUsingSemaphore(int slotLimit) {자세히보기 »

자바의 어댑터 패턴

1. 개요 이 빠른 자습서에서는 어댑터 패턴과 해당 Java 구현을 살펴 보겠습니다. 2. 어댑터 패턴 어댑터 패턴은 그렇지 않으면 직접 연결할 수없는 두 개의 호환되지 않는 인터페이스 사이의 커넥터 역할을합니다. Adapter는 클라이언트의 인터페이스와 호환되도록 기존 클래스를 새 인터페이스로 래핑합니다. 이 패턴을 사용하는 주된 동기는 기존 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환하는 것입니다. 일반적으로 애플리케이션이 설계되면 구현됩니다. 2.1. 어댑터 패턴 예 고급 자동차의 최고 속도를 시간당 마일 (MPH)로 반환하는 미국에서 개발 된 앱이있는 시나리오를 생각해보십시오. 이제 동일한 결과를 원하지만 시간당 킬로미터 (km / h)로 표시되는 동일한 앱을 영국의 고객에게 사용해야합니다자세히보기 »

JAVA_HOME 찾는 방법

1. 소개 이 빠른 게시물에서는 Windows, Mac 및 Linux에서 JAVA_HOME 을 찾는 방법을 알아 봅니다 . 우리 모두 알고 있듯이 JAVA_HOME 은 java 및 javac 와 같은 Java 실행 파일을 찾는 데 일반적으로 사용하는 환경 변수입니다 . 2. JAVA_HOME 을 찾는 Windows 관련 방법 Windows를 운영 체제로 사용하는 경우 먼저 명령 줄 ( cmd ) 을 열고 다음을 입력해야합니다. echo %JAVA_HOME% JAVA_HOME 이 환경에 정의되어 있으면 위의 명령이이를 인쇄합니다. 또는 다음을 시도 할 수 있습니다. where java Java 실행 파일 의 위치를 ​​보여줍니다 . 3. JAVA_HOME 을 찾는 macOS 및 Linux 관련 방법 macOS 또는 Linux를 사용하는 경우 터미널을 열고 다음을 입력자세히보기 »

자바 HashMap 내부

1. 개요 이 기사에서는 Java Collections Framework에서 가장 많이 사용되는 Map 인터페이스 구현을 자세히 살펴보고 소개 기사가 중단 된 부분부터 살펴 보겠습니다. 구현을 시작하기 전에 기본 List 및 Set 컬렉션 인터페이스가 Collection을 확장 하지만 Map 은 확장 하지 않는다는 점을 지적하는 것이 중요합니다 . 간단히 말해, HashMap 은 키별로 값을 저장하고 저장된 데이터를 다양한 방식으로 추가, 검색 및 조작하기위한 API를 제공합니다. 구현은 처음에는 약간 복잡하게 들리지만 실제로 이해하기 매우 쉬운 해시 테이블의 원칙을 기반으로합니다 . 키-값 쌍은 실제로 내부 배열 인 테이블을 구성하는 버킷으로 알려진 것에 저장됩니다. 우리는 객체가 저장이거나되고자세히보기 »

Java에서 변수 및 메서드 숨기기

1. 소개 이 튜토리얼에서 우리는 자바 언어에 숨어있는 변수와 메소드에 대해 배울 것 입니다. 먼저 이러한 각 시나리오의 개념과 목적을 이해합니다. 그런 다음 사용 사례를 살펴보고 다양한 예를 살펴 보겠습니다. 2. 변수 숨기기 변수 숨김은 이미 외부 범위에있는 것과 동일한 이름을 가진 로컬 범위에서 속성을 선언 할 때 발생합니다. 예제로 이동하기 전에 Java에서 가능한 변수 범위를 간략하게 요약 해 보겠습니다. 다음 범주로 정의 할 수 있습니다. 지역 변수 – 중괄호가있는 코드 블록에서 메서드, 생성자와 같은 코드 조각으로 선언됩니다. 인스턴스 변수 – 클래스 내부에 정의되고 객체의 인스턴스에 속합니다. 클래스 또는 정적 변수 – static 키워드 를 사용하여 클래스에서 선언됩니다 . 클래스 수준 범위가 있습니다. 이제 각 변수 범주에 대해 예제를 사용하여 숨기기를 자세히보기 »

REST 보장 가이드

Jackson상의 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 소개 REST-assured는 REST API의 테스트 및 유효성 검사를 단순화하도록 설계되었으며 Ruby 및 Groovy와 같은 동적 언어에서 사용되는 테스트 기술의 영향을 많이받습니다. 라이브러리는 물론 동사와 표준 HTTP 작업으로 시작하여 HTTP에 대한 견고한 지원을 제공하지만 이러한 기본 사항을 훨씬 뛰어 넘습니다. 이 가이드에서는 REST-assured 를 탐색 하고 Hamcrest를 사용하여 어설 션을 수행 할 것입니다. 아직 Hamcrest에 익숙하지 않은 경우 먼저 자습서 자세히보기 »

MySQL 데이터베이스에 Java 연결

자바 탑 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 개요 Java에서 MySQL 데이터베이스에 연결할 수있는 방법은 여러 가지가 있으며이 자습서에서는이를 달성하는 방법을보기 위해 몇 가지 옵션을 살펴볼 것입니다. JDBC와 Hibernate를 사용하는 가장 인기있는 옵션부터 살펴 보겠습니다. 그런 다음 MyBatis, Apache Cayenne 및 Spring Data를 포함한 일부 외부 라이브러리도 살펴볼 것 입니다. 그 과정에서 우리는 여러 가지 실용적인 예를 제공 할 것입니다. 2. 전제 조건 localhost (기본 포트 330자세히보기 »

Java의 FileNotFoundException

1. 소개 이 기사에서는 Java에서 매우 일반적인 예외 인 FileNotFoundException 에 대해 이야기 할 것 입니다. 발생할 수있는 경우, 가능한 치료 방법 및 몇 가지 예를 다룰 것입니다. 2. 예외는 언제 발생합니까? Java의 API 문서에 표시된대로이 예외는 다음과 같은 경우에 발생할 수 있습니다. 지정된 경로 이름을 가진 파일 이 없습니다 . 지정된 경로 이름을 가진 파일 이 존재 하지만 어떤 이유로 액세스 할 수 없습니다 (읽기 전용 파일에 대한 쓰기 요청 또는 파일 액세스를 허용하지 않는 권한) 3. 그것을 처리하는 방법? 우선, java.lang.Exception을 확장하는 java.io.IOException 을 자세히보기 »

Java에서 Microsoft Excel 작업

1. 소개 이 튜토리얼에서는 Excel 스프레드 시트 작업을 위해 Apache POI 및 JExcel API를 사용하는 방법을 보여줍니다 . 두 라이브러리 모두 Excel 스프레드 시트의 내용을 동적으로 읽고, 쓰고, 수정하고 Microsoft Excel을 Java 응용 프로그램에 통합하는 효과적인 방법을 제공하는 데 사용할 수 있습니다. 2. Maven 종속성 시작하려면 pom.xml 파일에 다음 종속성을 추가해야 합니다. org.apache.poi poi 3.15 org.apache.poi poi-ooxml 3.15 최신 버전의 poi-ooxml 및 jxls-jexcel은 Maven Central에서 다운로드 할 수 있습니다. 3. Apache POI 아파치 P자세히보기 »

자바 문자열 인터뷰 질문 및 답변

1. 소개 문자열 클래스는 특별히 취급하는 언어 디자이너를 묻는 메시지가 자바에서 가장 널리 사용되는 클래스 중 하나입니다. 이 특별한 동작은 Java 인터뷰에서 가장 인기있는 주제 중 하나입니다. 이 튜토리얼에서는 String 에 대한 가장 일반적인 인터뷰 질문 중 일부를 살펴 보겠습니다 . 2. 문자열 기초 이 섹션은 문자열 내부 구조 및 메모리와 관련된 질문으로 구성됩니다 . Q1. Java에서 문자열이란? Java에서 문자열 은 바이트 값 (또는 JDK 9 이전의 char 값) 배열로 내부적으로 표현됩니다 . Java 8까지의 버전에서 문자열 은 변경 불가능한 유니 코드 문자 배열로 구성되었습니다. 그러나 대부분의 문자 는 16 비트 (문자 크기) 대신 8 비자세히보기 »

Java 스레드 덤프 캡처

1. 개요 이 튜토리얼에서는 Java 애플리케이션의 스레드 덤프를 캡처하는 다양한 방법에 대해 설명합니다. 스레드 덤프는 Java 프로세스의 모든 스레드 상태에 대한 스냅 샷입니다 . 각 스레드의 상태는 스레드 스택의 내용을 보여주는 스택 추적과 함께 제공됩니다. 스레드 덤프는 스레드의 활동을 표시하므로 문제를 진단하는 데 유용합니다. 스레드 덤프는 일반 텍스트로 작성되므로 해당 내용을 파일에 저장하고 나중에 텍스트 편집기에서 볼 수 있습니다 . 다음 섹션에서는 스레드 덤프를 생성하기위한 여러 도구와 접근 방식을 살펴 보겠습니다. 2. JDK 유틸리티 사용 JDK는 Java 애플리케이션의 스레드 덤프를 캡처 자세히보기 »

SLF4J 소개

1. 개요 Java 용 Simple Logging Facade (약칭 SLF4J) – 다른 로깅 프레임 워크 (예 : java.util.logging, logback, Log4j)에 대한 Facade 역할을합니다. 실제 구현과 독립적으로 로깅을 만드는 일반 API를 제공합니다. 이를 통해 서로 다른 로깅 프레임 워크가 공존 할 수 있습니다. 또한 한 프레임 워크에서 다른 프레임 워크로 마이그레이션하는 데 도움이됩니다. 마지막으로 표준화 된 API와는 별도로 "구문 설탕"도 제공합니다. 이 기사에서는 SLF4J를 Log4j2, Logback, Log4J2 및 Jakarta Commons Loggi자세히보기 »

Mockito 확인 요리 책

1. 개요 이 쿡북 은 다양한 사용 사례 에서 Mockito 검증을 사용하는 방법을 보여 줍니다 . 요리 책 의 형식은 예제에 초점을 맞추고 실용적입니다. 불필요한 세부 사항과 설명이 필요하지 않습니다. 우리는 간단한 목록 구현을 조롱 할 것입니다. public class MyList extends AbstractList { @Override public String get(final int index) { return null; } @Override public int size() { return 0; } } 2. 요리 책 모의에 대한 간단한 호출 확인 자세히보기 »

자바의 재귀

1. 소개 이 기사에서는 모든 프로그래밍 언어의 핵심 개념 인 재귀에 초점을 맞출 것입니다. 재귀 함수 의 특성을 설명하고 Java에서 다양한 문제를 해결하기 위해 재귀를 사용하는 방법을 보여줍니다. 2. 재귀 이해 2.1. 정의 Java에서 함수 호출 메커니즘은 자체적으로 메소드 호출 가능성을 지원 합니다 . 이 기능을 재귀라고 합니다. 예를 들어, 0에서 n 값까지의 정수를 합산한다고 가정합니다 . public int sum(int n) { if (n >= 1) { return sum(n - 1) + n; } return n; } 재귀 함수에는 두 가지 주요 요구 사항이 있습니다. 중지 조건 – 추가 재귀 호출없이 특정 조건이 충족되면 함수가 값을 반환합니다. 재귀 호출 – 함수 는자세히보기 »

자바의 HashSet 가이드

1. 개요 이 기사에서는 HashSet에 대해 알아볼 것 입니다. 가장 인기있는 Set 구현 중 하나이자 Java Collections Framework의 필수 부분입니다. 2. HashSet 소개 HashSet 은 Java Collections API의 기본 데이터 구조 중 하나입니다 . 이 구현의 가장 중요한 측면을 상기 해 보겠습니다. 고유 한 요소를 저장하고 null을 허용합니다. HashMap에 의해 뒷받침됩니다. 게재 신청서를 유지하지 않습니다. 스레드로부터 안전하지 않습니다. 이 내부 HashMap 은 HashSet 의 인스턴스 가 생성 될 때 초기화됩니다 . public Ha자세히보기 »