개체 그래프에는 참조를 포함하는 개체도 직렬화되는 경우 자동으로 직렬화되는 개체 집합이 포함됩니다. 직렬화되고 objectreference를 포함하는 모든 개체, 개체 참조는 JVM에 의해 직렬화됩니다. 예시 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class One implements
클래스 변수는 정적 변수라고도 하며 정적 키워드를 사용하여 메서드 외부에서 선언됩니다. 정적 변수는 클래스의 모든 인스턴스에 공통적인 변수입니다. 변수의 단일 복사본은 모든 개체에서 공유됩니다. 예시 public class Demo{ static int my_count=2; public void increment(){ my_count++; } public static void main(String ar
Java용 파서 라이브러리인 OpenCSV를 먼저 설치해야 합니다. 종속성은 maven 프로젝트의 pom.xml 파일에 언급되어야 합니다. 그 후 아래 코드를 활용하시면 됩니다. 예 import java.io.FileReader; import java.io.*; public class Demo{ public static void readDataLineByLine(String file){ try{ FileReade
문자열이 Java에서 유효한 키워드인지 확인하려면 코드는 다음과 같습니다. - 예시 import java.util.*; public class Demo{ static boolean valid_identifier(String my_str, int n){ if (!((my_str.charAt(0) >= 'a' && my_str.charAt(0) <= 'z') ||
복소수는 허수부와 실수부가 연결된 숫자입니다. 일반 숫자처럼 더하고 뺄 수 있습니다. 실수부와 허수부는 각각 더하거나 빼거나 곱하고 나눕니다. 예시 public class Demo{ double my_real; double my_imag; public Demo(double my_real, double my_imag){ this.my_real = my_real; this.my_imag = m
Java의 String에 대한 논리 연산자를 구현해 보겠습니다. - 예 import java.io.*; public class Demo{ public static void main(String[] args){ int a = 45, b = 32, c = 87, d = 1; System.out.println("The first variable is " + a); System.out.p
Java에서 정밀도가 어떻게 처리되는지 봅시다 - 예시 import java.io.*; import java.lang.*; public class Demo{ public static void main(String[] args){ double my_val = 34.909; System.out.println("The formatted value of 34.909 is "); Syste
File 객체는 디스크의 실제 파일/디렉토리를 나타냅니다. 다음은 Java에서 파일 개체를 생성하는 생성자 목록입니다. 시니어 번호 방법 및 설명 1 파일(파일 상위, 문자열 하위) 이 생성자는 상위 추상 경로 이름과 하위 경로 이름 문자열에서 새 File 인스턴스를 만듭니다. 2 파일(문자열 경로명) 이 생성자는 지정된 경로 이름 문자열을 추상 경로 이름으로 변환하여 새 File 인스턴스를 만듭니다. 3 파일(문자열 상위, 문자열 하위) 이 생성자는 부모 경로 이름 문자열과 자식 경로 이름 문자열에서 새 Fi
Java Collections 프레임워크는 데이터 그룹을 저장하고 조작하는 데 사용됩니다. 이는 메모리 내 데이터 구조이며 컬렉션에 추가되기 전에 컬렉션의 모든 요소를 계산해야 합니다. Stream API는 데이터 그룹 처리에만 사용됩니다. 실제 컬렉션을 수정하지 않고 파이프라인 방식에 따라 결과만 제공합니다. Sr. 아니요. 키 컬렉션 스트림 1 기본 데이터 그룹을 저장하고 조작하는 데 사용됩니다. Stream API는 데이터 그룹 처리에만 사용됩니다. 2 패키지 이 API의 모든 클래스와 인터페이
Runnable 및 Callable 모두 기능적 인터페이스입니다. 이러한 인터페이스를 구현하는 클래스는 다른 스레드에서 실행되도록 설계되었습니다. 스레드는 Ruunable로 시작할 수 있으며 새 스레드를 시작하는 두 가지 방법이 있습니다. 하나는 Thread 클래스를 서브클래싱하는 것이고 다른 하나는 Runnable 인터페이스를 구현하는 것입니다. Thread 클래스에는 호출 가능한 생성자가 없으므로 스레드를 실행하려면 ExecutorService 클래스를 사용해야 합니다. Sr. 아니요. 키 실행 가능 호출 가능 1 패
Executor 및 ExecutorServices 두 인터페이스는 모두 Executor 프레임워크의 일부입니다. Java 5와 함께 출시되었습니다. Java에서 스레드 생성은 매우 비용이 많이 드는 작업이므로 매번 새 스레드를 시작하는 대신 사용 가능한 스레드를 재사용해야 하며 Executor 프레임워크를 사용하여 동일한 작업을 수행할 수 있습니다. Executor 프레임워크는 스레드 풀을 사용하여 응답 시간과 리소스 활용을 최적화하는 데 도움이 되는 병렬 작업을 실행합니다. 4가지 유형의 내장 스레드 풀을 제공합니다. - 고
Executor 프레임워크는 스레드 풀 개념을 사용하여 설계되었습니다. 쓰레드 풀은 현재 작업을 실행할 때마다 새로운 쓰레드를 생성하지 않고 이미 생성된 쓰레드를 재사용하는 방식입니다. Executors 클래스는 스레드 풀을 생성하는 팩토리 메서드를 제공합니다. ThreadPoolExecutor 클래스는 많은 Executors 팩토리 메서드에서 반환되는 실행기의 기본 구현입니다. Sr. 아니요. 키 고정 스레드 풀 캐시된 스레드 풀 1 기본 자바 문서에 따라 - 공유 무제한 대기열에서 작동하는 고정된 수의 스레드를 재
Sr. 아니요. 키 예약된 스레드 풀 단일 스레드 실행기 1 기본 주어진 지연 후에 실행되거나 주기적으로 실행되도록 명령을 예약할 수 있는 스레드 풀을 만듭니다. 작업은 순차적으로 실행되도록 보장되며 주어진 시간에 하나 이상의 작업이 활성화되지 않습니다. 2 대기열 Delay Queue를 사용하여 작업을 저장합니다. 시간 지연에 따라 작업을 예약합니다. 블로킹 큐를 사용합니다. 3 스레드 수명 유휴 상태인 경우에도 풀에 보관할 스레드 수 작업으로 인해 스레드가 종료된 경우 스레드
Function 및 Predicate 둘 다 기능 인터페이스는 Java에서 기능 프로그래밍을 구현하기 위해 Java 8에 도입되었습니다. 함수 인터페이스는 변환을 수행하는 데 사용됩니다. 하나의 인수를 허용하고 결과를 생성할 수 있습니다. 반면에 Predicate는 하나의 인수만 받아들일 수 있지만 부울 값만 반환할 수 있습니다. 상태를 테스트하는 데 사용됩니다. Sr. 아니요. 키 함수 술어 1 기본 유형 매개변수는 2개를 가질 수 있습니다. 첫 번째는 입력 유형 인수 유형을 나타내고 두 번째 매개변수는 반환 유형을
스트림은 Java 8에 도입되었으며 요소를 저장하는 것이 아니라 데이터 그룹을 처리하는 데만 사용됩니다. 실제 컬렉션을 수정하지 않고 파이프라인 방식에 따라 결과만 제공합니다. 스트림 API는 여러 작업을 지원하며 작업은 두 부분으로 나뉩니다 - 중간 작업 - 이 작업은 다른 방법을 파이프라인하고 다른 스트림으로 변환하는 데 사용됩니다. 이러한 작업은 터미널 작업이 실행될 때까지 호출되지 않기 때문에 결과를 생성하지 않습니다. 아래는 예시입니다 - 정렬(비교자) 피킹(소비자) 별도() 터미널 작업 - 이 작업은 결과를 생성하는
Iterator 및 split iterator 인터페이스는 컬렉션을 반복하는 데 사용됩니다. 병렬화를 달성하기 위해 분할 반복자가 Java 8에 도입되었습니다. 주어진 요소 집합을 분할할 수 있고 다른 독립 스레드를 사용하여 병렬로 작업을 수행할 수 있습니다. 요소를 순차적으로 뿐만 아니라 병렬로 탐색할 수 있습니다. splitIterator 인터페이스에는 다음과 같은 중요한 메소드가 있습니다 - trySplit - 주어진 요소 집합을 여러 조각으로 분할하는 데 사용됩니다. tryAdvance - Iterator 인터페이스에서
PermGen은 정적 변수, 바이트 코드 등과 같은 클래스 데이터를 저장하기 위한 메모리 영역입니다. PermGen에는 기본적으로 64Mb가 할당됩니다. -XXMaxPermSize를 사용하여 조정할 수 있습니다. Java 8에서는 PermGen 메소드 영역이 MetaSpace로 대체되었습니다. 그들은 permGem을 기본 OS의 별도 메모리로 이동했으며 이를 MetaSpace라고 합니다. 기본적으로 자동으로 크기를 늘릴 수 있습니다. MetaSpace에서 클래스는 JVM의 수명 동안 로드 및 언로드할 수 있습니다. Sr. 아니요.
Oracle의 Javadocs에 따르면 - 기본 메소드를 사용하면 라이브러리의 인터페이스에 새로운 기능을 추가하고 해당 인터페이스의 이전 버전용으로 작성된 코드와 바이너리 호환성을 보장할 수 있습니다. 정적 메서드는 개체가 아니라 정의된 클래스와 연결된 메서드입니다. 클래스의 모든 인스턴스는 정적 메서드를 공유합니다. 인터페이스의 정적 메서드는 인터페이스 클래스의 일부로 구현하거나 재정의할 수 없지만 클래스는 기본 메서드를 재정의할 수 있습니다. Sr. 아니요. 키 정적 인터페이스 방법 기본 방법 1 기본 인터페이스
JMS는 Java 메시지 서비스의 약어입니다. Java 메시지 서비스는 Java에서 제공하는 API입니다. 애플리케이션에서 메시징 시스템을 구현하는 데 사용됩니다. JMS는 구현을 포함하지 않는 API 또는 사양이므로 JMS를 사용하려면 ActiveMq, Weblogic 메시징 등과 같은 일부 타사 서비스 공급자가 있어야 합니다. JMS는 두 가지 유형의 메시징 도메인을 지원합니다. - 포인트 투 포인트 메시징 게시/구독 메시지 Sr. 아니요. 키 포인트 투 포인트 메시징 게시/구독 1 기본 메시지의 일대일 목적
Kafka와 JMS는 모두 메시징 시스템입니다. Java 메시지 서비스는 Java에서 제공하는 API입니다. 애플리케이션에서 메시징 시스템을 구현하는 데 사용됩니다. JMS는 대기열 및 게시자 /subscriber(topic) 메시징 시스템을 지원합니다. 대기열을 사용하면 첫 번째 소비자가 메시지를 사용할 때 메시지가 대기열에서 삭제되고 다른 사용자는 더 이상 메시지를 받을 수 없습니다. 주제의 경우 여러 소비자가 각 메시지를 수신하지만 확장하기가 훨씬 어렵습니다. Kafka는 이 두 개념의 일반화입니다. 동일한 소비자 그룹의 구