Java 34

[Java] 정렬

Comparable vs Comparator Interface 자바는 정렬을 돕기 위해 Comparable 그리고 Comparator 인터페이스를 제공합니다. 공통점 두 인터페이스 모두 public 접근 변경자로 선언하기 때문에 모든 자료형을 담을 수 있습니다. 차이점 특성 Comparable Comparator 메서드 Comparable 인터페이스는 compareTo(Object a) 메서드를 사용 -> 개체가 하나 제공됨 (this) Comparator 인터페이스는 compare(Object o1, Object o2) 메서드를 사용 -> 개체가 두개 제공됨 정렬 사용처 Collections.sort(List) 메서드는 Comparable 타입을 가지는 객체들을 정렬할 때 사용 -> 기본 정렬 규칙 설..

면접 준비 2021.04.25

Java 날짜 시간 유형에 대한 고찰

개요 현재 다중 서버 환경에서 프로젝트를 개발하고 있는데 인프라팀에서는 분명 서버 간 시간을 동기화하였다고 했는데도 불구하고 LocalDateTime.now()를 로그로 찍어보면 서버 간의 시간이 조금씩 다른 것을 확인할 수 있었습니다. 이에 따라, LocalDateTime.now() 대신 어떤 클래스의 메서드를 사용해야 할지 고민하는 와중 stackoverflow에 Java의 날짜 시간 유형을 잘 정리한 글이 있어 의역을 해보고자 합니다. Instant vs LocalDateTime Instant 클래스와 LocalDateTime 클래스는 비슷해 보이지만 사실 완전히 다릅니다. 하나는 순간(moment)을 나타내고, 다른 하나는 순간(moment)을 나타내지 않습니다. Instant 클래스는 타임라인의..

[DEV] 기록 2021.01.25

Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

회사에서 타 솔루션을 쓰기 위해 다른 버전의 java를 설치한 결과 아래와 같은 에러가 발생했습니다. Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' Error: could not find java.dll Error: Could not find Java SE Runtime Environment. 위와 같은 에러는 Java가 설치되어있더라도 경로를 찾지 못할 경우 발생하는 에러입니다. 저 같은 경우 자바 관련 실행 파일이 시스템 폴더에 존재하고 시스템 폴더가 PATH보다 앞에 위치해서 우선권을 가지다 보니 충돌이 나서 문제가 발생했었습니다. 따라서, 저는 C:\Windows\SysWOW64 폴더 내 java.exe, java..

[DEV] 기록 2020.07.20

Call by Value vs Call by Reference

면접에서 아이스 브레이킹 차원으로 자주 나오는 문제였습니다. 면접 질문: Call by Value와 Call by Reference의 정의와 함께 장단점을 설명해주세요. C, C++에서 함수는 두 가지 방법으로 호출될 수 있습니다. 1. Call by Value2. Call by Reference 그리고 함수에 전달되는 매개변수를 실제 매개변수라고 부르고 함수가 전달받은 매개변수를 형식 매개변수라고 부릅니다.Call by Value이 매개변수 전달 방법에서, 실제 매개변수의 값은 형식 매개변수에 복사되고 두 유형의 매개변수는 서로 다른 메모리에 저장됩니다.따라서 함수 내에서의 변경은 실제로 전달된 실제 매개변수에 반영되지 않습니다.장점복사하여 처리하기 때문에 매개변수로 전달된 값이 보존이 되고 안전합니다..

면접 준비 2020.06.12