
객체지향의 기본 개념은 실제 세계는 사물(=객체)로 이루어져 있으며 발생하는 모든 사건들은 사물간의 상호작용이다. 이 사물들의 속성과 기능을 분석 후 데이터와 함수를 정의하여 가상 세계에서 재현하는 것이 객체지향의 기본 개념이다.그렇다면 왜 객체지향을 사용할까?세 가지
객체는 속성과 기능으로 이루어져 있으며 속성에는 변수가 기능에는 메서드가 포함된다. 자동차의 크기나 길이 등을 속성이라 할 수 있고 가속, 브레이크를 기능이라 할 수 있다.변수는 선언되는 위치에 따라 멤버변수와 지역변수로 분류된다.멤버변수란 클래스 영역에서 선언된 변수
오버로딩 vs 오버라이딩둘이 가끔 헷갈릴만한 단어인데 오버라이딩은 상속받은 메서드의 내용을 변경하는 것이고 오버로딩은 기존에 없는 새로운 메서드를 정의하는 것이다.부모 클래스에 있는 메서드와 동일한 이름의 메서드를 만들면 부모 클래스의 메서드가 아닌 자식 클래스의 메서
생성자란 인스턴스 생성 시 호출되는 인스턴스 초기화 메서드이며 주로 인스턴스 초기화 작업에 주로 사용된다.생성자는 다음 조건을 갖추어야 한다.생성자명이 클래스명과 동일해야함리턴값이 없음모든 클래스는 생성자를 가지며 생성자를 별도로 정의하지 않은 경우 JVM은 기본 생성
변수의 초기화란 변수를 선언하고 값을 저장하는 것을 말한다. 보통은 선언과 동시에 초기화를 하지만 선언만 하고 초기화는 나중에 하는 경우도 있다.멤버변수의 경우 선언만 할 경우 자료형에 맞는 기본값으로 초기화가 이루어지기 때문에 초기화없이 사용이 가능하다.지역변수(메서
상속은 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것으로, 기존의 코드를 재사용할 수 있으며 중복을 줄일 수 있다.extends 키워드를 사용하여 상속을 하며 멤버만 상속된다. 즉, 조상 클래스의 멤버를 자식 클래스가 상속하면 사용할 수 있는 것이다. 그래서
제어자란?클래스, 변수, 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여하는 기능을 한다.접근 제어자 : public, protected, default, private그 외 제어자 : static, final, abstract, native, synchroniz

객체지향에서 가장 중요한 개념에는 상속과 다형성이 있다. 그 중에 다형성에 대해 알아보자.다형성이란 사전적 의미로는 여러가지 형태를 가질 수 있는 능력을 말한다. 자바에서는 이 다형성을 한 타입의 참조변수가 여러 타입의 객체를 참조할 수 있도록 하여 다형성을 구현한다.
추상이란? 사전적 의미로는 구체적인 표상이나 개념에서 공통된 성질을 뽑아 이를 일반적인 개념으로 파악하는 정신 작용을 말한다. 이 의미를 잘 기억할 필요가 있다.추상 클래스는 미완성된 메서드인 추상메서드를 포함하고 있는 클래스이다. 추상클래스는 미완성 클래스라 할 수
인터페이스는 일종의 추상클래스이다. 다만, 추상화 정도가 높아서 추상클래스는 추상메서드 외에 일반메서드나 멤버변수를 가질 수 있는 반면, 인터페이스는 추상메서드와 상수만을 가질 수 있다(JDK 1.8 이후부터는 default 메서드와 static 메서드 사용이 가능하다
클래스 내에 있는 또 다른 클래스를 내부 클래스라 한다.사용빈도는 높지 않지만, 코드의 복잡성을 줄일 수 있고 내부 클래스에서 외부 클래스의 멤버에 쉽게 접근할 수 있다는 장점이 있다.내부 클래스의 종류는 세 가지로 나뉘는데, 유효범위와 성질이 변수와 비슷하다.인스턴스
프로그램 실행 중 어떠한 원인에 의해 작동이 중지되거나 비정상적으로 종료되는 경우가 있는데, 그 원인을 프로그램 에러 또는 오류라고 한다.에러에는 컴파일 시 발생하는 컴파일 에러, 컴파일 시에는 문제가 없었지만 실행 중 발생하는 런타임 에러, 그리고 실행은 되지만 의도

java.lang 패키지에는 자바에서 가장 기본이 되는 클래스들을 포함하고 있다.이 패키지는 import 없이 사용이 가능하며 지금까지 System이나 String 클래스를 import 없이 사용 가능했던 것도 이 클래스들이 java.lang에 속하기 때문이다.java
Object 클래스의 보조 클래스로 모든 메서드가 static이며, 객체 비교나 Null 체크에 유용하다.
자바 1회차 공부할 시절에 가볍게 넘어간 파트였는데 코딩테스트나 서버 개발할 때 많이 사용되서 그 중요성을 느끼고 다시 공부하고자 한다. 컬렉션 프레임워크를 왜 사용할까? 데이터 군을 저장하는 클래스들을 표준화한 설계를 의미하는데 쉽게 말해 데이터 처리를 용이하게 하
7. Set Collection 상속받는 핵심 인터페이스 중 하나인 Set 인터페이스는 중복을 허용하지 않고 저장 순서를 유지하지 않는다는 공통점을 지닌다. (LinkedHashSet는 중복은 허용하지 않지만 저장 순서는 유지됨) 구현 클래스로는 대표적으로 Hash
JDK 1.5 이후 도입된 제네릭의 개념은 최근에는 사용하지 않으면 이상할 정도로 많이 쓰이는 기능이다.클래스나 필드 옆에 <>로 붙어서 선언을 하는 데 1회차 공부때는 이걸 굳이 왜하지? 라는 생각이 들었다.모든 타입을 다 사용하면 더 좋은거 아닌가 라고 생각하

enumeration 또는 enums라고 하는 열거형은 간단히 말하자면 상수의 집합이다. 정확히는 열거형 상수 집합을 정의하는 클래스이다.열거형은 클래스와 비슷하게 정의한다. enum 뒤에 열거형명을 추가한 후 중괄호 안에 열거형 상수를 추가하면 된다.위에서 열거형은

쓰레드는 프로그램 실행과 제어에 있어서 중요한 개념이기 때문에 설명해야 할 분량이 많다. 종종 작업관리자를 이용해서 프로세스 강제 종료라는 기능을 많이 사용한 적이 있는데 이것 또한 쓰레드와 연관되어 있다. 그래서 쓰레드란 무엇인가? 1. 쓰레드란? 쓰레드를 알기

람다식, JDK 1.8부터 추가된 기능으로 자바를 함수형 언어로 되게 만들어준 기능이다. 자바를 처음 접했을 때 별로 중요해보이지 않아 깊이 공부하지 않고 넘어갔었는데, 람다식으로 인한 함수형 언어로서의 장점을 버릴 수 없다 생각하여 이번 기회에 제대로 공부해보고자

데이터를 정렬할 때 컬렉션과 배열의 경우 서로 다른 메서드를 호출하여 정렬해야 한다. 그리고 데이터를 확인하기 위해서는 iterator 또는 for를 사용하여 코드를 작성하는데, 이 방식은 너무 길고 한 번에 알아보기 어렵다.간단한 String 배열과 List의 데이터