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

Java 8 forEach 가이드

1. 개요 Java 8에 도입 된 forEach 루프는 프로그래머 에게 컬렉션을 반복하는 새롭고 간결하며 흥미로운 방법을 제공 합니다. 이 기사에서는 컬렉션과 함께 forEach 를 사용하는 방법 , 어떤 종류의 인수 를 사용 하는지,이 루프가 향상된 for-loop 와 어떻게 다른지 살펴볼 것 입니다. Java 8의 몇 가지 개념을 다듬어야하는 경우 도움이 될 수있는 기사 모음이 있습니다. 2. forEach의 기초 Java에서 Collection 인터페이스는 Iterable 을 수퍼 인터페이스로 가지고 있으며 Java 8 부터이 인터페이스에는 새로운 API가 있습니다. void forEach(Consumer action) 간단히자세히보기 »

자바에서 printf ()로 포맷하기

1. 소개 이 튜토리얼에서는 printf () 메서드를 사용한 다양한 형식 지정 예제를 보여줍니다 . 이 메서드는 java.io.PrintStream 클래스의 일부이며 C 의 printf () 함수 와 유사한 문자열 형식을 제공합니다 . 2. 구문 다음 PrintStream 메서드 중 하나를 사용 하여 출력 형식을 지정할 수 있습니다 . System.out.printf(format, arguments); System.out.printf(locale, format, arguments); format 매개 변수를 사용하여 형식화 규칙을 지정합니다 . 규칙은 '%' 문자로 시작 합니다. 다양한 형식 지정 규칙에 대한 세부 정보를 살펴보기 전에 간단한 예를 자세히보기 »

자바의 정적 키워드 가이드

1. 소개 이 기사에서는 Java 언어 의 static 키워드에 대해 자세히 살펴 보겠습니다. 변수, 메서드, 블록, 중첩 클래스에 정적 키워드를 적용하는 방법 과 그 차이가 무엇인지 알아 봅니다. 2. 정적 키워드 의 구조 Java 프로그래밍 언어에서 static 키워드 는 특정 멤버가 해당 유형의 인스턴스가 아닌 유형 자체에 속함을 나타냅니다 . 즉, 클래스의 모든 인스턴스에서 공유되는 해당 정적 멤버의 인스턴스가 하나만 생성됩니다. 키워드는 변수, 메서드, 블록 및 중첩 클래스에 적용 할 수 있습니다. 3. 정적 필드 (또는 클래스 변수) Java에서 필드가 static 으로 선언되면 해당 필드의 정확히 단일 복사본이 생성되고 해당 클래스의 모든 인스턴스간에 공유 됩니다. 클래스를 초기화하는 횟수는 중요하지 않습니다. 항상 그것에 속하는 정적 자세히보기 »

Java에서 문자열에 개행 문자 추가

1. 개요 문자열 형식화 및 텍스트 출력 생성은 프로그래밍 중에 자주 발생합니다. 대부분의 경우 출력 형식을 지정하기 위해 문자열에 새 줄을 추가해야합니다. 개행 문자를 사용하는 방법에 대해 논의 해 보겠습니다. 2. 문자열에 개행 문자 추가 운영 체제에는 새 줄의 시작을 나타내는 특수 문자가 있습니다. 예를 들어, 리눅스의 새로운 라인 "으로 표시됩니다 \ n" , 또한라는 줄 바꿈 . Windows에서 새 줄은 " \ r \ n"을 사용하여 표시되며 때때로 Carriage Return 및 Line Feed 또는 CRLF 라고도합니다 . Java에서 새 줄을 추가하는 것은 문자열 끝에 " \ n" , " \ r" 또는 " \ r \ n" 을 포함하는 것만 큼 간단 합니다. 2.1. CRLF 줄 바꿈 사용 이 예에서자세히보기 »

Spring Boot 인터뷰 질문

1. 소개 도입 이후 Spring Boot는 Spring 생태계에서 핵심적인 역할을 해왔습니다. 이 프로젝트는 자동 구성 기능으로 우리 삶을 훨씬 더 쉽게 만듭니다. 이 튜토리얼에서는 면접 중에 나올 수있는 Spring Boot와 관련된 가장 일반적인 질문 중 일부를 다룰 것입니다. 2. 질문 Q1. Spring Boot는 무엇이며 주요 기능은 무엇입니까? Spring Boot는 본질적으로 Spring Framework 위에 구축 된 신속한 애플리케이션 개발을위한 프레임 워크입니다. 자동 구성 및 임베디드 애플리케이션 서버 지원, 광범위한 문서 및 커뮤니티 지원이 결합 된 Spring Boot자세히보기 »

Java – 파일에 쓰기

1. 개요 이 자습서에서는 Java를 사용하여 파일에 쓰는 다양한 방법을 살펴 봅니다. 우리는 사용 할 수 있습니다 BufferedWriter의 , 의 PrintWriter , FileOutputStream에 , DataOutputStream 정렬 , RandomAccessFile의 , 되는 FileChannel, 그리고 자바 7 파일 유틸리티 클래스를. 또한 파일을 쓰는 동안 파일을 잠그는 방법을 살펴보고 파일 쓰기에 대한 몇 가지 최종 사항에 대해 논의 할 것입니다. 이 튜토리얼은 Baeldung에 대한 Java "Back to Basics"시리즈의 일부입니다. 2. B자세히보기 »

주 클래스 오류를 찾거나로드 할 수 없음

1. 소개 때때로 Java 프로그램을 실행할 때 "주 클래스를 찾거나로드 할 수 없습니다"가 표시 될 수 있습니다. 그 이유는 쉽게 추측 할 수 있습니다. JVM이 주 클래스를 찾지 못해이 오류가 발생했습니다. 근데 왜 안 됐어? 이 튜토리얼에서는 메인 클래스를 찾지 못하는 가능한 이유에 대해 설명합니다. 또한 문제를 해결하는 방법도 살펴 보겠습니다. 2. 샘플 프로그램 HelloWorld 프로그램으로 시작하겠습니다 . public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world..!!!"); } } 이제 컴파일 해 보겠습니다. $ javac HelloWorld.java자세히보기 »

Java 8 Stream API 자습서

1. 개요 이 심층 자습서에서는 생성에서 병렬 실행에 이르기까지 Java 8 Streams의 실제 사용법을 살펴 봅니다. 이 자료를 이해하려면 독자는 Java 8 (람다 표현식, 선택 사항, 메소드 참조) 및 Stream API에 대한 기본 지식이 있어야합니다 . 이러한 주제에 익숙하지 않은 경우 이전 기사 인 Java 8의 새로운 기능 및 Java 8 스트림 소개를 참조하십시오. 2. 스트림 생성 다양한 소스의 스트림 인스턴스를 만드는 방법에는 여러 가지가 있습니다. 일단 생성되면 인스턴스 는 소스를 수정하지 않으므로 단일 소스에서자세히보기 »

봄 프레임 워크 인터뷰 질문

이 기사는 시리즈의 일부입니다. • Java Collections 인터뷰 질문 • 자바 타입 시스템 인터뷰 질문 • Java 동시성 인터뷰 질문 (+ 답변) • Java 클래스 구조 및 초기화 면접 질문 • 자바 8 인터뷰 질문 (+ 답변) • 자바 인터뷰 질문의 메모리 관리 (+ 답변) • Java Generics 인터뷰 질문 (+ 답변) • Java Flow Control 인터뷰 질문 (+ 답변) • Java 예외 인터뷰 질문 (+ 답변) • Java Annotations 인터뷰 질문 (+ 답변) • Spring Framework 인터뷰 질문 (현재 기사) 목차 1. 소개 2. 스프링 코어 Q1. 스프링 프레임 워크 란? Q2. Spring 사용의 이점은 무엇입니까? Q3. 어떤 봄 하위 ​​프로젝트를 알고 있습니까? 간략하게 설명하십시오. Q4. 의존성 주입이란? Q5. 봄에 콩을 어떻게 주입 할 수 있습니까? Q6. 콩을 주입하는 가장 좋은 방법은 무엇이며 왜 Q7. Beanfactory와 Applicationcontext의 차이점은 무엇입니까? Q8. 스프링 빈이 란? Q9. Spring Fram자세히보기 »

자바 8 인터뷰 질문 (+ 답변)

이 기사는 시리즈의 일부입니다. • Java Collections 인터뷰 질문 • 자바 타입 시스템 인터뷰 질문 • Java 동시성 인터뷰 질문 (+ 답변) • Java 클래스 구조 및 초기화 면접 질문 • Java 8 인터뷰 질문 (+ 답변) (현재 기사) • Java 인터뷰 질문 (+ Answers)의 메모리 관리 • Java Generics 인터뷰 질문 (+ 답변) • Java Flow Control 인터뷰 질문 (+ 답변) • Java 예외 인터뷰 질문 (+ 답변) • Java Annotations 인터뷰 질문 (+ 답변) • 상위 봄 프레임 워크 인터뷰 질문 1. 소개 이 기사에서는 인터뷰 중에 나타날 수있는 JDK8 관련 질문 중 일부를 살펴볼 것입니다. Java 8은 새로운 언어 기능과 라이브러리 클래스가 포함 된 플랫폼 릴리스입니다. 이러한 새로운 기능의 대부분은보다 깔끔하고 간결한 코드를 달성하기위한 것이며 일부는 Java에서 지원되지 않는 새로운 기능을 추가합니다. 2. Java 8 일반 지식 Q1. Java 8에 추가 된 새로운 기능은 무엇입니까? Java 8에는 몇 가지 새로운 기능이 포함되어 자세히보기 »

Java에서 배열과 목록 간 변환

1. 개요 이 빠른 기사는 핵심 Java 라이브러리, Guava 또는 Apache Commons Collections를 사용하여 배열과 목록간에 변환 하는 방법을 보여줍니다 . 이 기사는 Baeldung에 대한 "Java – Back to Basic"시리즈의 일부입니다. 2. 목록 을 배열로 변환 2.1. 일반 자바 사용 일반 Java를 사용하여 List 에서 Array로 변환을 시작하겠습니다 . @Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect()자세히보기 »

자바의 hashCode () 가이드

1. 개요 해싱은 컴퓨터 과학의 기본 개념입니다. 등 등 - 자바에서 효율적인 해싱 알고리즘은 우리가 사용할 수있는 가장 인기있는 컬렉션의 일부 뒤에 서 의 HashMap (에 대해 자세히 살펴 보도록 의 HashMap ,이 문서를 확인해 주시기 바랍니다)와 HashSet의. 이 기사에서는 hashCode () 가 어떻게 작동하는지, 어떻게 컬렉션으로 재생되는지, 그리고 올바르게 구현하는 방법에 초점을 맞출 것입니다. 2. 데이터 구조에서 hashCode () 사용 컬렉션에 대한 가장 간단한 작업은 특정 상황에서 비효율적 일 수 있습니다. 예를 들어, 이것은 거대한 크기의 목록자세히보기 »

