Java

이야기/후기

[면접 후기] 판교에 위치한 청소 매니저 관련 서비스 회사

안녕하세요. 점냥입니다:) 오늘은 처음으로 신입 Android 개발자 면접 후기를 가져왔습니다. 제가 이번에 면접 본 회사는 판교에 위치해 있고, 청소 매니저 서비스와 관련된 회사입니다. Android 면접 질문에 대해 공유해드릴 겸, 이번 면접 경험이 매우 만족스러워서 포스팅을 작성하게 되었습니다. 1차 면접 서류를 넣고 나서 3~5일이 지난 후, 합격 결과와 면접 일자를 정해 달라는 메일을 받게 되었습니다. 요즘 코로나로 인해서 화상 면접으로 진행될 줄 알았지만 판교에 위치한 회사에서 대면 면접으로 진행했습니다. 저는 오히려 좋았습니다. 최근에 집에만 있다 보니 ㅎ.. 그런데 면접 당일 날까지 회사 위치를 직접 공지해주지 않아서 당황했어요. 면접 날 메일로 자세히 찾아오는 법을 링크로 건네주는 회사가..

Language/Java

[Java] Thread 강제 종료 시키는 방법

안녕하세요. 점냥입니다:) 이번 포스팅에서는 Java Thread를 외부에서 종료시키는 방법에 대해서 작성해보려고 합니다. 이 주제는 최근 기업 기술 질문에서 대답을 못한 질문 중에 하나로 정답을 찾고 정리하고자 이번 포스팅을 준비하게 되었습니다. while문에서 무한 루프를 돌고 있어 종료되지 않는 스레드, 외부에서 어떻게 강제 종료시킬 수 있는가? class SampleThread implements Runnable { @Override public void run() { while(true) { System.out.println("thread is running"); } } } 모든 Thread는 Runnable의 run() 함수 내 코드를 실행하고 함수의 모든 코드가 실행이 되면 스레드는 자동으로..

Algorithm_Java

[수학] 백준 1676 - 팩토리얼 0의 개수

문제본문 문제 해석 입력으로 들어오는 N!의 결과 값에서 뒤에서 부터 0이 아닌 숫자가 나올때까지 0의 개수를 구하라 문제를 이해하는 데 시간이 필요했다. 결론적으로 말하면 N!의 결과 값이 301200라고 한다면 뒤에서 부터 0이 2번 나오고 그 다음으로 2가 나온다. 따라서 0이 아닌 숫자가 나올 때까지 0의 개수는 2라고 답할 수 있다. 문제에서 주어지는 N의 범위는 0

Algorithm_Java

[알고리즘] 백준 2981 - 검문

문제본문 문제 해석 어떠한 수 V(i)에 대해서 몫이 a고 나머지가 r이라면 아래의 수식이 성립한다. V(i) = a(i) * m + r(i) 그리고 V(i-1) 수식을 V(i) 뺀다면 아래와 같은 수식이 된다. V(i) - V(i-1) = (a(i) - a(i-1)) * m + (r(i) - r(i-1)) 자! 문제에서 원하는 답은 N개의 수에 대해서 M으로 나누었을 때 나머지가 같게되는 M을 모두 찾는 것이다. 나머지가 같다는 것은 위 수식에 대입해보면 답은 V(i) - V(i-1)의 숫자를 나머지가 0으로 만드는 M을 찾는 것이다. N개의 수를 오름차순으로 정렬하기 long[] nums = new long[n]; for (int i = 0; i < nums.length; i++) { nums[i] ..

Language/Java

Java의 Singleton

Singleton 패턴은 Class의 인스턴스를 여러 번 생성하는 것이 아닌 하나의 클래스당 하나의 인스턴스를 가지게 만들어 불 필요한 메모리 낭비를 최소화하는 디자인 패턴입니다. Java에서 Singleton 패턴을 구현하는 방법은 여러 가지가 있고 하나씩 소개하도록 하겠습니다. Eager Initialization public class A { private A instance = new A(); private A() {} public static A getInstance() { return instance; } } 가장 기본적으로 singleton으로 구현한 형태입니다. 기본 생성자를 private로 선언하여 외부에서 생성자의 호출을 막고 오직 getInstance함수로 인해 클래스 객체에 접근할 ..

Language/Java

Java - String pool

평범했던 평일 오후, 오픈 톡방에서 한 사람이 Android Intent 이동 부분에서 발생한 오류 부분을 알려달려고 물어 봤다. final String val = "길찾기" if ( val == textView.getText().toString()) { // Intent로 다른 엑티비티로 이동 } 보자마자 String 객체를 == 연산으로 비교한 것이 잘못이라고 생각했지만 큰 오산이었다. String의 메모리 할당 구조에 대해서 잘 알지 못하여 발생한 착각이었다. Java String 참조형 비교 int a1 = 1; int a2 = 1; String b1 = new String("Hello world"); Integer b2 = new String("Hello world"); System.out.pr..

Data structure_Java

[DataStructure] HashSet

안녕하세요 점냥입니다:) 이번 포스팅에 다룰 Java의 자료구조 class는 HashSet 입니다. HashSet은 중복된 값이 저장되지 않는 Set 자료구조에서 중복된 값을 판단하는 기준이 Hash code 인 Java 라이브러리 입니다. 이 포스팅에서 다루지 않은 Hash Set의 다양한 내용을 알고 싶다면 HashSet 개요를 클릭해주세요! HashSet 주요 함수 반환값 함수 설명 boolean add(E e) 해당 요소가 존재하지 않으면 추가 boolean remove(E e) 해당 요소가 존재하면 삭제 boolean contains(E e) 해당 요소가 존재하는 지 주요 예제 코드 public static void main(String[] args) { HashSet hashSet = new ..

Data structure_Java

[DataStructure] 우선순위 큐

안녕하세요:) 점냥입니다 Priority Queue는 Heap 자료구조를 구현한 클래스로 우선순위가 높은 요소가 먼저 나가는 Queue 자료구조라고 생각하시면 됩니다 따라서 요소들이 저장될 때 우선순위에 맞게 정렬되기 위해 Priority Queue의 Type들은 Comparable 인터페이스를 구현한 요소들만 저장할 수 있습니다 Priority Queue 주요 함수 반환값 함수 설명 boolean add( E e ) 요소 추가 boolean contains( E e ) 해당 요소가 있는지 확인 E peek() 제거하지 않고 맨 위 요소 꺼내기 E poll() 제거하면서 맨 위 요소 꺼내기 boolean remove( E e ) 해당 요소 삭제 int size() queue 크기 반환 T[ ] toArr..

점냥
'Java' 태그의 글 목록