[Java] 연산자 우선순위, 자료형, 기타 등등(24.05.20)
연산자 우선순위단항, 이항, 삼항 연산자 순으로 우선순위를 가짐.‘++’ ← ‘a + b’ ← ‘a ? b : c‘산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가짐.산술 연산자( + , - , * , / , % )비교 연산자( 논리 연산자( && , || , & , | , ^ , ! )대입 연산자( = , += , -= , *= , /= , %= )단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽임.복잡한 연산식에는 괄호 ()를 사용해서 우선순위를 정함. Scannerjava.util 패키지에 포함되어 있어 java.util을 import를 해줘야 사용할 수 있다.기본적인 데이터 타입을 모두 입력받을 수 있다.토큰(공백,개행,탭)을 기준으로 데이터를 입력받는다.Scanner ..
2024. 5. 20. 21:15
Object 클래스의 hashCode() native code 밑바닥까지 파헤치기
결론부터 말하자면, OpenJDK 기준 Java 8 이후 부터는 hash값을 생성할 때, 객체의 메모리 주소는 활용하지 않으며, 쓰레드의 상태값을 활용하여 해시값을 생성합니다. 다른 JVM 구현체는 다를 수도 있습니다. hashCode() 메서드에 대해서 알아보기 전에, 이 글을 포스팅하게 된 이유를 말하고자 한다. ( 참고로, 이 포스팅은, Java 11 공식문서 와 openjdk github source 를 기준으로 확인한 것입니다. ) equals() 메서드에 의해 동일하다고 취급되는 객체가, HashTable 계열의 자료구조에서 사용될 때, 동일한 KEY로서 인식되기 위해, equals() 메서드를 오버라이딩하면, 반드시 hashCode() 메서드도 오버라이딩해줘야한다.왜냐하면, Hash~ 자료구..
2024. 1. 21. 22:44