==는 동등성을 비교한다. 즉, 객체의 참조값(주소값)이 서로 같은지를 검사한다. 두 객체가 서로 같은 객체인지를 판별하는 것이다.Object 클래스의 equals() 는 두 객체가 서로 동일한지를 검사하기 위해 사용된다.두 객체의 참조값이 서로 같은지를 확인한다2개의
Primitive Data Type 과 Wrapper ClassWrapper class 와 Primitive Data Type 의 차이점에 대한 궁금증은 int 와 Integer 에서 부터 출발한다. int 를 두고 굳이 Integer 를 사용하는 이유가 무엇인지 의문
자바 바이트 코드는 JRE 위에서 동작하는데, 이 JRE(JAVA API + JVM) 에서 바이트 코드를 해석하고 실행해주는 것이 바로 JVM이다.JAVA 와 OS 사이에서 중개자 역할을 수행하며 JAVA가 OS에 구애받지 않고 재사용될 수 있도록 해주는 스택기반의 가
static 키워드가 붙은 데이터를 저장하는 메모리 영역이다. 정적 메서드와 정적 변수를 합쳐서 정적 멤버라고 하는데, 정적 멤버는 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버이다.메서드 내 정의하는 기본 자료형(int, double, byte, long, ...
JAVA 에는 문자열을 다루는 대표적인 클래스로 String, StringBuilder, StringBuffer 가 있다. 위 클래스의 차이점에 대해서 짚고 넘어가고자 한다.String 객체와 StringBuilder/StringBuffer의 가장 큰 차이점은 Stri
JAVA 8 부터 지원하며 컬렉션이나 배열 등에 저장되어 데이터들을 하나씩 참조하여 반복적인 처리를 가능하게 하는 기능이다. Stream을 사용하면 반복문이나 반복자를 사용해 매번 귀찮은 작업을 하지 않아도 된다.외부 반복을 통해 작업하는 컬렉션들과는 달리 내부 반복을
JVM의 Thread들은 Heap에 있는 객체들을 공유한다. Stakc에는 지역변수들이 저장되고, 이 변수들은 메서드가 호출될 때 생성되고 나갈 때 소멸되는 특징이 있다.그렇기 때문에 Stack에 있는 변수들은 Thread-Safe 하다는 장점이 있다. 하지만 다른 메
JAVA의 예외 처리는 모두 Throwable을 상속하고 있고 크게 Exception과 Error로 나뉜다. Exception은 검사 예외이고, Error는 비검사 예외이다.개발자가 명시해야 하는 부분은 검사 예외인 Exception으로 어플리케이션 수행 중 일어날 법
ExecutorService 를 알아보기 전에 Executors를 알아볼 필요가 있다.Executors 는 Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, Callable 등 멀티 쓰레드를 기반으
바야흐로, 11번가 1차 면접에서 받았던 질문 중 가장 기억에 남는 질문이었던 Integer의 caching 기능에 대해서 알아보고자 한다.다음과 같이 127 값을 갖고 있는 두 개의 Integer 객체를 비교했을 때, 결과는 어떻게 될까? 처음 이 질문을 접했을 때,
본 포스트는 NAVER D2 - Java HashMap은 어떻게 동작하는가?를 참고해 HashMap가 어떻게 충돌 가능성을 줄이는지에 대해 구체적으로 다룰 것이다.HashMap과 HashTable은 둘 다 '키에 대한 해시 값을 사용해 값을 저장하고 조회하며 키-값 쌍
arugment를 받아서 boolean type을 반환하는 Functional Interface반대 결과값 returnPredicate를 사용하면 Stream의 filter로 사용할 수 있다는 장점이 있음Stream에 Predicate를 적용해보자.김 씨이며 이름이 2
Future ? 비동기적인 연산의 결과를 표현하는 클래스로 멀티스레드 환경에서 처리된 데이터를 다른 스레드로 전달할 수 있다. 내부적으로 Thread-safe하게 구현되어있기 때문에 synchronized를 사용하지 않아도 된다. 1. 기본 예제 submit()으
해당 포스트는 Effective JAVA Item.78 중 Atomic 과 volatile 에 대해서 공부한 과정을 기록하기 위해 작성했다.공유 중인 가변 데이터에 여러 개의 스레드가 동시에 접근하게 되면 Race Condition이 발생할 수도 있고, 가시성 문제가