CountDownLatch 및 CyclicBarrier 둘 다 멀티스레딩 환경에서 사용되며 둘 다 일부입니다. Java 문서에 따라 - CountDownLatch - 하나 이상의 스레드가 다른 스레드에서 수행 중인 일련의 작업이 완료될 때까지 대기할 수 있도록 하는 동기화 지원입니다. CyclicBarrier - 스레드 집합이 모두 서로가 공통 장벽 지점에 도달할 때까지 기다릴 수 있도록 하는 동기화 보조 장치입니다. Sr. 아니요. 키 CyclicBarrier CountDownLatch 1 기본 스레드 세트가 모두
Java에서 불변 객체의 상태는 생성된 후에 수정할 수 없지만 다른 객체를 확실히 참조합니다. 다중 스레드는 객체의 상태를 변경할 수 없으므로 불변 객체는 스레드로부터 안전하기 때문에 다중 스레드 환경에서 매우 유용합니다. 불변 객체는 시간적 커플링을 피하고 항상 원자성이 실패하는 데 매우 유용합니다. 반면, Mutable 객체에는 변경할 수 있는 필드가 있고, immutable 객체에는 객체가 생성된 후 변경할 수 있는 필드가 없습니다. Sr. 아니요. 키 변경 가능한 개체 불변 개체 1 기본 변경 가능한 객체가 생성
다형성은 가장 중요한 OOP 개념 중 하나입니다. 그것은 우리가 여러 가지 방법으로 단일 작업을 수행할 수 있는 개념입니다. 다형성에는 두 가지 유형이 있습니다. 하나는 컴파일 시간 다형성이고 다른 하나는 런타임 다형성입니다. 메소드 오버로딩은 컴파일 타임 다형성의 예이고 메소드 오버라이드는 런타임 다형성의 예입니다. Sr. 아니요. 키 컴파일 타임 다형성 런타임 다형성 1 기본 컴파일 시간 다형성은 컴파일 시간에 바인딩이 발생함을 의미합니다. 런타임에 어떤 메소드가 호출할지 알게 된 런타임 다형성 2 정적
String은 변경할 수 없는 클래스이며 해당 객체는 생성된 후에 수정할 수 없지만 다른 객체를 확실히 참조합니다. 다중 스레드는 객체의 상태를 변경할 수 없으므로 불변 객체는 스레드로부터 안전하기 때문에 다중 스레드 환경에서 매우 유용합니다. 문자열 버퍼는 문자열의 역순, 문자열 연결 등과 같은 문자열 개체에 대한 작업을 수행하는 데 사용할 수 있는 변경 가능한 클래스입니다. 문자열의 새 개체를 만들지 않고 문자열을 수정할 수 있습니다. 문자열 버퍼도 스레드로부터 안전합니다. 또한 string concat + 연산자는 내부적으
Selenium webdriver에서 자식 브라우저 창을 닫을 수 있습니다. getWindowHandles 및 getWindowHandle 메서드를 사용하여 자식 창을 처리할 수 있습니다. getWindowHandles 메서드는 열린 모든 창 핸들을 Set 데이터 구조에 저장하는 데 사용됩니다. getWindowHandle 메소드는 현재 활성화된 브라우저 창을 저장하는 데 사용됩니다. 창 핸들을 반복하려면 iterator 방법이 사용됩니다. java.util.Set 가져오기를 추가해야 합니다. java.util.List 설정 및
Selenium webdriver를 사용하여 특정 DIV를 스크롤할 수 있습니다. Selenium은 스크롤을 직접 처리할 수 없습니다. Javascript Executor의 도움이 필요합니다. 특정 DIV로 스크롤 작업을 수행합니다. 우선 xpath 또는 CSS 로케이터를 사용하여 스크롤해야 하는 특정 DIV를 식별해야 합니다. 다음으로 우리는 Javascript 명령을 실행하기 위해 Javascript Executor의 도움을 받을 것입니다. executeScript 메소드 Selenium에서 Javascript 명령을 실행하는
Selenium webdriver로 특정 창을 닫을 수 있습니다. getWindowHandles 및 getWindowHandle 메서드를 사용하여 자식 창을 처리할 수 있습니다. getWindowHandles 메서드는 열린 모든 창 핸들을 Set 데이터 구조에 저장하는 데 사용됩니다. getWindowHandle 메서드는 브라우저 창의 창 핸들을 포커스에 저장하는 데 사용됩니다. java.util.Set 가져오기를 추가해야 합니다. java.util.List 가져오기 코드에서 Set 데이터 구조를 수용하기 위한 문. 기본적으로
Java는 현재 가장 인기 있는 엔터프라이즈 언어 중 하나입니다. 객체 지향 프로그래밍의 핵심이며 엔터프라이즈 수준의 응용 프로그램 및 테스트 플랫폼을 구축할 수 있는 훌륭한 플랫폼과 함께 제공됩니다. 초보자의 경우 Java 환경을 설치하고 적응하는 데 처음에는 시간이 걸릴 수 있습니다. Docker Containers를 사용하면 내부의 Java Runtime Environment에 액세스할 수 있으므로 이미 설치된 라이브러리가 있는 쉽게 관리할 수 있는 패키지 환경을 제공합니다. 로컬 머신에 Docker가 설치되어 있으면 Jav
Selenium으로 인증 팝업을 처리할 수 있습니다. 이렇게 하려면 사용자 자격 증명을 전달해야 합니다. URL 내에서. URL에 사용자 이름과 비밀번호를 추가해야 합니다. 구문 https://username:password@URL https://admin:admin@the−nternet.herokuapp.com/basic_auth Here, the admin is the username and password. URL − www.the-internet.herokuapp.com/basic_auth 아래 인증
Selenium으로 브라우저 로그를 캡처할 수 있습니다. RemoteWebDriver를 드라이버로 캐스트한 다음 초기화해야 합니다. 다음으로 setLogLevel을 사용해야 합니다. 방법. org.openqa.selenium.remote.RemoteWebDriver 가져오기 RemoteWebDriver에 대한 코드에 문을 추가해야 합니다. . 구문 ((RemoteWebDriver) driver).setLogLevel(Level.INFO); 예 import org.openqa.selenium.By; import org.openqa.s
Selenium을 사용하여 탭을 전환할 수 있습니다. 먼저 새 탭에서 링크를 열어야 합니다. 키 sendKeys와 함께 .chord 메소드 사용됩니다. Keys.chord 메서드를 사용하면 한 번에 둘 이상의 키를 전달할 수 있습니다. 키 또는 문자열 그룹은 메서드에 인수로 전달됩니다. Keys.CONTROL을 전달합니다. 및 Keys.ENTER Keys.chord 메서드에 대한 인수로. 그런 다음 전체 문자열이 sendKeys에 인수로 전달됩니다. 방법. 마지막으로 driver.findElement로 식별되는 링크에 sendKe
Selenium에서 브라우저 쿠키를 지울 수 있습니다. deleteCookieNamed 메소드 특정 이름의 쿠키를 삭제합니다. 이름이 지정된 쿠키는 메서드에 대한 인수로 전달됩니다. 먼저 쿠키를 추가한 다음 가져오고 마지막으로 삭제합니다. 구문 driver.manage().deleteCookieNamed("foo"); deleteAllCookies 삭제라는 또 다른 방법 기존 도메인의 모든 쿠키. 먼저 쿠키를 추가한 다음 쿠키를 가져와서 삭제합니다. 구문 driver.manage().deleteAllCookies
Selenium을 사용하여 Print screen 버튼을 시뮬레이션할 수 있습니다. 스크린샷은 화면 인쇄 버튼으로 캡처됩니다. 스크린샷 캡처는 3단계 프로세스입니다. 이는 실패 분석을 위한 중요한 단계입니다. 드라이버 개체를 TakeScreenshot으로 변환합니다. 인터페이스. 구문 TakesScreenshot s = (TakesScreenshot)driver; 그런 다음 getScreenshotAs를 사용하여 방법은 이미지 파일을 가지고 FileUtils.copyFile이 있는 위치에 해당 파일을 복사합니다. 방법. 구문 F
Selenium을 사용하여 아래로 스크롤할 수 있습니다. Selenium은 스크롤을 직접 처리할 수 없습니다. Javascript Executor의 도움이 필요합니다. 요소까지 스크롤 작업을 수행합니다. 우선 스크롤해야 하는 요소를 찾아야 합니다. 다음으로 Javascript Executor를 사용하여 Javascript 명령을 실행합니다. executeScript 메소드 Selenium에서 Javascript 명령을 실행하는 데 사용됩니다. 우리는 scrollIntoView의 도움을 받을 것입니다. 자바스크립트에서 메소드를 입력
주어진 두 개의 문자열 str_1 및 str_2. 목표는 재귀 프로세스를 사용하여 문자열 str1에서 부분 문자열 str2의 발생 횟수를 계산하는 것입니다. 재귀 함수는 정의 내부에 자체 호출이 있는 함수입니다. str1이 나는 당신이 내가 알고 있다는 것을 알고 있다는 것을 알고 있습니다인 경우 str2 =know 발생 횟수는 − 3입니다. 예를 들어 이해합시다. 예를 들어 입력 str1 = "TPisTPareTPamTP", str2 = "TP"; 출력 Count of occurre
두 개의 문자열 a와 b가 있다고 가정하고, 작업은 문자열 a를 시계 반대 방향 또는 시계 방향으로 정확히 2자리 회전하여 문자열 b를 얻을 수 있는지 여부를 찾는 것입니다. 예를 들어, 입력-1 - a = google b = legoog 출력 - True 설명 − 문자열 google은 시계 반대 방향으로 두 자리 회전할 수 있으며 결과적으로 문자열 legoog가 생성됩니다. 따라서 True를 반환합니다. 입력-2 - a = tuorialst b = tutorials 출력 - False 설명 − 문자열 tuorialst는
정렬되지 않은 정수 배열을 제공했다고 가정해 보겠습니다. 작업은 [0 ~ n] 범위의 지정된 배열에 없는 양의 누락된 숫자를 찾는 것입니다. 예를 들어, 입력-1 - N = 9 arr = [0,2,5,9,1,7,4,3,6] 출력 - 8 설명 − 주어진 정렬되지 않은 배열에서 8이 누락된 유일한 양의 정수이므로 출력은 8입니다. 입력-2 - N = 1 arr = [0] 출력 - 1 설명 − 주어진 배열에서 1이 누락된 유일한 양의 정수이므로 출력은 1입니다. 이 문제를 해결하기 위한 접근 방식 이 특정 문제를 해결하기 위
정수 배열을 제공했다고 가정해 보겠습니다. 작업은 주어진 배열에서 특정 요소의 인덱스를 찾는 것입니다. 예를 들어, 입력-1 - N = 8 A[ ] = { 1,2,4,3,3,1,1,5} 출력 - 1 설명 − 주어진 정수 배열에서 가장 많이 나타나는 숫자는 1입니다. 따라서 출력은 1입니다. 입력-2 - N = 6 A[ ] = {1,5,4,4,1,1} 출력 - 1 설명 − 주어진 정수 배열에서 가장 많이 나타나는 숫자는 1입니다. 따라서 출력 1을 반환할 수 있습니다. 이 문제를 해결하기 위한 접근 방식 주어진 배열에는
N×N의 정방 행렬이 주어졌다고 가정해 봅시다. 작업은 매트릭스를 시계 반대 방향으로 회전하는 것입니다. 예를 들어, 입력-1 - N = 3 matrix[ ][ ] = [ [1 2 3], [4 5 6], [7 8 9] ] 출력 - 3 6 9 2 5 8 1 4 7 설명 :행렬을 시계 반대 방향으로 회전하면 3 6 9 2 5 8 1 4 7과 같은 출력이 생성됩니다. 이 문제를 해결하기 위한 접근 방식 처음에 아이디어는 주어진 행렬의 전치를 찾은 다음 행
0, 1, 2의 배열이 주어지면 모든 0이 1보다 먼저 오고 모든 2가 마지막에 오도록 순서대로 요소를 정렬합니다. 배열의 모든 요소를 제자리에서 정렬해야 합니다. DNF(Dutch National Flag) 정렬 알고리즘을 사용하여 이 문제를 해결할 수 있습니다. 예를 들어, 입력-1 - arr[ ]= {2,0,0,1,2,1 } 출력 - 0 0 1 1 2 2 설명 − DNF 정렬 알고리즘을 사용하여 0,1 및 2를 포함하는 요소의 지정된 배열을 정렬하면 출력이 {0,0,1,1,2,2}로 인쇄됩니다. 입력-2 - arr