Enum 여러 상수를 선언할 때 편리하게 선언할 수 있는 방법 열거형 상수는 ==를 사용하여 비교할 수 있다. 장점 데이터의 그룹화 및 관리에 용이하다. Lambda를 사용하면 활용성을 극대화 할 수 있다. Singleton Serializable 인터페이스를
평소와 같이 배열을 Arrays.toString()을 이용하여 배열을 출력하려고 했는데 클래스명@16진수해시코드가 나왔다.toString이 아닌 deepToString 메서드를 이용하니 배열이 정상적으로 출력되었다.
소켓 프로그래밍 소켓(socket)을 이용한 통신 프로그래밍 socket 프로세스 간 통신에 사용되는 양쪽 끝단(endpoint) InputStream과 OutputStream을 통해 프로세스 간의 통신이 이루어진다. 여러 개의 소켓이 하나의 포트를 공유 할 수 있다.
내부 클래스 클래스 내에 선언된 클래스 클래스처럼 abstract, final과 같은 제어자를 사용하거나, 멤버변수처럼 private, protected 등의 접근 제어자를 사용할 수 있다. 내부 클래스와 외부 클래스에 선언된 변수의 이름이 같다면 변수 앞에 this
인터페이스 밑그림만 그려져 있는 기본 설계도 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 인터페이스로부터만 상속받을 수 있으며, 클래스와 달리 다중상속이 가능하다. 추상클래스와 마찬가지로 인스턴스를 생성할
추상화 기존 클래스의 공통적인 부분을 뽑아 조상 클래스를 만드는 것 추상 클래스 미완성 설계도 인스턴스 생성 불가 → 추상 클래스는 해당 클래스를 상속하고 있는 자손클래스에 의해 완성된다. 추상 메서드를 포함하고 있는 클래스 추상 메서드 메서드의 내용이 상속받는 클래스
참조변수의 형변환 상속관계에 놓여있다면 참조변수 간에도 형변환이 가능하다. 만약 Apple과 Banana가 Fruits class를 상속하고 있다면 Apple→Fruits, Fruits→Banana로 형변환 하는 것이 가능하다. ※ 단, Apple과 Banana 사이의
제어자(modifier) 클래스, 변수 또는 메서드 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근 제어자: public, protected, default, private 접근 제어자는 한 번에 한 가지만 사용할 수 있으며 주로 제일 왼쪽에 위치한다. 기타:
패키지 클래스의 묶음 서로 다른 패키지에는 같은 이름의 클래스가 존재할 수 있다. 클래스의 full name은 패키지 이름을 포함하고 있다. 패기지는 다른 패키지를 포함하 룻 있다. 1) java.lang.String 클래스는 java/lang 디렉터리에 속한 Stri
Process 실행중인 프로그램을 의미 (a program in execution) 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)를 할당받아 프로세스가 된다. 프로세스는 자원(프로그램을 수행하는 데 필요한 데이터와 메모리)과 쓰레드로 구성된다. 모든 프로
함수형 프로그래밍 (Functional Programming) 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임 중 하나이다. 특징 모든 것을 객체로 취급한다. → 클래스 뿐만 아니라 함수도 객체이기 때문에 어떤 함수를 다
자바에서의 클로저는 람다 클로저로 람다 표현식이 범위를 둘러싼 변수(enclosing scope)를 참조할 때 생성된다. 위의 예제에서는 calculate 메서드에서 map 메서드를 참조하고 있으며, map의 인자로 들어간 람다는 외부 변수인 a와 b를 참조하고 있다.
객체지향의 사실과 오해(일명 토끼책)에 따르면 다형성이란 서로 다른 유형의 객체가 동일한 메시지를 수신할 때 서로 다른 메서드를 이용해 메시지를 처리하는 것이다. 이런 관점에서 이해한다면 다형성은 하나의 메시지와 하나 이상의 메서드 사이의 관계이며, 하나의 객체는 동일
조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것 (change, modify, overwrite)메서드의 선언부(메서드 이름, 매개변수, 반환타입)가 조상 클래스의 메서드와 일치해야 한다.접근 제어자와 예외는 제약 조건 하에서만 변경 가능하다.접근 제어자는 조상
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것적은 양의 코드로 새로운 클래스를 작성할 수 있다.공통적으로 코드를 관리하기 때문에 코드의 추가 및 변경이 용이하다.Child class는 Parent class의 모든 멤버를 상속받기 때문에 상속을 거듭할수록 멤버
List 인터페이스를 구현하기 위해 내부적으로 배열을 사용한다.최선의 경우 O(1)에 삽입할 수 있지만 미리 선언해 놓은 배열의 크기가 가득찰 경우 더 많은 수용량을 갖고있는 새로운 배열을 초기화한 뒤 원래 존재하던 모든 요소들을 새로운 배열로 복사해야 한다. 따라서
구현하고 싶은 기능 년도와 월을 입력으로 받아와 달력 출력 일정 등록 (date, event, location, guests) 날짜로 일정 검색 파일로 일정 저장 (다시 실행했을 때도 이전에 등록한 정보 검색 가능) 구조 1. Prompt
Error vs. Exception 오류(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 → 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행 중인 프로그램을 종료시킨다. e.g. OutOfMemoryError, StackOverflowError
이 글은 만들어 가면서 배우는 JAVA 플레이그라운드를 수강하고 공부한 내용을 정리하는 용도로 작성되었습니다. 미션 조건을 보고 직접 구현하였기에 호눅스의 코드와는 다른 점이 있으며, 호눅스의 코드를 확인하고 싶으신 분들은 본 포스팅이 아닌 codesquad-java-
이 글은 만들어 가면서 배우는 JAVA 플레이그라운드를 수강하고 공부한 내용을 정리하는 용도로 작성되었습니다. Step 1 구구단을 구현하라고 해서 일단 요구사항을 보지 않고 기본적인 구구단을 출력하는 프로그램을 작성해보았다. public class Gugudan