일상생활의 사물들을 객체화해 실세계 그대로 자연스럽게 구현할 수 있다.객체의 책임과 역할을 정확히 분리하고 결합도가 낮게 잘 설계될 수 있다면코드의 재사용성이 높고, 유지보수성이 뛰어나다.단어 의미 그대로 객체를 주된 관심사로 두고 프로그래밍하는 방법론필요한 데이터를
String 클래스는 final로 선언되어 있다. 즉 String은 immutable(불변) 객체이다.따라서 기존 문자열에 다른 문자열을 더한다면 새로운 인스턴스가 생성된다.하지만 자바 1.5 이상부터는 String 인스턴스에 문자열을 + 할 경우 컴파일러가 Strin
String 객체는 immutable(불변) 객체이다.String 객체를 선언 후 + 연산자로 문자열을 추가하면, 새로운 String 객체를 힙영역에 할당하고 기존에 선언된 String객체는 GC에 의해 제거된다.하지만 자바 1.5 이상부터는 String 인스턴스에 문
Integer는 래퍼타입이다. 127이라는 리터럴 값을 저장하고 있는게 아니라 heap영역에할당된 주소가 저장되어 있다.== 연산자는 주소값을 비교하는 동일성 검사다.a와 b는 서로 다른 주소를 가르키는 다른 객체이다. 따라서 false가 나와야한다.하지만 결과값은 t
자바8 에서 추가된 개념으로 람다식으로 인해 객체지향언어임과 동시에 함수형 언어처럼 코드를 만들 수 있게 됐다.람다식은 메서드를 하나의 식으로 표현한 것이다. 람다식으로 표현하면 메서드의 이름과 반환값이 없어져서 익명 함수 라고도 부른다.자바에서 메서드는 클래스에 포함
1. JVM개념 및 구성요소 1-1. 개념 및 역할 Java Virtual Machine , 자바 가상 머신을 뜻하는 말로 Java 바이트 코드를 OS에 맞게 해석하고, Garbage Collector을 통한 메모리 관리를 수행한다. 1-2. JVM 구성요소
프리미티브 타입(Primitive Type)은 기본 자료형과 같은 말이다. 원시타입이라고도 한다.값을 할당할 때 변수의 주소값에 값이 그 자체로 저장되는 데이터 타입이다.Runtime Data Area에서 Stack 영역에 값이 저장된다.영어로 표현해서 헷갈릴 수 있는
프로그램 코드에 의해서 수습될 수 없는 심각한 오류이며 크게 세 가지로 나눌 수 있다.컴파일 에러컴파일 시에 발생하는 에러런타임 에러실행 시에 발생하는 에러논리적 에러실행은 되지만, 의도와 다르게 동작하는 상황프로그램 코드에 의해서 수습될 수 있는 비교적 약한 오류에러
자바8부터 추가된 API로 스트림은 데이터 소스를 추상화하고 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 데이터 소스를 추상화 한다는 것은 데이터 소스 즉 타입이 무엇이든간에 같은 방식으로 다룰 수 있고 코드의 재사용성이 높아진다는 것을 의미한다.기존에
1. Optional 1-1. 탄생 배경 - 왜? 자바8 이전에는 메서드가 값을 반환할 수 없는 상황인경우 두 가지 선택지가 존재했다. 예외 던지기 null 반환하기 예외를 던지는 경우에는 스택 추적 전체를 캡처하는 비용문제가 있다. null을 반환