2021/07 6

hackerrank/Data Structures/Arrays/Dynamic Array

https://www.hackerrank.com/challenges/dynamic-array/problem 식도 다 세워준 문제인데 지문 이해가 좀 어려웠다. input을 아래와 같이 이해하면 쉽게 해결된다. 2 5 // n q 1 0 5 // query_type x y 1 1 7 1 0 3 2 1 0 2 1 1 lastAnswer를 print하는데에 for문 안에서 그때그때 하는 것이 아니라 main 로직에서 return 된 result를 string으로 mapping 시킨 후 print 해주기에 나는 lastAnswer를 list에 담아 반환해주면 된다. 2차원 배열을 이해하는 문제이다. #!/bin/python3 import math import os import random import re im..

algorithm/python 2021.07.18

java 장애 hang up 걸렸을 때

jstack jdk 1.6 이상을 사용하고 있다면 Microsoft Windows에서도 jstack을 이용해 thread dump를 획득할 수 있다. 먼저 수행 중인 Java application process의 PID를 확인해야 한다. PID는 아래와 같이 jps로 확인 jps -v jps로 추출한 PID를 파라미터로 넣어 jstack을 실행하여 thread dump를 획득한다. jstack 2123 그 후, locked 라고 되어있는 printTrace를 확인한다. 출처: https://dzone.com/articles/how-analyze-java-thread-dumps https://d2.naver.com/helloworld/10963

language/java 2021.07.17

null pointer exception 예방하기

java.lang.NullPointerException (NPE) 발생원인: Runtime Exception으로 java말고도 대부분 개발언어에서 자주 발생한다. null 객체를 참조하였을 때 발생한다. 해당 주소를 찾아갔을 때 아무것도 없다는 의미이다. 방어코드: 1) return null 지양하기 null이 "데이터 없음"을 의미할 수 도 있지만 "failure"를 의미하는 경우도 있어 모호하므로 버그가 많이 발생하게 된다. 되도록이면 return null 은 사용하지 않기로 한다. 2) parameter로 null 넘기지 말기 1번과 같은 의미로 어떤 특별한 의미가 없다면 굳이 주지도 받지도 말자. 3) null check 하기 TestObject test = new TestObject(); Str..

algorithm/java 2021.07.11

java int와 Integer의 차이

java로 개발하다보면 Integer.valueOf(String); Integer.parseInt(String); Map(Integer, String); 처럼 int와 다른 Integer라는 type을 사용하는 걸 볼 수 있다. 이 둘이 어떤 차이가 있는지 알아보도록 하자. 1. int (Primitive 자료형) - '자료형' 을 의미한다. (int, float, long, double 와 같은 하나의 primitive 자료형을 의미) - '산술 연산'이 가능하다. - null로 초기화 불가능 (0으로만 초기화 가능) 2. Integer (Wrapper 클래스-객체) - Wrapper '클래스'를 의미한다. - Unboxing 을 하지 않으면 산술 연산이 불가능하지만, null값을 처리할 수 있다. -..

algorithm/java 2021.07.04