while(1) work();
반응형
이상하고 아름다운 JAVA 퀴즈 6
언어/JAVA 2023. 4. 11. 23:21

문제import java.util.*;public class Q6 { public static void main(String[] args) { Random random = new Random(); int[] array = new int[100000]; for (int i = 0; i A와 B에서 출력되는 값(반복문 수행시간)은 유사한가? 아니면 유의미한 차이가 있는가? 정답더보기B가 훨씬 빠르다.환경마다 다르겠지만, A는 2814ms, B는 488ms가 소요되었다. 순서를 바꿔서 정렬된 배열에 대해 먼저 반복문을 수행해도 마찬가지로,정렬된 배열의 반복이 훨씬 빠르다. 이는 Branch Prediction (분기 예측) 때문이다. 정렬된 데이터에 대..

article thumbnail
UDP vs TCP 비교 (부제 : TCP가 UDP보다 빠르다?)
언어/JAVA 2023. 4. 11. 22:45

개요 몇 년 전에 네트워크 강의를 수강하며 TCP와 UDP의 속도/손실률이 실제로 어느정도 되는지 궁금해졌다. TCP/UDP 서버와 클라이언트 코드를 작성해서 비교해봤었는데, 따로 포스팅하지 않고 자료만 가지고 있었다. 그러다가 최근, 모 기업의 자기소개서를 작성하면서 해당 실험을 언급하게 되었고, 과거의 자료를 찾아 블로그에 포스팅한다. 실험 환경 TCP/UDP에 대해 각각 로컬네트워크, AWS서울리전, AWS오하이오리전에서 테스트했다. 또, 패킷의 크기가 400B, 4KB, 40KB일 때 각각 실험하였다. 각 환경에서 10ms간격으로 1000번 패킷을 전송하였고, 3s 간격으로 세 번 반복하였다. (단, AWS환경에서 40KB패킷을 전송할 땐 100번만 전송하였다 ㅡ '결과 분석' 참고) AWS는 t..

Permutation, Combination algorithm using bitmasking
언어/JAVA 2023. 4. 6. 18:27

. import java.util.Arrays; public class Main { public static void main(String[] args) { perm(0, 0, new int[]{1, 3, 5, 7}, new int[3]); System.out.println("---"); comb(0, 0, new int[]{1, 3, 5, 7}, new int[3]); } static void perm(int cnt, int mask, int[] arr, int[] perm) { if (cnt == perm.length) { System.out.println(Arrays.toString(perm)); return; } for (int i = 0; i < arr.length; i++) { if ((mas..

이상하고 아름다운 JAVA 퀴즈 5
언어/JAVA 2023. 3. 13. 16:37

문제 class Q5 { static Integer value = 0; public static void main(String[] args) throws InterruptedException{ Runnable r = () -> { for (int i = 0; i < 100000; i++) { synchronized (value) { value++; } } }; Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println("value = " + value); } } 이 출력값은 200000인가? Hint: 문제 2번과 유사하다. ( https://blog...

article thumbnail
이상하고 아름다운 JAVA 퀴즈 4
언어/JAVA 2023. 3. 13. 15:04

문제A class Q4 { static { System.out.println("1"); } public static void main(String[] args) { System.out.println("2"); } static class SubQ4 { static { System.out.println("3"); } } } 출력값은 무엇인가? 문제 B class Q4 { static { System.out.println("1"); } public static void main(String[] args) { System.out.println("2"); SubQ4.value++; } static class SubQ4 { private static int value = 123; static { System.out..

article thumbnail
이상하고 아름다운 JAVA 퀴즈 3
언어/JAVA 2023. 3. 13. 01:30

문제 class Q3 { public static void main(String[] args) { Integer a = 200; Integer b = 200; System.out.println(a == b); Integer c = 100; Integer d = 100; System.out.println(c == d); } } 출력값은 무엇인가? (1) true true (2) false false (3) true false (4) false true (5) 런타임 에러 (6) 컴파일 에러 정답 답은 4번. false true 이다. Integer은 객체 래퍼(wrapper) 타입이기 때문에 두 객체는 동등성(equality)은 일치하지만 동일성(identity)은 달라야 할 것 처럼 보인다. 따라서 fa..

article thumbnail
이상하고 아름다운 JAVA 퀴즈 2
언어/JAVA 2023. 3. 13. 01:12

문제 class Q2 { static long value; public static void main(String[] args) { Runnable r = () -> { for (int i = 0; i < 100000; i++) value++; }; Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); t1.join(); t2.join(); //작업 종료 대기 System.out.println("value = " + value); } } 출력된 값은 200000인가? 정답 아니다. 200000에 한참 못미치는 값이 출력된다. 꼬리 문제 그럼, 문제 1( https://engine-it.tistory.com/179 ) 처..

article thumbnail
이상하고 아름다운 JAVA 퀴즈 1
언어/JAVA 2023. 3. 13. 00:37

문제 class Q1 { static long value = 123456789123456789L; public static void main(String[] args) { Thread t1 = new Thread(() -> { long cnt = 0; while (true) { value = (cnt++ % 2 == 0) ? 987654321987654321L : 123456789123456789L; } }); Thread t2 = new Thread(() ->{ while (true) { long v = value; if (v != 987654321987654321L && v != 123456789123456789L) { //여기 System.out.println("Something wrong.. va..

반응형

검색 태그