1. 배열이란? 1. 자료를 순차적으로 관리하는 구조, 배열 배열(Array)는 자료가 연속으로 나열된 자료구조다. 배열을 사용하면 자료형이 같은 여러 개를 한번에 관리할 수 있다. 2. 배열 선언과 초기화 배열을 선언하면 선언한 자료형과 배열 길이에 따라 메모리가 할당된다. 배열 선언 방식은 2가지가 있지만 첫번째 방법을 사용하는 걸 추천한다. 1) 자료형[] 배열명 = new 자료형[개수] 2) 자료형 배열명[] = new 자료형[개수] int[] num = new int[10];// int형 요소가 10개인 배열 선언 3. 배열 초기화하기 1) 배열을 선언함과 동시에 각 요소의 값이 자동 초기화 자바에서는 배열을 선언함과 동시에 각 요소의 값(정수는 0, 실수는 0.0, 객체 배열은 null)로 초..
1. this 예약어 1. 자신의 메모리를 가리키는 this this는 생성된 인스턴스 자신을 가리키는 역할을 한다. class BirthDay { int day; public void setDay(int daY) { this.day = day; } } 2. 생성자에 다른 생성자를 호출하는 this this를 사용해 클래스의 생성자에서 다른 생성자를 호출할 수 있다. (주의!) this를 사용하여 생성자를 호출하는 코드 이전에 다른 코드를 넣으면 오류가 난다! (디폴트 생성자에서 생성이 완료되는 것이 아니라 this를 사용해 다른 생성자를 호출하므로) class Person{ String name; int age; Person(){ this("이름 없음", 1); // Person(String, int)..
객체 객체지향 프로그램의 대상, 생성된 인스턴스 클래스 객체를 프로그래밍 하기 위해 코드로 만든 상태 인스턴스 클래스가 메모리에 생성된 상태 멤버 변수 클래스의 속성, 특성 메서드 멤버 변수를 이용하여 클래스의 기능을 구현 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 생성된 인스턴스의 메모리 주소값 접근 제어자 접근 가능 범위 public 외부 클래스 어디에서나 protected 같은 패키지 내부 & 상속 관계의 클래스에서만 아무것도 없는 경우 default 이며 같은 패키지 내부에서만 private 같은 클래스 내부에서만 1. 객체 지향 프로그래밍과 클래스 1. 클래스란? 클래스는 객체의 속성과 기능을 코드로 구현한 것 - 클래스 외부에는 package 선언, import 문장 외 아무..
1. null과 관련된 문제 null과 관련된 문제들을 크게 2가지로 요약해보면 1) 런타임에 NPE(NullPointerException)라는 예외를 발생시킬 수 있다. 2) NPE 방어를 위해서 들어간 null 체크 로직 때문에 코드 가독성과 유지 보수성이 떨어진다. 이렇게 null과 관련된 문제들로 인하여 Optional이 등장하게 되었다. 2. Optional 이란? Java8에서 Optional는 null이 올 수 있는 객체를 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. Optional을 최대 1개의 원소를 가지고 있는 특별한 Stream이라고 생각하면 편하다. Optional 클래스는 아래와 같은 value에 값을 저장하기 때문에 값이 null이더라도 바로 ..
1. Stream 이란? Java8부터 지원하는 Stream은 컬렉션, 배열 등에 저장되어 있는 요소들을 하나씩 참조하며 반복적인 처리를 가능하게 하는 기능이다. Stream을 사용한다면 불필요한 for문과 if문 등의 분기처리를 쓰지 않고 깔끔하고 직관적인 코드로 변형할 수 있다. 2. Stream 특징 1) Stream은 원본 데이터를 변경하지 않는다. - 원본 데이터로부터 데이터를 읽기만 할 뿐, 변경은 하지 않는다. 2) Stream은 일회용이다. - 한 번 사용하면 닫혀서 재사용이 불가능하다. 필요시 정렬된 결과를 컬렉션이나 배열에 담아 반환할 수 있다. 3) Stream은 작업을 내부 반복으로 처리한다. - 내부 반복을 통해 간결한 코드를 작성할 수 있다. (내부반복이란 반복문을 메서드 내부에..
1. Map 이란? Map은 Key-Value 쌍으로 이루어진 자료형이다. Map은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다.(순서가 없음) 값(Value)은 중복될 수 있지만, Key는 고유한 값(Unique)을 가져야 한다. 2. HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. ▶ HashMap 변수명 = new HashMap(): HashMap 생성 // key: Integer, value: String..