->
연산자를 통한 연산이 가능하다==
로 비교하면 error 가 날 수 있다.
public static void main(String[] args) {
Operator operator = new Operator();
int result = operator.solution(new int[]{5, 2, 4, 1, 2, 4, 5});
System.out.println(result);
}
// XOR
// 5 ^ 0 = 5
// 5 ^ 5 = 0
// 101
// 101
// ---
// 000
// 5 ^ 1 ^ 5 => (5 ^ 5) ^ 1 = 0 ^ 1 = 1
private int solution(int[] numbers) {
int result = 0;
for (int number : numbers) {
result ^= number;
}
return result;
}
java 13 에서의 switch 연산자의 변화들..
offer add 등등의 차이점
Queue<Integer> queue = new LinkedList<>();
boolean offer = queue.offer(1);
boolean add = queue.add(1); // throw exception
queue.poll();
queue.remove(); // throw exception
queue.peek();
queue.element(); // throw exception
instanceof 는 왜 좋지 않은 패턴일 수도 있을까? 물론 좋은 방법일때도 있을 것이다. => 판단하는데 있어서 컴파일 시점 / 런타임 시점이 중요한 부분이라고 생각함.
시멘틱과 효율성 어떤것이 어떤 상황에 좋은 판단일까?
모든 로그를 DEBUG 로 보기, 학습하는데 시간은 오래걸리나 여러가지 생각들을 할 수 있는것 같다. 예를 들면 무언가를 하는데 쿼리 두개나 여러개가 날라가는데 그게 과연 옳은 방식으로 현재 되고 있는건가? 더 좋은 방법은 없는가? 라는 생각을 해야 한다는 것들 -> 이런 생각을 해야 하기에 당연히 오래 걸릴 수 밖에없는데 너무 빨리빨리 하려했다. 습관을 고쳐야 함.
바이트 코드를 읽다보니 이제 몇몇 익숙한 것들은 바이트 코드 문서를 안보고도 읽을 수 있게 됬다. 생각보다 도움됨.. 공부할때만 실제로는 잘 써본적이 없어서 모르겠음. 그래도 남한테 어떤 방식의 Concept 을 설명할때는 꽤나 도움이 된다고 생각함.
팀원들과 어떤 방법에 대해 토의하기, 이번주는 줌에서 이런것들 얘기를 많이 한것같다. 상당히 도움이 된것 같다. 앞으로 더 많이 방법론? 들에 대한 얘기를 해봐야겠다.