변수란, 하나의 값을 저장할 수 있는 메모리 공간이다.변수에는 한 가지 타입의 값만 저장할 수 있다. → 자바스크립트의 변수 선언과 다른 점개발자는 변수 이름을 보고 이 변수가 어떤 값을 저장하고 있는지 쉽게 알 수 있도록 의미 있는 변수 이름을 지어주는 것이 좋다.
단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다.단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽이다(→).복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다.정수 타입의 연산의 결과가
for문을 작성할 때 주의할 점: 초기화식에서 루프 카운트 변수를 선언할 때 부동소수점 타입을 사용하지 말자.중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(라벨)을 붙이고 break 이름; 을 사용하면 된다.블록 내부에서 continue문이 실행
JVM은 운영체제에서 할당받은 메모리 영역을 다음 세부 영역으로 구분해서 사용한다.참조 타입 배열일 경우, 배열 복사가 되면 복사되는 값이 객체의 번지이므로 새 배열의 항목은 이전 배열의 항목이 참조하는 객체와 동일하다. 이것을 얕은 복사(shallow copy) 라고
부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍 이라고 부른다.객체란 자신의 속성을 가지고 있고 다른 것과 식별가능한 것을 말한다.객체들 사이의 상호작용은 메소드이다. 객체가 다른 객체의 기능을 쓰는
상속 = 부모가 자식에게 물려주는 행위부모 클래스 = 상위 클래스, 자식 클래스 = 파생 클래스메소드 오버라이딩: 상속된 메소드의 내용이 자식 클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의하는 것을 말한다.부모의 메소드와 동일한 시그니처(리턴 타입,
인터페이스는 객체의 사용 방법을 정의한 타입이다.자바 8에서 인터페이스의 중요성은 더욱 커졌는데, 자바 8의 람다식이 함수적 인터페이스의 구현 객체를 생성하기 때문이다 → 자바 8의 람다식이 인터페이스를 응용하기 때문에 중요성이 높아졌다는 얘기인거 같다.개발 코드가
클래스가 여러 클래스와 관계를 맺는 경우 독립적으로 선언, 그러나 특정 클래스와 관계를 맺는 경우 관계 클래스를 클래스 내부에 선언하는 것이 좋음.중첩 클래스 사용을 통해 각각 중첩 관계가 맺어진 두 클래스끼리는 쉽게 접근할 수 있고 불필요한 클래스 코드가 사라지면서
일반 예외(Exception) == 컴파일러 체크 예외실행 예외(Runtime Exception)가장 빈번히 발생하는 실행 예외. null 값을 갖는 참조 변수에 도트를 사용했을 때 발생.try-catch-finallytry: 예외 발생 가능 코드catch: 예외 처리
자바 프로그램은 운영체제상에서 바로 실행되는 것이 아니라 JVM 위에서 실행된다. java.lang 패키지에 속하는 System 클래스를 사용하여 모든 운영체제의 기능은 아니지만 일부 기능은 사용할 수 있다.자바는 JVM이 알아서 메모리를 자동으로 관리한다. JVM에게
제네릭은 클래스 설계 시 구체적인 타입을 설정하는 대신 타입 파라미터를 넣고 실제 클래스가 사용될 때 구체적인 클래스를 지정하면서 타입 변환을 최소화 시킨다.타입 파라미터에 지정되는 구체적인 타입을 제한할 수 있다. 이를 위해서 다음과 같이 한다.public <T
함수적 프로그래밍은 병렬 처리와 이벤트 지향 프로그래밍에 적합하다. 그래서 객체 지향 프로그래밍과 함수적 프로그래밍을 혼합하여 효율적인 프로그래밍이 될 수 있도록 개발 언어가 변하고 있다.람다식은 익명 함수를 생성하기 위한 식으로 객체 지향 언어보단 함수 지향 언어에
다수의 객체를 저장해서 사용하려면?배열을 사용하면 되지만 크기를 미리 지정해줘야 되고, 엄청 크게 미리 잡아놓는다고 해도 완전한 해결책은 아니다.자바는 자료구조를 활용한 컬렉션 프레임워크를 통해 배열의 한계점을 극복하고 객체들을 효율적으로 저장, 삭제, 수정할 수 있도