자바에서의 컴파일(compile)이란, 자바 언어를 JVM이 이해할 수 있는 코드(바이트코드, Bytecode)로 변환하는 것을 의미한다.JVM은 바이트코드를 운영체제에 맞는 기계어로 변환해준다.자바가 운영체제에 독립적인 것은 JVM이 있기 때문에 가능하다.JVM(Ja
Car c1 = new Car();Car : 클래스 영역에 Car 클래스가 로드된다.c1(참조변수) : 참조변수는 스택 영역에 로드되며, 객체의 실제 값이 아닌 힙 메모리 영역에 저장된 주소값을 가리킨다.new : 실제로 객체 생성을 수행한다.Car() : 이 생성자로
선언부가 일치해야한다접근 제어자가 상위클래스의 접근 제어자보다 보다 같거나 넓어야 한다예외는 상위 클래스보다 많이 선언할 수 없다super, super()는 기본적으로 this, this()와 동일한 기능을 수행한다.super() 메서드 또한 this()와 마찬가지로
ArrayList 크기가 고정된 배열과 달리, ** 는 저장 용량을 초과한 객체들이 들어오면 자동으로 저장용량이 늘어나게 된다. ArrayList와 LinkedList 검색작업은 ArrayList가 더 빠르지만, ArrayList의 경우 요소 추가/삭제 시 요소
람다 은 함수지향언어에 가까우며, 코드가 간결해지고 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있다. 람다식은 형태로 작성되는데, 마치 함수 정의 형태를 띠고 있지만 런타임에 인터페이스의 익명 구현 객체로 생성된다. 어떤 인터페이스를 구
외부 클래스와 내부 클래스가 관계가 밀접한 경우 사용하며, 특정 클래스에서 제한적으로 생성 및 사용할 수 있도록 할때 용이하다.관련이 있는 부분들을 묶어 코드 캡슐화를 표현할 수 있으며, 외부에서 접근이 불가능하기 때문에 코드의 복잡성을 줄일 수 있다.하지만 내부 클래
기본적으로 값의 동일성이 아닌 객체의 동일성을 비교하고 있다.따라서 값을 비교하고 싶다면 equals() 메서드를 override 해야 한다.String의 경우 equals() 메서드를 override 하고 있기 때문에 값을 비교할 수 있는 것이다.runtime 객체의