안녕하세요. 톡방에서 Long 객체에 저장된 값을 Integer type으로 conversion을 할 수 있는지에 대한 질문을 받았습니다. 이에 대한 제 답은 그냥 intValue 메서드를 써서 int type으로 강제 형변환한 값을 꺼낸 다음에, boxing 시키라는 것이였습니다. 이 답변을 하고 난 후에, 코드를 보니, Number 클래스가 있어서 간단하게 알아보았습니다. 이 클래스 안에는, intValue, longValue, floatValue, doubleValue, byteValue, shortValue 메소드가 있어요. 이들이 boxing 되어 있는 value를 type conversion하기 위한 것이다. 나름 합리적인 추론일 겁니다. 설명을 봐도 유추할 수 있는데요. super class..
Java 검색 결과
java 9 버전 부터 Map.of 메소드가 생겼습니다. 이것을 언제 쓸 법 한지 알아보고, 간단하게 내부를 보도록 하겠습니다. 보시면, unmodifiable map을 리턴하게끔 되어 있습니다. 수정할 수 없는 맵을 리턴한다고 보면 맞겠네요. 예제 프로그램을 하나 보겠습니다. 먼저 key와 value값이 (1, 1)인 쌍과 (2, 2)인 쌍을 넣은 다음에, m에 들어있는 내용들을 toString으로 출력해 보겠습니다. 그러면, (2, 2)쌍과 (1, 1)쌍이 출력됩니다. 만약에 이 상황에서, 키를 추가한다고 하면 어떻게 될까요? 예제는 이렇습니다. 일단, Map.of는 둘 이상의 (k, v)쌍을 호출하게 되면 ImmutableCollections 안에 있는 MapN 객체를 만들어 내게 됩니다. 이것은 ..
톡방에서 이야기를 나누다가 record 클래스가 최신 자바 버전에 도입되었다는 것을 알게 되었습니다. 이것을 써 보려고 jdk 17을 깔고, intellij 버전을 2021.x 버전까지 올리게 되었습니다. 제가 설치했던 버전에서는 language level 선택에 17이 없었거든요. 하튼, 간단하게만 써 보고, 코딩 테스트를 푸실 때 어떻게 쓰시면 좋을지 정도만 보도록 하겠습니다. 먼저, record data는 요래 정의했습니다. 그냥 int형 x, int형 y로 이루어진 레코드 (직역하면 구조체) 정도라고 생각하면 좋겠네요. 그러면 이 친구들은 어떤 특성을 가질까요? 먼저, 필드들이 final field로 구성되어 있어요. 그렇다는 이야기는 한 번 값이 정해지면 바뀌지 않는 immutable한 특성을 ..
제가 3회 코딩테스트에 출제한 문제 중에, 가희와 쓰레기 놀이가 있었습니다. 이 문제에 대한 풀이는 다음 편에 상세히 올리도록 하겠습니다. 대신에, 이번에는 어떤 것을 가지고 출제했는지에 대한 썰을 풀어보도록 하겠습니다. 이미, 제 포스팅 스타일을 보신 분들은 눈치 채셨을 지도 모르겠지만. 제 코딩테스트에서 3번 문제는 예외없이 cs가 나오기도 했고요. 일단 자바나 python이나, weak reference 비슷한 게 또 있음을 알 수 있어요. 강한 참조 관계가 아닌 얘들이 있는데요. 자바는 soft, weak, 팬텀이 있긴 한데요. 여기서 다룰 내용은 아닌 듯 합니다. 저는 여기서 의문이 하나 들었습니다. 아니. 굳이 왜? 그냥 객체 a로부터 b에 접근할 수 있다고 치면, 강한 연결 관계로만 대충 이..
안녕하세요. 요새 이것 저것 보다가 문득 클래스 로더는 언제 class를 로드하는지에 대해 궁금했습니다. 이것을 직접 trace 해 볼 수 있는 방법은 없는지를 찾다가 -XX:+TraceClassLoading에 대해서 알게 되었어요. 그리고 조금 더 찾다 보니, 이런 문서도 발견하게 되었는데요. 업데이트가 된 버전에서는 이 옵션 대신 다른 옵션을 쓰라고 안내해 주고 있었어요. 현재 제 서버에 있는 java와 javac 버전입니다. Openjdk를 쓰고 있어요. Main.java를 컴파일 한 다음에 java 명령어로 실행을 시켜보겠습니다. 제가 위에서 링크한 문서에 따르면, Unified logging이 자바 9부터 도입되면서 몇 개의 tracing flag가 다른 것으로 대체되는데, TraceClassL..
최근댓글