java.lang.reflect.InvocationTargetException의 원인은 무엇입니까?

1. 개요 Java Reflection API로 작업 할 때 java.lang.reflect.InvocationTargetException 이 발생하는 것이 일반적 입니다. 이 튜토리얼에서는 간단한 예제를 통해이를 살펴보고 처리하는 방법을 살펴 보겠습니다 . 2. InvocationTargetException의 원인 주로 리플렉션 레이어로 작업하고 기본 예외 자체를 발생시키는 메서드 나 생성자를 호출하려고 할 때 발생합니다. 리플렉션 레이어는 InvocationTargetException을 사용하여 메서드에 의해 throw 된 실제 예외를 래핑합니다 . 예를 들어 이해하려고 노력합시다. 의도적으로 예외를 발생시키는 메서드가있는 클래스를 작성해 보겠습니다. public class InvocationTargetExample { public int divideByZeroExample() { r자세히보기 »

Java에서 숫자를 N 소수 자릿수로 반올림하는 방법

1. 개요 이 짧은 기사에서는 Java에서 소수점 이하 n 자리 로 숫자를 반올림하는 방법을 살펴 보겠습니다 . 2. 자바의 10 진수 Java는 10 진수 저장에 사용할 수있는 두 가지 기본 유형 인 float 및 double을 제공 합니다. Double 은 기본적으로 사용되는 유형입니다. double PI = 3.1415; 그러나 두 유형 모두 통화와 같은 정확한 값에 사용해서는 안됩니다 . 이를 위해, 또한 반올림을 위해 BigDecimal 클래스를 사용할 수 있습니다 . 3. 10 진수 서식 지정 소수점 뒤에 n 자리가 있는 십진수를 인쇄 하려면 출력 문자열의 형식을 지정하면자세히보기 »

자바에서 이진 트리 구현

1. 소개 이 기사에서는 Java에서 이진 트리 구현을 다룰 것입니다. 이 기사를 위해 int 값 을 포함하는 정렬 된 이진 트리를 사용 합니다 . 2. 바이너리 트리 이진 트리는 각 노드가 최대 2 개의 자식을 가질 수있는 재귀 데이터 구조입니다. 일반적인 이진 트리 유형은 모든 노드가 왼쪽 하위 트리의 노드 값보다 크거나 같고 오른쪽 하위 트리의 노드 값보다 작거나 같은 값을 갖는 이진 검색 트리입니다. 나무. 다음은 이러한 유형의 이진 트리에 대한 빠른 시각적 표현입니다. 구현 을 위해 int 값 을 저장 하고 각 자식에 대한 참조를자세히보기 »

Java로 파일을 읽는 방법

1. 개요 이 튜토리얼에서는 File in Java에서 읽는 다양한 방법을 살펴 봅니다 . 먼저 표준 Java 클래스를 사용하여 클래스 경로, URL 또는 JAR 파일에서 파일을로드하는 방법을 살펴 보겠습니다. 둘째, BufferedReader , Scanner , StreamTokenizer , DataInputStream , SequenceInputStream 및 FileChannel을 사용 하여 콘텐츠를 읽는 방법을 알아 봅니다 . 또한 UTF-8 인코딩 파일을 읽는 방법에 대해서도 설명합니다. 마지막으로 Java 7 및 Java 8에서 파일을로드하고 읽는 새로운 기술을 살펴 보겠습니다. 이 기사는 Baeldung에 대한 "Java – Back to Basic"시리즈의 일부입니다. 2. 설정 2.1 입력 파일 이 기사의 대부분의자세히보기 »

자바의 XOR 연산자

1. 개요 이 짧은 튜토리얼에서 우리는 Java XOR 연산자 에 대해 배울 것 입니다. XOR 연산 에 대한 약간의 이론을 살펴본 다음 Java에서 구현하는 방법을 살펴 보겠습니다. 2. XOR 연산자 XOR 연산 의 의미론에 대해 약간 상기시켜 보겠습니다 . XOR , 또는 논리 연산 전용 또는 두 개의 부울 피연산자 반환됩니다 경우는 true 피연산자가 다른 경우에만 가능합니다. 따라서 두 피연산자의 값이 같으면 false를 반환합니다. 따라서 XOR 연산자는 예를 들어 동시에 참일 수없는 두 가지 조건을 확인해야 할 때 사용할 수 있습니자세히보기 »

Stream.reduce () 가이드

1. 개요 Stream API는 병렬화를 지원하는 중간, 축소 및 터미널 기능의 풍부한 레퍼토리를 제공합니다. 보다 구체적으로, 감소 스트림 연산을 사용하면 시퀀스의 요소 에 결합 연산을 반복적으로 적용하여 요소 시퀀스에서 단일 결과를 생성 할 수 있습니다 . 이 자습서에서는 범용 Stream.reduce () 작업 을 살펴보고 몇 가지 구체적인 사용 사례에서이를 확인합니다. 2. 핵심 개념 : ID, 누산기 및 결합기 Stream.reduce () 작업 사용에 대해 자세히 살펴보기 전에 작업의 참여자 요소를 별도의 블록으로 분해 해 보겠습니다. 이렇게하면 각자의 역할을 더 쉽게 이해할 자세히보기 »

Spring MVC 튜토리얼

1. 개요 이것은 Java 기반 구성과 XML 구성을 사용하여 Spring MVC 프로젝트를 설정하는 방법을 보여주는 간단한 Spring MVC 튜토리얼 입니다. Spring MVC 프로젝트에 대한 Maven 종속성은 Spring MVC 종속성 문서에 자세히 설명되어 있습니다. 2. Spring MVC 란? 이름에서 알 수 있듯이 Model-View-Controller 또는 MVC 패턴을 다루는 Spring 프레임 워크의 모듈입니다 . MVC 패턴의 모든 장점과 Spring의 편리함을 결합합니다. Spring은 Dispatche자세히보기 »

봄 튜토리얼

Spring Framework는 Java로 웹 애플리케이션을 빌드하는 데 초점을 맞춘 성숙하고 강력하며 매우 유연한 프레임 워크입니다. Spring의 핵심 이점 중 하나는 실제로 기능과 비즈니스 로직에 집중할 수 있도록 애플리케이션 구축의 저수준 측면 대부분을 처리한다는 것 입니다. 또 다른 장점은 프레임 워크가 매우 성숙하고 잘 구축되어 있지만 매우 적극적으로 유지 관리되고 번성하는 개발 커뮤니티가 있다는 것입니다. 이로 인해 최신 상태이며 현재 Java 에코 시스템과 일치합니다. 물론 Spring과 잘 어울리는 법을 배워야 할 것이 많습니다. 시작하자. 봄의 기초 먼저 프레임 워크의 몇 가지 핵심 측면부터자세히보기 »

Java에서 대기와 절전의 차이점

1. 개요 이 짧은 기사에서는 핵심 Java 의 표준 sleep () 및 wait () 메소드를 살펴보고 그 차이점과 유사점을 이해합니다. 2. 대기 와 수면의 일반적인 차이점 간단히 말해 wait () 는 스레드 동기화에 사용되는 인스턴스 메서드입니다. java.lang.Object에 바로 정의되어 있으므로 모든 객체에서 호출 할 수 있지만 동기화 된 블록에서만 호출 할 수 있습니다 . 다른 스레드가 뛰어 들어 잠금을 획득 할 수 있도록 객체에 대한 잠금을 해제합니다. 반면 Thread.sleep () 은 모든 컨텍스트에서자세히보기 »

Java에서 정렬 병합

1. 소개 이 튜토리얼에서는 Merge Sort 알고리즘과 Java에서의 구현을 살펴 보겠습니다 . 병합 정렬은 가장 효율적인 정렬 기술 중 하나이며 "분할 및 정복"패러다임을 기반으로합니다. 2. 알고리즘 병합 정렬은 먼저 문제를 하위 문제로 나누는 "분할 및 정복"알고리즘입니다. 하위 문제에 대한 솔루션이 준비되면이를 결합하여 문제에 대한 최종 솔루션을 얻습니다. 이것은 우리가 주요 문제가 아닌 하위 문제를 다룰 때 재귀를 사용하여 쉽게 구현할 수있는 알고리즘 중 하나입니다. 알고리즘은 다음 2 단계 프로세스로 설명 할 수 있습니다. 나누기 :이 단계에서는 입력 배열을 절반으로 나눕니다 . 피벗은 배열의 중간 점입니다자세히보기 »

Java에서 문자열이 숫자인지 확인

1. 소개 종종 String에서 작업하는 동안 String 이 유효한 숫자 인지 아닌지 알아 내야합니다 . 이 튜토리얼에서는 주어진 String 이 numeric 인지 감지하는 여러 방법을 탐색합니다 . 먼저 일반 Java를 사용한 다음 정규 표현식을 사용한 다음 마지막으로 외부 라이브러리를 사용합니다. 다양한 구현에 대한 논의를 마치면 벤치 마크를 사용하여 어떤 방법이 최적인지 파악할 것입니다. 2. 전제 조건 주요 콘텐츠로 이동하기 전에 몇 가지 전제 조건부터 시작하겠습니다. 이 기사의 후반부에서는 pom.xml에 종속성을 추가 할 Apache Commons 외부 라이브러리를 사용합니다 . org.apache.commons comm자세히보기 »

자바에서 비교기 및 비교 가능

1. 소개 Java에서의 비교는 매우 쉽습니다. 그렇지 않을 때까지. 사용자 지정 형식으로 작업하거나 직접 비교할 수없는 개체를 비교하려는 경우 비교 전략을 사용해야합니다. 간단하게 만들 수 있지만 Comparator 또는 Comparable 인터페이스를 사용합니다. 2. 예제 설정 랭킹에 따라 선수를 정렬하려는 축구 팀의 예를 들어 보겠습니다. 간단한 Player 클래스 를 만드는 것으로 시작하겠습니다 . public class Player { private int ranking; private String name; private int age; // construct자세히보기 »

Java에서 배열 초기화

1. 개요 이 빠른 자습서에서는 배열을 초기화 할 수있는 다양한 방법과 이들 사이의 미묘한 차이점을 살펴 보겠습니다. 2. 한 번에 하나의 요소 간단한 루프 기반 방법으로 시작해 보겠습니다. for (int i = 0; i < array.length; i++) { array[i] = i + 2; } 또한 한 번에 한 요소 씩 다차원 배열을 초기화하는 방법을 살펴 보겠습니다. for (int i = 0; i < 2; i++) { for (int j = 0; j < 5; j++) { array[i][j] = j + 1; } } 3. 선언 당시 이제 선언 할 때 배열을 초기화 해 보겠습니다. String array[] = new String[] { "Toyota", "Mercedes", "BMW", "Volkswagen",자세히보기 »

OutOfMemoryError : GC 오버 헤드 제한 초과

1. 개요 간단히 말해서 JVM은 객체가 더 이상 사용되지 않을 때 메모리를 확보하는 작업을 처리합니다. 이 프로세스를 가비지 컬렉션 (GC)이라고합니다. GC 오버 헤드 제한 초과 오류 패밀리로부터 하나 java.lang.OutOfMemoryError와 및 리소스 (메모리) 고갈의 표시이다. 이 빠른 기사에서는 java.lang.OutOfMemoryError : GC Overhead Limit Exceeded 오류의 원인과 해결 방법을 살펴 보겠습니다. 2. GC 오버 헤드 한도 초과 오류 OutOfMemoryError 는 java.lang.VirtualMachineError 의 하위 클래스입니다 자세히보기 »

Java의 범위에서 난수 생성

1. 개요 이 자습서에서는 범위 내에서 난수를 생성하는 다양한 방법을 살펴 봅니다. 2. 범위에서 난수 생성 2.1. Math.random 인 Math.random는 임의주는 이중 보다 크거나 0.0보다 1.0 동일한 값. Math.random 메서드를 사용하여 주어진 범위에서 난수를 생성 해 보겠습니다 . public int getRandomNumber(int min, int max) { return (int) ((Math.random() * (max - min)) + min); } 왜 작동합니까? 음, Math.random 이 0.0을 반환 할 때 어떤 일이 발생하는지 살펴 보겠습니다. 이는 가능한자세히보기 »

Spring @Autowired 가이드

1. 개요 Spring 2.5부터 프레임 워크는 주석 기반 종속성 주입을 도입했습니다 . 이 기능의 주요 주석은 @Autowired 입니다. 이를 통해 Spring은 협업 빈을 해결하고 빈에 주입 할 수 있습니다. 이 자습서에서는 먼저 자동 연결을 활성화하는 방법과여러빈을 autowire하는 방법. 나중에 @Qualifier 주석을 사용하여 빈 충돌을 해결하는 방법 과 잠재적 인 예외 시나리오에 대해 이야기하겠습니다 . 2. @Autowired 주석 활성화 Spring 프레임 워크는 자동 종속성 주입을 가능하게합니다. 즉, Spring 구성 파일에서 모든 Bean 종속성을 선언함으로써 Spring 컨테이너는 협업 자세히보기 »

Java에서 문자열을 날짜로 변환

1. 개요 이 튜토리얼에서는 String 객체를 Date 객체 로 변환하는 몇 가지 방법을 살펴 봅니다. 날짜 를 나타내는데도 사용되는 이전 java.util.Date 데이터 유형을 살펴보기 전에 Java 8에 도입 된 새로운 날짜 시간 API 인 java.time으로 시작하겠습니다 . 완료하려면 Joda-Time 및 Apache Commons Lang DateUtils 클래스를 사용하여 변환 할 외부 라이브러리도 살펴 보겠습니다 . 2. 문자열 을 LocalDate 또는 LocalDateTime으로 변환 LocalDate 및 LocalDateTime 은 날자세히보기 »

Spring Boot 배우기

Spring Boot는 Spring 플랫폼에 대한 독단적이고 시작하기 쉬운 추가 기능으로 최소한의 노력으로 독립형 프로덕션 등급 애플리케이션을 만드는 데 매우 유용합니다. 이 시리즈에서는 먼저 Spring Boot의 기본 사항을 다룰 것입니다. 독자는 시작하는 방법, Spring Boot가 Spring과 어떻게 다른지, 애플리케이션을 사용자 정의하고 테스트하는 방법을 배웁니다. 그런 다음 지속성, DevOps 도구 및 Spring Boot를 시작하는 데 유용 할 수있는 몇 가지 기타 유용한 주제와 같은 일부 고급 주제를 다룰 것입니다. 스프링 부트-기본 스프링 부트 튜토리얼 – 간단한 애플리케이션 부트 스트랩 Spring과 Spring Boot의 비교 스프링 부트 주석 스프링 부트 스타터 소개 Spring Boot 프로젝트의 권장 패키지 구조 스프링 부트 액추에이터 Spring Boo자세히보기 »

Spring을 사용한 Inversion of Control 및 종속성 주입 소개

1. 개요 이 기사에서는 IoC (Inversion of Control) 및 DI (Dependency Injection)의 개념을 소개하고 이러한 개념이 Spring 프레임 워크에서 어떻게 구현되는지 살펴 보겠습니다. 2. 제어 반전이란 무엇입니까? Inversion of Control은 프로그램의 개체 또는 일부에 대한 제어가 컨테이너 또는 프레임 워크로 전송되는 소프트웨어 엔지니어링의 원칙입니다. 객체 지향 프로그래밍의 맥락에서 가장 자주 사용됩니다. 사용자 지정 코드가 라이브러리를 호출하는 기존 프로그래밍과 달리 IoC를 사용하면 프레임 워크가 프로그램 흐름을 제어하고 사용자 지정 코드를 호출 할 수 있습니다. 이를 활성화하기 위해 프레임 워크는 추가 동작이 내장 된 추상화를 사용합니다. 자체 동작을 추가하려면 프레임 워크의 클래스를 확장하거나 자체 클래스를 플러그자세히보기 »

Java에서 문자열을 반전하는 방법

1. 개요 이 빠른 자습서에서는 Java 에서 문자열 을 반전 할 수있는 방법 을 살펴 보겠습니다 . 일반 Java 솔루션을 사용하여이 처리를 시작합니다. 다음으로 Apache Commons와 같은 타사 라이브러리가 제공하는 옵션을 살펴 보겠습니다. 또한 문장에서 단어의 순서를 바꾸는 방법을 보여 줍니다 . 2. 전통적인 for 루프 우리는 자바에서 문자열이 불변이라는 것을 알고 있습니다. 불변 객체는 완전히 생성 된 후에도 내부 상태가 일정하게 유지 되는 객체입니다 . 따라서 우리는 그것을 수정 하여 문자열 을 되돌릴 수 없자세히보기 »

Java에서 Quicksort 알고리즘 구현

1. 개요 이 자습서에서는 Java 구현에 중점을두고 QuickSort 알고리즘을 자세히 살펴 봅니다. 또한 장단점에 대해 논의한 다음 시간 복잡성을 분석 할 것입니다. 2. QuickSort 알고리즘 Quicksort는 분할 및 정복 원칙을 활용하는 정렬 알고리즘입니다. 평균 O (n log n) 복잡도를 가지며 특히 빅 데이터 볼륨에서 가장 많이 사용되는 정렬 알고리즘 중 하나입니다. Quicksort는 안정적인 알고리즘이 아니라는 점을 기억하는 것이 중요합니다. 안정적인 정렬 알고리즘은 동일한 값을 가진 요소가 정렬 된 출력에서 ​​입력 목록에 나타나는자세히보기 »

자바의 바이너리 검색 알고리즘

1. 개요 이 기사에서는 단순한 선형 검색에 비해 이진 검색의 장점을 다루고 Java에서 구현하는 방법을 살펴 봅니다. 2. 효율적인 검색의 필요성 우리가 와인 판매 사업을하고 있고 수백만 명의 구매자가 매일 우리의 애플리케이션을 방문한다고 가정 해 보겠습니다. 앱을 통해 고객은 가격이 n 달러 미만인 품목을 필터링 하고 검색 결과에서 병을 선택하여 카트에 추가 할 수 있습니다. 매초 가격 제한이있는 와인을 찾는 수백만 명의 사용자가 있습니다. 결과는 빨라야합니다. 백엔드에서 우리의 알고리즘은 고객이 입력 한 가격 제한을 목록에있는 모든 와인 병의 가격과 비교하여 전체 와인 목록에 대한 선형 검색을 실행합니다.자세히보기 »

자바의 모듈로 연산자

1. 개요 이 짧은 튜토리얼에서는 모듈로 연산자가 무엇인지, 그리고 몇 가지 일반적인 사용 사례에서이를 Java와 함께 사용할 수있는 방법을 보여줄 것입니다. 2. 모듈로 연산자 Java에서 간단한 분할의 단점부터 시작하겠습니다. 나누기 연산자의 양쪽에있는 피연산자의 유형이 int 인 경우 연산 결과는 다른 int입니다. @Test public void whenIntegerDivision_thenLosesRemainder() { assertThat(11 / 4).isEqualTo(2); } 피연산자 중 하나 이상의 유형이 자세히보기 »

자바 타이머

1. 타이머 – 기본 Timer 및 TimerTask 는 백그라운드 스레드에서 작업을 예약하는 데 사용되는 Java 유틸리티 클래스입니다. 간단히 말해서 – TimerTask 는 수행 할 작업이고 Timer 는 스케줄러 입니다. 2. 작업을 한 번 예약 2.1. 주어진 지연 후 Timer를 사용하여 단일 작업 을 실행하는 것으로 시작하겠습니다 . @Test public void givenUsingTimer_whenSchedulingTaskOnce_thenCorrect() { TimerTask task = new TimerTask() { public void run() { System.out.println("Task performed on: " + new Date() + "n" + "Thread'자세히보기 »

Java Generics의 기초

1. 소개 Java Generics는 버그를 줄이고 유형에 대한 추상화 계층을 추가하기 위해 JDK 5.0에 도입되었습니다. 이 기사는 Generics in Java에 대한 간략한 소개, 그이면의 목표 및 코드 품질을 개선하는 데 사용할 수있는 방법입니다. 2. 제네릭의 필요성 Integer 를 저장하기 위해 Java로 목록을 생성하려는 시나리오를 상상해 봅시다 . 우리는 다음과 같이 쓰고 싶은 유혹을받을 수 있습니다. List list = new LinkedList(); list.add(new Integer(1)); Integer i = list.iterator().next(); 놀랍게도 컴파일러는 마지막 줄에 대해 불평 할 것입니다. 반환되는 데이터 유형을 알 수 없습니다. 컴파일러에는 명시 적 캐스팅이 필요합니다. Integer i자세히보기 »

Java ExecutorService에 대한 가이드

1. 개요 ExecutorService 는 비동기 모드에서 태스크 실행을 단순화하는 JDK에서 제공하는 프레임 워크입니다. 일반적으로 ExecutorService 는 작업을 할당하기위한 스레드 풀과 API를 자동으로 제공합니다. 2. ExecutorService 인스턴스화 2.1. Executors 클래스 의 팩토리 메서드 ExecutorService 를 만드는 가장 쉬운 방법 은 Executors 클래스 의 팩토리 메서드 중 하나를 사용하는 것입니다 . 예를 들어 다음 코드 줄은 10 개의 스레드가있는 스레드 풀을 만듭니다. ExecutorService executor = Executors.newFixedThreadPool(10); 특정 사용 사례를 충족하는 사전 정의 된 ExecutorService 를 만드는 몇 가지 다른 팩토리 메서드가 있습니다 . 요구 사항에 가장 적합한 방법을 찾으려면 Oracle의 공식 문서를 참조하십시오. 2.2.자세히보기 »

Java 8의 새로운 기능

1. 개요 이 기사에서는 Java 8에서 가장 흥미로운 몇 가지 새로운 기능에 대해 간략히 살펴 보겠습니다. 인터페이스 기본 및 정적 메서드, 메서드 참조 및 선택 사항에 대해 설명합니다. Java 8 릴리스의 일부 기능 (스트림 API, 람다 표현식 및 기능적 인터페이스)은 별도의 모양이 필요한 포괄적 인 주제이므로 이미 다루었습니다. 2. 인터페이스 기본 및 정적 방법 Java 8 이전에는 인터페이스에 공용 추상 메서드 만있을 수있었습니다. 모든 구현 클래스가 새 메서드의 구현을 만들도록 강제하지 않고는 기존 인터페이스에 새 기능을 추가 할 수 없었으며 구현으로 인터페이스 메서드를 만들 수도 없었습니다. Java 8부터 인터페이스는 인터페이스 에서 선언 되었음에도 불구하고 정의 된 동작을 갖는 정적 및 기본 메소드를 가질 수 있습니다 . 2.1. 자세히보기 »

자바의 스택 메모리 및 힙 공간

1. 소개 최적의 방식으로 애플리케이션을 실행하기 위해 JVM은 메모리를 스택 및 힙 메모리로 나눕니다. 새로운 변수와 객체를 선언 하거나 , 새로운 메소드를 호출 하거나 , String을 선언 하거나, 유사한 작업을 수행 할 때마다 JVM은 Stack Memory 또는 Heap Space에서 이러한 작업에 메모리를 지정합니다. 이 자습서에서는 이러한 메모리 모델에 대해 설명합니다. 우리는 그들 사이의 몇 가지 주요 차이점, RAM에 저장되는 방법, 제공하는 기능 및 사용 위치를 나열합니다. 2. 자바의 스택 메모리 Java의 스택 메모리는 정적 메모리 할당 및 스레드 실행에 사용됩니다. 여기에는 메서드에 고유 한 기본 값과 메서드에서 참조되는 힙에있는 개체에 대한 참조가 포함됩니다.자세히보기 »

온라인 자바 컴파일러

1. 소개 온라인 컴파일러 는 소스 코드를 컴파일하고 온라인으로 실행할 수있는 도구입니다 . 이것은 특히 새로운 Java 학생, 교사 또는 면접관에게 훌륭한 옵션입니다. 또한 코드를 공유하거나 개인 또는 그룹 세션에서 공동 작업하는 것이 매우 쉽습니다. 그 외에도 JDK 또는 IDE를 설치할 필요가 없습니다 . 이 기사에서는 최고의 Java 온라인 컴파일러를 살펴볼 것입니다. 2. JDoodle JDoodle은 Java를 포함한 여러 프로그래밍 언어로 소스 코드를 컴파일하고 실행하는 쉽고 빠른 방법입니다. 더욱이 JDoodle은 MySql 및 MongoDB와 함께 작동하는 터미널, 피어자세히보기 »

BufferedReader 가이드

1. 개요 BufferedReader 는 문자 입력 스트림에서 텍스트 읽기를 단순화하는 클래스입니다. 텍스트 데이터를 효율적으로 읽을 수 있도록 문자를 버퍼링합니다. 이 튜토리얼에서는 BufferedReader 클래스 를 사용하는 방법을 살펴볼 것 입니다. 2. BufferedReader 를 사용하는 경우 일반적으로 BufferedReader 는 파일, 소켓 또는 다른 어떤 종류의 입력 소스에서 텍스트를 읽으려는 경우 유용합니다. 간단히 말해, 문자 청크를 읽고 내부 버퍼에 저장하여 I / O 작업 수를 최소화 할 수 있습니다. 버퍼에 데자세히보기 »

Java에서 개체의 전체 복사본을 만드는 방법

1. 소개 Java에서 객체를 복사하려는 경우 고려해야 할 두 가지 가능성이 있습니다. 얕은 복사와 깊은 복사입니다. 단순 복사는 필드 값만 복사 할 때의 접근 방식이므로 복사가 원본 객체에 종속 될 수 있습니다. 전체 복사 방식에서는 트리의 모든 개체가 전체적으로 복사되었는지 확인하므로 복사본이 변경 될 수있는 이전의 기존 개체에 종속되지 않습니다. 이 기사에서는이 두 가지 접근 방식을 비교하고 딥 카피를 구현하는 네 가지 방법을 배웁니다. 2. Maven 설정 세 가지 Maven 종속성 (Gson, Jackson 및 Apache Commons Lang)을 사용하여 딥 복사를 수행하는 다양한 방법을 테스트합니다. 이러한 종속성을 pom.xml에 추가해 보겠습니다 . com.google.code.gson gson 2.8.2 commons-lang commons-lang 2.6 com.fasterxml.jackson.core j자세히보기 »

Java 직렬화 소개

1. 소개 직렬화는 객체의 상태를 바이트 스트림으로 변환하는 것입니다. 역 직렬화는 그 반대입니다. 다르게 말하면 직렬화는 Java 객체를 바이트의 정적 스트림 (시퀀스)으로 변환 한 다음 데이터베이스에 저장하거나 네트워크를 통해 전송할 수 있습니다. 2. 직렬화 및 역 직렬화 직렬화 프로세스는 인스턴스 독립적입니다. 즉, 객체는 한 플랫폼에서 직렬화되고 다른 플랫폼에서는 역 직렬화 될 수 있습니다. 직렬화에 적합한 클래스는 특수 마커 인터페이스 Serializable 을 구현해야합니다 . ObjectInputStream 과 ObjectOutputStream 은 모두 java.io.Inpu자세히보기 »

Java에서 배열을 복사하는 방법

1. 개요 이 빠른 기사에서는 Java의 다양한 배열 복사 방법에 대해 설명합니다. 배열 복사는 사소한 작업처럼 보일 수 있지만 신중하게 수행하지 않으면 예기치 않은 결과 및 프로그램 동작이 발생할 수 있습니다. 2. 시스템 클래스 핵심 Java 라이브러리 인 System.arrayCopy () 부터 시작하겠습니다 . 그러면 지정된 길이까지 소스 위치에서 대상 위치로 복사 작업을 시작하여 소스 배열에서 대상 배열로 배열을 복사합니다. 대상 배열에 복사 된 요소의 수가 지정된 길이와 같습니다. 배열의 하위 시퀀스를 다른 배열로 쉽게 복사 할 수있는 방법을 제공합니다. 어레이의 모든 인수이면 널은 그것이자세히보기 »

Java에서 Math.pow 사용

1. 개요 숫자의 거듭 제곱은 곱셈에서 숫자를 사용하는 횟수를 의미합니다. 이것은 Java에서 쉽게 계산할 수 있습니다. 2. Math.pow 예제 예제를보기 전에 메서드의 서명을 살펴 보겠습니다. public double pow(double a, double b) 방법은 제기 을 의 힘에 B 와 같은 결과를 반환 더블 . 즉, a 는 자체적으로 b 배가됩니다. 이제 간단한 예를 살펴 보겠습니다. int intResult = (int) Math.pow(2, 3); 출력은 8 바랍니다 참고가 될 것입니다 INT 위의 예에서 캐스팅이 필요합니다 우리가 갖고 싶어 정수 결과입니다. 이제 double 을 인수로 전달 하고 결자세히보기 »

Java – 임의 문자열 생성

이 튜토리얼에서는 먼저 표준 Java 라이브러리를 사용한 다음 Java 8 변형을 사용하고 마지막으로 Apache Commons Lang 라이브러리를 사용하여 Java에서 임의의 문자열을 생성하는 방법을 보여줄 것입니다. 이 기사는 Baeldung에 대한 "Java – Back to Basic"시리즈의 일부입니다. 1. 일반 자바로 임의의 무제한 문자열 생성 간단하게 시작 하여 7 자로 묶인 임의의 문자열을 생성 해 보겠습니다 . @Test public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_thenCorrect() { byte[] arr자세히보기 »

자바의 wait 및 notify () 메소드

1. 소개 이 기사에서는 Java의 가장 기본적인 메커니즘 중 하나 인 스레드 동기화를 살펴 보겠습니다. 먼저 몇 가지 필수적인 동시성 관련 용어 및 방법론에 대해 설명합니다. 그리고 우리는 wait () 와 notify () 를 더 잘 이해하기 위해 동시성 문제를 다룰 간단한 애플리케이션을 개발할 것입니다 . 2. 자바의 스레드 동기화 다중 스레드 환경에서는 여러 스레드가 동일한 리소스를 수정하려고 할 수 있습니다. 스레드가 제대로 관리되지 않으면 물론 일관성 문제가 발생합니다. 2.1. 자바의 보호 된 블록 Java에서 여러 스레드의 작업을 조정하는 데 사용할 수있는 도구 중 하나는 보호 된 블록입니다. 이러한 블록은 실행을 재개하기 전에 특정 조건을 확인합니다. 이를 자세히보기 »

Java의 Dijkstra 최단 경로 알고리즘

1. 개요 이 기사에서 강조하는 것은 그래프 이론에서 알려진 근본적인 이론적 문제 중 하나 인 최단 경로 문제 (SPP)와이를 해결하기 위해 Dijkstra 알고리즘을 사용하는 방법입니다. 알고리즘의 기본 목표는 시작 노드와 나머지 그래프 사이의 최단 경로를 결정하는 것입니다. 2. Dijkstra의 최단 경로 문제 양의 가중치 그래프와 시작 노드 (A)가 주어지면 Dijkstra는 소스에서 그래프의 모든 대상까지의 최단 경로와 거리를 결정합니다. Dijkstra 알고리즘의 핵심 아이디어는 시작 노드와 가능한 모든 대상 사이의 긴 경로를 지속적으로 제거하는 것입니다. 프로세스를 추적하려면 두 개의 별개의 노드 세트 (안정 및자세히보기 »

Java에서 쌍 사용

1. 개요 이 빠른 기사에서는 Pair 로 알려진 매우 유용한 프로그래밍 개념에 대해 설명합니다 . 쌍 은 간단한 키-값 연결을 처리하는 편리한 방법을 제공하며 메서드에서 두 값을 반환하려는 경우 특히 유용합니다. 쌍 의 간단한 구현은 핵심 Java 라이브러리에서 사용할 수 있습니다. 그 외에도 Apache Commons 및 Vavr과 같은 특정 타사 라이브러리는 해당 API에이 기능을 노출했습니다. 2. 핵심 자바 구현 2.1. 쌍 클래스 쌍의 클래스는에서 찾을 수 있습니다 javafx.util의 패키지로 제공된다. 이 클래스의 생성자는 두 개의 인수, 키 및 해당 값을 사용합니다. Pair pair = new Pair(1, "One"); In자세히보기 »

Spring과 Spring Boot의 비교

1. 개요 이 글에서는 표준 Spring 프레임 워크와 Spring Boot의 차이점을 살펴볼 것입니다. MVC 및 Security와 같은 Spring 모듈이 코어 Spring에서 사용될 때와 Boot에서 사용될 때 어떻게 다른지에 초점을 맞추고 논의 할 것입니다. 2. 봄이란? 간단히 말해, Spring 프레임 워크는 Java 애플리케이션 개발을위한 포괄적 인 인프라 지원을 제공합니다 . Dependency Injection과 같은 멋진 기능과 다음과 같은 즉시 사용 가능한 모듈이 포함되어 있습니다. 스프링 JDBC 봄자세히보기 »

자바에서 동기화 된 키워드 가이드

1. 개요 이 빠른 기사는 Java 에서 동기화 된 블록 을 사용하는 방법을 소개합니다 . 간단히 말해서, 다중 스레드 환경에서 두 개 이상의 스레드가 변경 가능한 공유 데이터를 동시에 업데이트하려고하면 경쟁 조건이 발생합니다. Java는 공유 데이터에 대한 스레드 액세스를 동기화하여 경합 상태를 방지하는 메커니즘을 제공합니다. 동기화 된 것으로 표시된 논리 는 동기화 된 블록이 되어 한 번에 하나의 스레드 만 실행할 수 있습니다 . 2. 왜 동기화인가? 합계를 계산하고 여러 스레드가 calculate () 메서드를 실행하는자세히보기 »

JSON-Java (org.json) 소개

1. JSON-Java 소개 JSON (JavaScript Object Notation의 약어)은 가벼운 데이터 교환 형식이며 클라이언트-서버 통신에 가장 일반적으로 사용됩니다. 읽기 / 쓰기가 쉽고 언어 독립적입니다. JSON 값은 다른 JSON 개체, 배열, 숫자, 문자열, 부울 (true / false) 또는 null 일 수 있습니다. 이 튜토리얼에서는 사용 가능한 JSON 처리 라이브러리 중 하나를 사용하여 JSON을 생성, 조작 및 구문 분석하는 방법을 살펴 봅니다. 즉, JSON-Java 라이브러리는 org.json 이라고도합니다 . 2. 전제 조건 시작하기 전에 pom.xml에 다음 종속성을 추가자세히보기 »

Windows, Linux, Mac에 Maven을 설치하는 방법

1. 개요 간단히 말해 Maven은 Java 애플리케이션을 빌드하기위한 명령 줄 도구입니다. Maven 프로젝트는 편의를 위해 Maven의 미리 컴파일 된 버전이 포함 된 간단한 ZIP 파일을 제공합니다. 설치 프로그램이 없습니다. Maven을 실행하기위한 필수 구성 요소와 환경을 설정하는 것은 사용자에게 달려 있습니다. Apache Maven 설치는 아카이브를 추출하고 mvn 명령으로 bin 폴더를 PATH에 추가하는 간단한 프로세스입니다 . 1.1. 전제 조건 Maven은 Java로 작성되었으며 주로 JVM 프로그램을 빌드하는 데 사용됩니다. 따라서 주요 전제 조건은 Java JDK입니다. Java JDK를 설치해야하며 (예 : Oracle의 다운로드 사이트에서) 공백없이 경로 이름에 설치해자세히보기 »

자바 튜플 소개

1. 개요 튜플은 서로 관련이있을 수도 있고 아닐 수도있는 여러 요소의 모음입니다. 즉, 튜플은 익명 객체로 간주 될 수 있습니다. 예를 들어, [ "RAM", 16, "Astra"]는 3 개의 요소를 포함하는 튜플입니다. 이 기사에서는 javatuples 라는 튜플 기반 데이터 구조로 작업 할 수있는 매우 간단한 라이브러리를 간략하게 살펴 보겠습니다 . 2. 내장 Javatuples 클래스 이 라이브러리는 튜플과 관련된 대부분의 요구 사항을 충족하는 10 가지 클래스를 제공합니다. 단위 쌍 세 쌍둥이 사중주 오중주 육중 주 칠중주 팔중주 Ennead 열개의 위의 클래스 외에도 Pair 와 유사한 기능을 제공 하지만 의미가 다른 두 개의 추가 클래스 KeyValue 및 LabelValue가 있습니다. 공식 사이트 에 따르면자세히보기 »

스프링 의존성 주입

의존성 주입은 Spring 프레임 워크의 기본적인 측면으로 ,이를 통해 Spring 컨테이너는 객체를 다른 객체 또는 "종속성"에 "주입"합니다. 간단히 말해, 이는 구성 요소의 느슨한 결합을 허용하고 구성 요소 관리 책임을 컨테이너로 이동시킵니다. 여기에서 Spring과 함께 DI를 자세히 살펴 보겠습니다. DI 기본 Spring을 사용한 Inversion of Control 및 종속성 주입 소개 Spring의 생성자 의존성 주입 Spring @Autowired 가이드 Spring에서의 연결 : @Autowired, @Resource 및 @I자세히보기 »

Java 8 날짜 / 시간 API 소개

1. 개요 Java 8 은 이전 java.util.Date 및 java.util.Calendar 의 단점을 해결하기 위해 날짜 및 시간 에 대한 새로운 API를 도입했습니다 . 이 기사의 일부로 기존 날짜 및 달력 API 의 문제부터 시작 하고 새로운 Java 8 날짜 및 시간 API가 문제를 해결하는 방법에 대해 논의 해 보겠습니다 . 또한 LocalDate , LocalTime, LocalDateTime, ZonedDateTime, Period, Duration 및 지원되는 API와 같은 java.time 패키지의 일부인 새로운 Java 8 프로젝트의 일부 핵심 클래스를 살펴볼 것 입니다. 2. 기존 날짜 / 시간 API의 문제 자세히보기 »

최대 절전 모드 일대 다 주석 자습서

1. 소개 이 빠른 Hibernate 튜토리얼은 XML의 대안 인 JPA 주석을 사용하는 일대 다 매핑 의 예 를 안내합니다. 또한 양방향 관계가 무엇인지, 어떻게 불일치를 생성 할 수 있는지, 소유권 개념이 어떻게 도움이 될 수 있는지에 대해서도 알아 봅니다. 2. 설명 간단히 말해서 일대 다 매핑은 테이블의 한 행이 다른 테이블의 여러 행에 매핑된다는 것을 의미합니다. 일대 다 연결 을보기 위해 다음 엔터티 관계 다이어그램을 살펴 보겠습니다 . 이 예에서는 각 카트에 대한 테이블과 각 항목에 대한 다른 테이블이있는 카트 시스템을 구현합니다. 하나의 카트자세히보기 »

문자열을 바이트 배열로 변환하고 Java에서 반전

1. 소개 Java에서 문자열 과 바이트 배열 사이를 자주 변환해야합니다 . 이 자습서에서는 이러한 작업을 자세히 살펴 보겠습니다. 먼저 문자열 을 바이트 배열 로 변환하는 다양한 방법을 살펴 보겠습니다 . 그런 다음 유사한 작업을 반대로 살펴 보겠습니다. 2. 문자열 을 바이트 배열로 변환 문자열 자바에서 유니 코드 문자의 배열로 저장됩니다. 이를 바이트 배열 로 변환하기 위해 문자 시퀀스를 바이트 시퀀스로 변환합니다. 이 번역에서는 Charset 인스턴스를 사용합니다 . 이 클래스의 시퀀스 간의 맵핑 지정 문자 들 및 일련의 바이트 들 . 위의 과정을 인코딩이라고 합니다. 우리는 여러 자세히보기 »

자바에서 객체 유형 캐스팅

1. 개요 Java 유형 시스템은 기본 유형과 참조 유형의 두 가지 유형으로 구성됩니다. 이 기사에서 원시 변환을 다루었으며 여기서는 참조 캐스팅에 중점을 두어 Java가 유형을 처리하는 방법을 잘 이해할 것입니다. 2. 원시 대 참조 기본 변환과 참조 변수 캐스팅은 비슷해 보일 수 있지만 개념은 상당히 다릅니다. 두 경우 모두 한 유형을 다른 유형으로 "전환"합니다. 그러나 단순화 된 방식으로 기본 변수는 그 값을 포함하고 기본 변수의 변환은 값의 돌이킬 수없는 변경을 의미합니다. double myDouble = 1.1; int myInt = (int) myDouble; assertNotEquals(myDouble, myInt); 위의 예에서 변환 한 후 myInt 변수는 1 이며 이전 값 1.1 을 복원 할 수 자세히보기 »

POJO 클래스는 무엇입니까?

1. 개요 이 짧은 자습서에서는 "Plain Old Java Object" 또는 POJO 의 정의를 간략히 살펴 보겠습니다 . POJO가 JavaBean과 어떻게 비교되는지, 그리고 POJO를 JavaBeans로 바꾸는 것이 어떻게 도움이 될 수 있는지 살펴 보겠습니다. 2. 일반 오래된 자바 객체 2.1. POJO 는 무엇입니까 ? POJO에 대해 이야기 할 때 우리가 설명하는 것은 특정 프레임 워크에 대한 참조가없는 간단한 유형입니다. POJO에는 속성 및 메서드에 대한 명명 규칙이 없습니다 . 기본적인 직원 POJO를 만들어 보겠습니다. 세 가지 속성이 자세히보기 »

자바의 삼항 연산자

1. 개요 삼항 조건 연산자 ? :를 사용하면 Java에서 표현식을 정의 할 수 있습니다. 값을 반환하는 if-else 문의 축약 된 형식입니다 . 이 튜토리얼에서는 삼항 구조를 사용하는시기와 방법을 배웁니다. 구문을 살펴보고 사용법을 살펴 보겠습니다. 2. 구문 삼항 연산자 ? : Java에서 세 개의 피연산자를 허용하는 유일한 연산자입니다 . booleanExpression ? expression1 : expression2 첫 번째 피연산자는 부울 식 이어야하며 두 번째 및 세 번째 피연산자는 값을 반환하는 모든식이 될 수 있습니다. 삼항 구문은 첫 번째자세히보기 »

Java 8의 기능 인터페이스

1. 소개 이 기사는 Java 8에있는 다양한 기능 인터페이스, 일반적인 사용 사례 및 표준 JDK 라이브러리에서의 사용에 대한 가이드입니다. 2. Java 8의 Lambda Java 8은 람다 식의 형태로 강력하고 새로운 구문 개선을 가져 왔습니다. 람다는 메서드에 전달되거나 메서드에서 반환되는 것과 같이 일류 언어 시민으로 처리 할 수있는 익명 함수입니다. Java 8 이전에는 일반적으로 단일 기능을 캡슐화해야하는 모든 경우에 대해 클래스를 만들었습니다. 이것은 원시 함수 표현으로 사용되는 것을 정의하기 위해 불필요한 상용구 코드가 많이 있음을 의미했습니다. 일반적으로 Lambda, 기능적 인터페이스 및 작업 모범 사례는 "Lambda 표현식 및 기능적 인터페이스 : 팁 및 모범 사례"문서에 설명되어 있습니다. 이 가이드는 java.util.function 패키지 에있는 일부 특정자세히보기 »

Project Lombok 소개

1. 반복적 인 코드 피하기 Java는 훌륭한 언어이지만 일반적인 작업을 위해 코드에서 수행해야하는 작업이나 일부 프레임 워크 관행을 준수하기에는 너무 장황합니다. 이는 프로그램의 비즈니스 측면에 실질적인 가치를 가져다주지 않는 경우가 많습니다. 여기에서 Lombok이 여러분의 삶을 더 행복하게 만들고 생산성을 높이기 위해 여기에 있습니다. 작동 방식은 빌드 프로세스에 연결하고 코드에 도입 한 여러 프로젝트 주석에 따라 Java 바이트 코드를 .class 파일에 자동 생성 하는 것입니다. 어떤 시스템을 사용하든 빌드에 포함시키는 것은 매우 간단합니다. 그들의 프로젝트 페이지에는 세부 사항에자세히보기 »

Java Assertions 사용

1. 소개 Java assert 키워드를 사용하면 개발자가 프로그램의 특정 가정이나 상태를 빠르게 확인할 수 있습니다. 이 기사에서는 Java assert 키워드 를 사용하는 방법을 살펴 보겠습니다 . 2. Java Assertion의 역사 Java assert 키워드는 Java 1.4에서 도입되었으므로 꽤 오랫동안 사용되어 왔습니다. 그러나 상용구를 대폭 줄이고 코드를 더 읽기 쉽게 만들 수있는 잘 알려지지 않은 키워드로 남아 있습니다. 예를 들어, 종종 코드에서 애플리케이션이 제대로 작동하지 못하게하는 특정 조건을 확인해야합자세히보기 »

Java instanceof 연산자

1. 소개 이 빠른 자습서에서는 Java 의 instanceof 연산자에 대해 알아 봅니다 . 2. instanceof 연산자 는 무엇입니까 ? instanceof는 객체가 주어진 유형인지 테스트하는 데 사용되는 이항 연산자입니다. 작업 결과는 true 또는 false 입니다. 인스턴스를 유형과 비교하기 때문에 유형 비교 연산자라고도합니다. 알 수없는 개체를 캐스팅하기 전에 항상 instanceof check를 사용해야합니다. 이렇게하면 런타임에 ClassCastException 을 방지하는 데 도움이됩니다 . 의 instanceof 연산자의 기본 구문은 다음과 같습니다 (object) instanceof (type) instanceof 연산자 의 기본 예를 살펴 보겠습니다 . 먼자세히보기 »

Java에서 정렬

1. 개요 이 기사에서는 Java 7 및 Java 8에서 Array , List , Set 및 Map 에 정렬을 적용하는 방법을 설명합니다 . 2. 배열로 정렬 먼저 Arrays.sort () 메서드를 사용하여 정수 배열을 정렬하는 것으로 시작하겠습니다 . @Before jUnit 메서드 에서 다음과 같은 int 배열을 정의합니다 . @Before public void initVariables () { toSort = new int[] { 5, 1, 89, 255, 7, 88, 200, 123, 66 }; sortedInts = new int[] {1, 5, 7, 66, 88, 89, 123, 200, 255};자세히보기 »

Jackson ObjectMapper 소개

1. 개요 이 튜토리얼은 Jackson ObjectMapper 클래스 를 이해하고 Java 객체를 JSON으로 직렬화하고 JSON 문자열을 Java 객체로 역 직렬화하는 방법 에 중점을 둡니다 . 일반적으로 Jackson 라이브러리에 대해 더 많이 이해하려면 Jackson Tutorial에서 시작하는 것이 좋습니다. 2. 종속성 먼저 pom.xml에 다음 종속성을 추가해 보겠습니다 . com.fasterxml.jackson.core jackson-databind 2.11.1 이 종속성은 또한 클래스 경로에 다음 라이브러리를 전 이적으로 추가합니다. 잭슨 주석 잭슨 코어 jacks자세히보기 »

개체 힙을위한 충분한 공간을 예약 할 수 없습니다.

1. 개요 이 자습서에서는 몇 가지 가능한 시나리오를 살펴보면서 "객체 힙을위한 충분한 공간을 예약 할 수 없습니다" 오류 의 원인을 알아 봅니다 . 2. 증상 "객체 힙을위한 충분한 공간을 예약 할 수 없습니다"는 실행중인 시스템에서 발생한 메모리 제약으로 인해 Java 프로세스가 가상 머신을 만들 수 없을 때 발생하는 특정 JVM 오류입니다 . java -Xms4G -Xmx4G -jar HelloWorld.jar Error occurred during initialization of VM Could not reserve enough space for object heap Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 일반적으로 오류가 발생하면자세히보기 »

Java 8 선택 가이드

1. 개요 이 튜토리얼에서는 Java 8에 도입 된 Optional 클래스 를 보여줄 것 입니다. 클래스의 목적은 null 참조 대신 선택적 값을 나타내는 형식 수준 솔루션을 제공하는 것입니다 . Optional 클래스에 관심을 가져야하는 이유를 더 깊이 이해하려면 공식 Oracle 기사를 참조하십시오. 2. 선택적 개체 만들기 선택적 개체 를 만드는 방법에는 여러 가지가 있습니다. 빈 Optional 객체 를 만들려면 empty () 정적 메서드 를 사용하기 만하면됩니다 . @Test public void whenCreatesEmptyOptional_thenCorrect() { Optional empty = Optional.em자세히보기 »

Java에서 사용자 지정 예외 생성

1. 소개 이 튜토리얼에서는 자바에서 커스텀 예외를 생성하는 방법을 다룰 것 입니다. 사용자 정의 예외가 선택 및 선택되지 않은 예외에 대해 구현되고 사용되는 방법을 보여줍니다. 2. 사용자 지정 예외의 필요성 Java 예외는 프로그래밍에서 발생하는 거의 모든 일반적인 예외를 포함합니다. 그러나 때때로 우리는 이러한 표준 예외를 우리 자신으로 보완해야합니다. 사용자 지정 예외를 도입하는 주된 이유는 다음과 같습니다. 비즈니스 로직 예외 – 비즈니스 로직 및 워크 플로와 관련된 예외입니다. 이는 애플리케이션 사용자 또는 개발자가 정확한 문제가 무엇인지 이해하는 데 도움이됩니다. 기존 Java 예외의 하위 집합을 포착하고 특정 처리를 제공하려면 Java 예외는 확인 및자세히보기 »

RestTemplate 가이드

1. 개요 이 튜토리얼에서는 Spring REST 클라이언트 인 RestTemplate을 사용하고 잘 사용할 수있는 광범위한 작업을 설명 할 것입니다. 모든 예제의 API 측에서는 여기에서 RESTful 서비스를 실행합니다. 2. 지원 중단 알림 Spring Framework 5부터 WebFlux 스택과 함께 Spring은 WebClient 라는 새로운 HTTP 클라이언트를 도입했습니다 . WebClient 는 RestTemplate에 대한 최신 대체 HTTP 클라이언트 입니다. 기존의 동기식 API를 제공 할뿐만 아니라 효율적인 비 차단 및 비동기 접근 방식도 지원합니다. 즉, 새로운 애플리케이션을 개발하거나 이전 애플리케이션을 마이그레이션하는 경우 WebClient 를 사용하는 것이 좋습니다 . 앞으로 RestTem자세히보기 »

Java의 XML 가이드

1. 개요 이것은 Java에서 XML 작업에 대한 가이드 입니다. 구문 분석과 바인딩 모두에 대해 가장 일반적인 Java XML 처리 라이브러리를 살펴 보겠습니다. 2. DOM 파서 간단히 말해서, DOM 파서는 전체 XML 문서에서 작동하고이를 메모리에로드하고 문서의 트리 표현을 구성합니다. 유용한 자료 Java에서 XML 파일을 읽는 방법 – (DOM Parser) Java DOM Parser – XML 문서 구문 분석 Java XML DOM 파서 예제 자습서 자바에서 쉬운 DOM 구문 분석 3. SAX 파서 SAX 파서는 이벤트 기반 파서입니다. 전체 문서를 메모리에로드하지 않고 콜백을 사용하여 XML 문자세히보기 »

자바 그래프

1. 개요 이 튜토리얼에서는 그래프의 기본 개념을 데이터 구조로 이해합니다 . 또한 그래프에서 가능한 다양한 작업과 함께 Java로 구현하는 방법을 살펴 보겠습니다. 또한 그래프 구현을 제공하는 Java 라이브러리에 대해서도 설명합니다. 2. 그래프 데이터 구조 그래프는 소셜 미디어 플랫폼에서 사람들의 네트워크처럼 연결된 데이터를 저장하기위한 데이터 구조입니다 . 그래프는 꼭지점과 가장자리로 구성됩니다. 정점은 엔티티 (예 : 사람)를 나타내고 가장자리는 엔티티 간의 관계 (예 : 사람의 우정)를 나타냅니다. 이를 더 잘 이해하기 위해 간단한 그자세히보기 »

Java equals () 및 hashCode () 계약

1. 개요 이 튜토리얼에서는 서로 밀접하게 관련된 두 가지 메소드 (equals () 및 hashCode ())를 소개 합니다. 우리는 서로 간의 관계, 올바르게 재정의하는 방법 및 둘 다 재정의해야하는 이유에 초점을 맞출 것입니다. 2. equals () 개체 클래스를 정의 모두 등호 () 와 해시 코드 () 방법 - 이러한 두 가지 방법이 암시 적으로 모든 자바 클래스에 정의되어 있음을 의미, 우리가 만든 것을 포함 : class Money { int amount; String currencyCode; } Money income = new Money(55, "USD"); Money expenses = new Money(55, "USD"); boolean balanced = income.equals(expenses) 우리는 earn.equals (expenses) 가 true 를 반환 할 것으로 기대 합니다 . 그러나 현재 형식 의 Money 클래스에서는 그렇지 않습니다. Object 클래스에서 equals () 의 기본 구현은 동등성이 객체 ID와 동일하다고 말합니다. 그리고 수입 과 지출 은 두 가지 별개의 사례입니다. 2.1. equals 자세히보기 »

Java에서 맵 반복

1. 개요 이 빠른 기사에서는 Java에서 맵 항목을 반복하는 다양한 방법을 살펴 보겠습니다. 간단히 말해서, 우리는 keySet (), valueSet () 또는 entrySet ()을 사용하여 Map 의 내용을 추출 할 수 있습니다 . 그것들은 모두 세트이기 때문에 유사한 반복 원칙이 모두에 적용됩니다. Map.entrySet의 API 요소로부터되는지도의 컬렉션 뷰를 반환 지도 클래스를. 단일 맵 항목에 대한 참조를 얻는 유일한 방법은이 콜렉션보기의 반복자에서 얻는 것입니다. T 그는 entry.getKey는 () 키와 반환 entry.getValue ()는 해당 값을 반환합니다. 이들 중 몇 가지를 살펴 보겠습니자세히보기 »

명령 줄에서 Java 애플리케이션 실행

1. 개요 일반적으로 모든 의미있는 응용 프로그램에는 하나 이상의 JAR 파일이 종속성으로 포함됩니다. 그러나 JAR 파일 자체가 독립형 응용 프로그램 또는 웹 응용 프로그램을 나타내는 경우가 있습니다. 이 기사에서는 독립 실행 형 애플리케이션 시나리오에 초점을 맞출 것입니다. 이하에서는이를 JAR 애플리케이션이라고합니다. 이 튜토리얼에서는 먼저 JAR 애플리케이션을 만드는 방법을 배웁니다. 나중에 명령 줄 인수를 사용하거나 사용하지 않고 JAR 애플리케이션 을 실행하는 방법을 배웁니다 . 2. JAR 응용 프로그램 만들기 JAR 파일에는 하나 이상의 기본 클래스가 포함될 수 있습니다. 각 기본 클래스는 응용 프로그램의 진입 점입니다 . 따라서 이론적자세히보기 »

Spring @Controller 및 @RestController 주석

1. 개요 이 빠른 튜토리얼에서는 Spring MVC에서 @Controller 와 @RestController 주석 의 차이점에 대해 논의 할 것 입니다. 첫 번째 주석은 전통적인 Spring 컨트롤러에 사용되며 매우 오랫동안 프레임 워크의 일부였습니다. @RestController의 주석은 RESTful 웹 서비스의 생성을 단순화하기 위해 스프링 4.0에서 도입되었다. @Controller 와 @ResponseBody 를 결합한 편리한 주석 입니다. 컨트롤러 클래스의 모든 요청 처리 메서드에 @ResponseBody 주석 을 추가 할 필요가 없습니다 . 2. 스프링 MVC @Controller 클래식 컨트롤러는 @Controller 어노테이션 으로 어노테이션을 작자세히보기 »

문자열에서 문자의 발생 횟수 계산

1. 개요 Java 의 문자열 에서 문자 발생 수를 계산하는 방법에는 여러 가지가 있습니다 . 이 빠른 기사에서는 먼저 핵심 Java 라이브러리를 사용한 다음 Spring 및 Guava와 같은 다른 라이브러리 및 프레임 워크를 사용하여 문자 수를 계산하는 방법에 대한 몇 가지 예에 초점을 맞출 것입니다. 2. Core Java Lib 사용 2 .1. 명령 적 접근 일부 개발자는 핵심 Java를 선호 할 수 있습니다. 문자열에서 문자의 발생 횟수를 계산하는 방법에는 여러 가지가 있습니다. 간단하고 순진한 접근 방식으로 시작하겠습니다. String someString = "elephant"; char someChar = 'e'; int count = 0; fo자세히보기 »

CSV 파일을 배열로 읽기

1. 개요 간단히 말해서 CSV (Comma Separated Values) 파일에는 쉼표 구분 기호로 구분 된 구성 정보가 포함되어 있습니다. 이 튜토리얼에서는 CSV 파일을 배열로 읽는 다양한 방법을 살펴 봅니다. 2. 의 BufferedReader 의 java.io 먼저 BufferedReader 에서 readLine () 을 사용하여 한 줄씩 레코드를 읽습니다 . 그런 다음 쉼표 구분 기호를 기준으로 줄을 토큰으로 분할합니다. List records = new ArrayList(); try (BufferedReader br = new BufferedReader(new FileReader("book.csv"))) { String line; while (자세히보기 »

SOLID 원칙에 대한 확실한 가이드

1. 소개 이 튜토리얼에서는 객체 지향 설계의 SOLID 원칙에 대해 설명 합니다. 먼저, 그 이유와 소프트웨어를 설계 할 때 고려해야하는 이유를 살펴 보겠습니다 . 그런 다음 요점을 강조하기 위해 몇 가지 예제 코드와 함께 각 원칙을 간략하게 설명합니다. 2. SOLID 원칙의 이유 SOLID 원칙은 Robert C. Martin이 2000 년 논문 인 Design Principles and Design Patterns 에서 처음 개념화했습니다 . 이러한 개념은 나중에 SOLID 약어를 소개 한 Michael Feathers에 의해 구축되었습니다. 그리고 지난 20 년 동안이 5 가지자세히보기 »

Java에서 문자열 연결

1. 소개 Java는 문자열 연결 전용으로 상당한 수의 메서드와 클래스를 제공합니다 . 이 튜토리얼에서는 몇 가지 일반적인 함정과 나쁜 관행에 대해 간략히 설명 할뿐만 아니라 그 중 몇 가지를 살펴볼 것 입니다. 2. StringBuilder 첫 번째는 겸손한 StringBuilder입니다. 이 클래스 의 배열을 제공 현악기와 유틸리티 구축 의 쉬운 작업하게 문자열 조작. StringBuilder 클래스를 사용하여 문자열 연결 의 빠른 예제를 작성해 보겠습니다 . StringBuilder stringBuilder = new StringBuilder(100); stringBuilder.append("B자세히보기 »

자바 소켓 가이드

1. 개요 소켓 프로그래밍 이라는 용어 는 장치가 모두 네트워크를 사용하여 서로 연결된 여러 컴퓨터에서 실행되는 프로그램을 작성하는 것을 말합니다. 소켓 프로그래밍에 사용할 수있는 통신 프로토콜에는 UDP (User Datagram Protocol)와 TCP (Transfer Control Protocol)의 두 가지가 있습니다. 둘 사이의 주요 차이점은 UDP는 연결이 없다는 것입니다. 즉, TCP는 연결 지향적 인 반면 클라이언트와 서버간에 세션이 없다는 것입니다. 즉, 통신이 발생하려면 먼저 클라이언트와 서버간에 배타적 연결이 설정되어야합니다. 이 튜토리얼 은 TCP / IP 네트워크를 통한 소켓 프로그래밍에 대한 소개를 제공 하고 Java로 자세히보기 »

Spring 및 JPA와의 트랜잭션

1. 개요 이 튜토리얼은 Spring Transactions를 구성하는 올바른 방법 , @Transactional 어노테이션 을 사용하는 방법 및 일반적인 함정에 대해 설명합니다. 핵심 지속성 구성에 대한보다 심층적 인 논의는 Spring with JPA 튜토리얼을 확인하십시오. 기본적으로 트랜잭션을 구성하는 두 가지 방법 (어노테이션과 AOP)이 있으며 각각 고유 한 장점이 있습니다. 여기서 더 일반적인 주석 구성에 대해 논의 할 것입니다. 2. 트랜잭션 구성 Spring 3.1 은 @Configuration 클래스 에서 사용할 수 있자세히보기 »

자바의 싱글 톤

1. 소개 이 빠른 기사에서는 일반 Java에서 싱글 톤을 구현하는 가장 널리 사용되는 두 가지 방법에 대해 설명합니다. 2. 클래스 기반 싱글 톤 가장 널리 사용되는 접근 방식은 일반 클래스를 만들고 다음이 있는지 확인하여 Singleton을 구현하는 것입니다. 개인 생성자 유일한 인스턴스를 포함하는 정적 필드 인스턴스를 얻기위한 정적 팩토리 메소드 나중에 사용하기 위해 info 속성도 추가합니다. 따라서 구현은 다음과 같습니다. public final class ClassSingleton { private static ClassSingleton INSTANCE; pr자세히보기 »

Javadoc 소개

1. 개요 좋은 API 문서는 소프트웨어 프로젝트의 전반적인 성공에 기여하는 많은 요소 중 하나입니다. 다행히도 모든 최신 버전의 JDK는 소스 코드에있는 주석에서 API 문서를 생성하기위한 Javadoc 도구를 제공합니다. 전제 조건 : JDK 1.4 (최신 버전의 Maven Javadoc 플러그인에는 JDK 7 이상이 권장 됨) PATH 환경 변수에 추가 된 JDK / bin 폴더 (선택 사항) 기본 제공 도구가있는 IDE 2. Javadoc 주석 주석부터 시작하겠습니다. Javadoc 주석 구조는 일반 여러 줄 주석과 매자세히보기 »

자바에서 클래스 디 컴파일

1. 소개 이 자습서에서는 Java 클래스 디 컴파일에 대해 설명합니다. 소스 코드를 사용할 수없는 경우 Java 클래스를 디 컴파일하면 소스 코드 동작을 디버그하고 이해하는 데 도움이됩니다. 사용 가능한 다양한 옵션을 살펴 보겠습니다. 2. IDE에서 디 컴파일 대부분의 개발은 IDE (통합 개발 환경)에서 수행되므로 디 컴파일도 IDE에서 수행되어야합니다. 작업 할 IDE에 대한 자세한 내용은 Eclipse에서 디버그하는 방법 및 IntelliJ IDEA 구성에 대한 기사를 확인하십시오. 2.1. 식 첫째, Eclipse에서 ECD 자세히보기 »

자바의 예외 처리

1. 개요 이 튜토리얼에서는 Java에서 예외 처리의 기본 사항과 몇 가지 문제점을 살펴볼 것입니다. 2. 첫 번째 원칙 2.1. 그것은 무엇입니까? 예외와 예외 처리를 더 잘 이해하기 위해 실제 비교를 해보겠습니다. 온라인으로 제품을 주문했지만 배송 중 배송에 실패했다고 상상해보십시오. 좋은 회사는이 문제를 처리하고 패키지가 제 시간에 도착하도록 우아하게 경로를 다시 지정할 수 있습니다. 마찬가지로 Java에서 지침을 실행하는 동안 코드에 오류가 발생할 수 있습니다. 좋은 예외 처리 는 오류를 처리하고 프로그램을 정상적으로 다시 라우팅하여 사용자에게 여전히 긍정적 인 경험을 제공 할 수 있습니다 . 2.2. 왜 그것을 사용합니까? 우리는 일반적으로 이상적인자세히보기 »

Java에서 팩토리얼 계산

1. 개요 음이 아닌 정수 주어진 N , 요인 모두 양의 정수의 곱보다 작거나 같은 N . 이 빠른 자습서에서는 Java에서 주어진 숫자에 대한 계승을 계산하는 다양한 방법을 살펴 봅니다. 2. 20까지의 숫자에 대한 계승 2.1. for 루프를 사용한 팩토리얼 for 루프를 사용하는 기본 계승 알고리즘을 살펴 보겠습니다 . public long factorialUsingForLoop(int n) { long fact = 1; for (int i = 2; i <= n; i++) { fact = fact * i; } return fact; } 위의 솔루션은 20까지의 숫자에 대해 잘 작동 합니다 . 그러나 20보다 큰 것을 시도하면 결과가 너무 커서 long에 맞지 않아 오버플 로 가 발생하므로 자세히보기 »

Hibernate는 프록시를 초기화 할 수 없습니다 – 세션 없음

1. 개요 Hibernate로 작업하면서, org.hibernate.LazyInitializationException : could not initialize proxy – no Session 이라는 오류가 발생했을 수 있습니다 . 이 빠른 자습서에서는 오류의 근본 원인을 자세히 살펴보고이를 방지하는 방법을 알아 봅니다. 2 오류 이해 열린 Hibernate 세션의 컨텍스트 외부에서 지연로드 된 객체에 액세스하면이 예외가 발생합니다. Session , Lazy Initialisation 및 Proxy Object 가 무엇인지 , 그리자세히보기 »

Java가 설치되었는지 확인하는 방법

1. 개요 이 짧은 자습서에서는 Java가 시스템에 설치되어 있는지 확인하는 몇 가지 방법을 살펴 보겠습니다. 2. 명령 줄 먼저 명령 창이나 터미널을 열고 다음을 입력 해 보겠습니다. > java -version Java가 설치 되고 PATH가 올바르게 구성된 경우 출력은 다음과 유사합니다. java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) Client VM (build 25.31-b07, mixed mode, sharing) 그렇지 않으면 아래와 같은 오류 메시지가 표시되며 다른 곳에서 확인해야합자세히보기 »

Java에서 문자열이 회문인지 확인

1. 소개 이 기사에서는 Java를 사용하여 주어진 문자열 이 회문 인지 확인하는 방법을 살펴 보겠습니다 . 회문은 단어, 구, 숫자 또는 "madam"또는 "racecar"와 같이 앞으로와 동일한 뒤로 읽는 문자의 시퀀스입니다 . 2. 솔루션 다음 섹션에서는 주어진 문자열 이 회문인지 아닌지 확인하는 다양한 방법을 살펴 보겠습니다 . 2.1. 간단한 접근 주어진 문자열을 한 번에 한 문자 씩 앞뒤로 동시에 반복 할 수 있습니다 . 일치하는 항목이 있으면 루프가 계속됩니다. 그렇지 않으면 루프가 종료됩니다. public boolean isPalindrome(String text) { String clean = text.replaceAll("\\s+", "").toLowerCase(); int length = clean.length자세히보기 »

자바의 finalize 메소드 가이드

1. 개요 이 자습서에서는 루트 Object 클래스 에서 제공 하는 finalize 메서드 인 Java 언어의 핵심 측면에 초점을 맞 춥니 다 . 간단히 말해서, 특정 개체에 대한 가비지 수집 전에 호출됩니다. 2. 종료 자 사용 마무리 () 메소드는 파이널 불린다. 종료자는 JVM이이 특정 인스턴스가 가비지 수집되어야한다고 판단 할 때 호출됩니다. 이러한 종료자는 개체를 다시 활성화하는 것을 포함하여 모든 작업을 수행 할 수 있습니다. 그러나 종료 자의 주요 목적은 개체가 사용하는 리소스를 메모리에서 제거하기 전에 해제하는 것입니다. 종료자는 정리 자세히보기 »

자바에서 문자열 비교

1. 개요 이 기사에서는 Java에서 문자열 을 비교하는 다양한 방법에 대해 설명합니다 . 으로 문자열 자바에서 가장 많이 사용되는 데이터 유형 중 하나입니다, 이것은 자연적으로 매우 일반적으로 사용되는 작업입니다. 2. 문자열 비교와 문자열 클래스 2.1. 사용 "==" 비교 연산자를 "=="연산자를 사용하여 텍스트 값을 비교하는 것은 Java 초보자가하는 가장 일반적인 실수 중 하나입니다. 이는 잘못 "==" 두 가지의 참조 평등만을 검사 문자열 , 그들은 같은 객체를 참조하거나하지 않을 경우 의미한다. 이 동작의 예를 살펴 보겠습니다. String string1 = "using자세히보기 »

자바의 DAO 패턴

1. 개요 DAO (Data Access Object) 패턴은 추상 API를 사용하여 지속성 레이어 (일반적으로 관계형 데이터베이스이지만 다른 지속성 메커니즘 일 수 있음)에서 애플리케이션 / 비즈니스 레이어 를 분리 할 수있는 구조적 패턴입니다 . 이 API의 기능은 기본 스토리지 메커니즘에서 CRUD 작업을 수행하는 데 관련된 모든 복잡성을 애플리케이션에서 숨기는 것입니다. 이를 통해 두 레이어는 서로에 대해 전혀 알지 못해도 개별적으로 진화 할 수 있습니다. 이 튜토리얼에서는 패턴의 구현에 대해 자세히 살펴보고 JPA 엔티티 관리자에 대한 호출을 추상화하는 데 사용하는 방법을 배웁니다. 2. 간단한 구현 DAO 패턴이 어떻게 작동하는지 이해하기 위해 기본적인 예제를 만들어 보겠습니다. 사용자를 관리하는 애플리케이션을 개발하고 싶다고 가정 해 보겠습니다. 응용 프로그램의 도메인 모델이 데이터베이스에 대해 완전히 자세히보기 »

문자열의 마지막 문자를 제거하는 방법?

1. 개요 이 빠른 기사에서는 문자열 의 마지막 문자를 제거하는 다양한 기술을 확인하고 논의 할 것 입니다. 2. String.substring () 사용 가장 쉬운 방법은 String 클래스 의 내장 substring () 메서드 를 사용하는 것 입니다. 주어진 문자열 의 마지막 문자를 제거 하려면 두 개의 매개 변수를 사용해야합니다. 0 을 시작 색인으로, 두 번째 문자의 색인 을 사용해야 합니다. String 의 length () 메서드 를 호출 하고 결과에서 1 을 빼서 이를 달성 할 수 있습니다. 그러나이 메서드는 null-safe가 아니며 빈 문자열을 사용하면 실패합니다. null 및 빈 문자열 문제를 극복하기 위해 메서드를 도우미 클래스로 래핑 할 수 있습니다. public자세히보기 »

자바의 클래스 로더

1. 클래스 로더 소개 클래스 로더는 런타임 중에 Java 클래스를 JVM (Java Virtual Machine)에 동적으로로드 하는 역할을 합니다. 또한 JRE (Java Runtime Environment)의 일부입니다. 따라서 JVM은 클래스 로더 덕분에 Java 프로그램을 실행하기 위해 기본 파일이나 파일 시스템에 대해 알 필요가 없습니다. 또한 이러한 Java 클래스는 한 번에 메모리에로드되지 않고 응용 프로그램에서 필요할 때로드됩니다. 이것은 클래스 로더가 등장하는 곳입니다. 클래스를 메모리에로드하는 역할을합니다. 이 튜토리얼에서는 다양한 유형의 내장 클래스 로더, 작동 방식 및 자체 사용자 정의 구현 소개에 대해 설명합니다. 2. 내장 클래스 자세히보기 »

Java의 Volatile 키워드 가이드

1. 개요 필요한 동기화가없는 경우 컴파일러, 런타임 또는 프로세서는 모든 종류의 최적화를 적용 할 수 있습니다. 이러한 최적화는 대부분의 경우 유용하지만 때로는 미묘한 문제를 일으킬 수 있습니다. 캐싱 및 재정렬은 동시 컨텍스트에서 우리를 놀라게 할 수있는 최적화 중 하나입니다. Java와 JVM은 메모리 순서를 제어하는 ​​여러 가지 방법을 제공하며 volatile 키워드는 그중 하나입니다. 이 기사에서는 Java 언어에서 자주 오해되는이 기본적이지만 종종 오해되는 개념 인 volatile 키워드에 초점을 맞출 것 입니다. 먼저 기본 컴퓨터 아키텍처가 작동하는 방법에 대한 배경 지식부터 시작한 다음 Java의 메모리 순서에 익숙해집니다. 2. 공유 다중 프로세서 아키텍처자세히보기 »

Java에서 간단한 HTTP 요청 수행

1. 개요 이 빠른 자습서에서는 기본 제공 Java 클래스 HttpUrlConnection 을 사용하여 Java에서 HTTP 요청을 수행 하는 방법을 제시합니다 . JDK (11)을 시작으로 자바가에 대한 대체 의미 HTTP 요청을 수행하기위한 새로운 API 제공하는 참고 HttpURLConnection의, HttpClient를 API를. 2. HttpUrlConnection HttpURLConnection의의 클래스는 우리가 할 수 있는 추가 라이브러리를 사용하지 않고 기본 HTTP 요청을 수행합니다. 필요한 모든 클래스는 java.net 패키지의 일부입니다 . 이 방법을 사용할 때의 단점은 코드가자세히보기 »

Java에서 목록과 집합 간 변환

1. 개요 이 짧은 기사에서 우리는 목록 과 집합 사이의 변환을 살펴볼 것 입니다.-Plain Java에서 시작하여 Guava와 Apache Commons Collections 라이브러리를 사용하고 마지막으로 Java 10을 사용합니다. 이 기사는 Baeldung에 대한 "Java – Back to Basic"시리즈의 일부입니다. 2. 목록 을 세트로 변환 2.1. Plain Java 사용 Java를 사용하여 목록 에서 집합 으로 변환하는 것으로 시작하겠습니다 . public void givenUsingCoreJava_whenListConvertedToSet_thenCorrect() {자세히보기 »