기본형 변수는 (Stack 영역에)실제 값을 저장합니다.기본형 변수 8종을 제외한 모든 변수는 참조형 변수참조형 변수는 실체가 없고 주소 값을 저장합니다.
static : '정적인, 고정된'이라는 뜻으로어떤 객체에 소속되는 것이 아닌, 클래스에 고정되어 있는 변수나 메서드int maxSpeed를 인스턴스 변수로 만들면 각각의 객체가 하나씩 age를 가집니다.ing maxSpeed를 static 변수로 만들면 오직 클래스가
기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미합니다.기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아서 중복을 제거합니다.상속관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 다시 정의하는 것부모 클래스로부터
하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있습니다.(변환할타입의클래스이름) 변환할참조변수참조변수 instanceof 클래스이름
자식 클래스에서 반드시 오버라이딩 해야하는 메소드추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위해 사용선언부만 있고 구현부는 없어야 한다.하나 이상의 추상 메소드를 포함하는 클래스인스턴스를 생성할 수 없다.생성자와 필드,
상속 관계에 있는 클래스 사이에서 객체의 형변환이 가능하다.더 넓은 범위로 데이터를 저장하기 때문에 데이터의 손실이 없다.ex) 부모 타입의 객체 = 자식 타입의 객체데이터의 손실이 발생할 수 있으므로 타입을 명시해 주어야 한다.ex) 자식 타입의 객체 = (자식 타입
객체의 생성과 동시에 호출되는 함수변수를 초기화하기 위해 필요반환값이 없다.메서드 오버로딩이 가능매개변수가 없는 생성자클래스 이름() {...}매개변수가 있는 생성자클래스 이름(인수1, 인수2, ...) {...} new 키워드를 사용하여 객체를 생성할 때 자동으로 호
배열과 비슷하지만 크기가 정해져있는 배열과 달리 list는 크기가 변한다.리스트 자료형에서 가장 일반적으로 사용제네릭스를 사용하여 자료형을 명확하게 한다.ArrayList에 요소를 추가특정 인덱스의 값을 추출리스트 안에 특정 값이 포함되어 있는지 판별remove(객체)
배열을 정렬해주는 java.util.Arrays 클래스의 메서드Arrays.sort(arr);Arrays.sort(arr, Comparator.reverseOrder());
1. List -> Array 1) for문 2) toArray() 메서드 사용 Array -> List 1) for문 2) Arrays.asList() 사용
Java 8 버전 부터 사용 가능list.sort(Comparator.naturalOrder());\`list.sort(Comparator.reverseOrder());
Map은 키와 값을 하나의 쌍으로 저장하는 방식의 자료형이다.가장 많이 사용된다.key와 value를 추가하는 메서드key에 해당하는 value를 얻는 메서드맵의 항목을 삭제하는 메서드해당 key의 항목을 삭제한 후 value를 리턴한다.맵 요소의 개수를 리턴하는 메서
Set 집합과 관련된 것을 쉽게 처리하기 위한 자료형 HashSet, TreeSet, LinkedHashSet 등이 있다. 특징 (1) 요소의 저장 순서를 유지하지 않는다. (2) 같은 요소의 중복 저장을 허용하지 않는다. HashSet
TreeSet 데이터가 정렬된 상태로 저장되는 이진 검색 트리의 형태로 요소를 저장한다. ❕ 요소가 저장된 순서와 상관없이 정렬되어 저장된 것을 알 수 있다. add와 remove 함수는 hashSet과 동일하다.
인터페이스(Interface)란? 자바에서는 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등의 문제가 발생할 수 있어 다중 상속을 지원하지 않는다. 메서드 출처의 모호성 발생 예시 위의 코드에서 MyPet은 Cat과 Dog를 다중 상속받고 있다. MyPet 객체를 생성하고 cry() 메서드를 호출하면, 이 메서드가 Cat 클래스에서 상속...
간단히 말해 메서드를 하나의 식으로 표현한 것이다.위의 예제처럼 메서드를 람다 표현식으로 표현하면, 클래스를 작성하고 객체를 생성하지 않아도 메서드를 사용할 수 있다.기존의 불필요한 코드를 줄여준다.작성된 코드의 가독성을 높여준다.매개변수의 타입을 추론할 수 있으면 타
자바 스트림(Stream)은 데이터를 다루고 처리하는데 사용되는 시퀀스(순서)로, 컬렉션, 배열 등의 데이터 소스로부터 데이터를 읽거나 처리하는 기능을 제공하는 자바 8의 기능이다. 스트림은 함수형 프로그래밍 스타일을 지원하며, 데이터를 처리하는 과정을 간결하게 나타내
Optional 객체를 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있다.of() : null이 아닌 명시괸 값을 가지는 Optional 객체 반환of() 메서드로 생성된 객체에 null이 저장되면 NullPoi
나중에 들어온 데이터가 먼저 나가는 후입선출(LIFO)의 원칙에 따라 동작한다.즉, 가장 최근에 저장된(push) 항목이 가장 먼저 제거(pop)된다.이미지 출처 : https://www.programiz.com/dsa/stackisEmpty(): 스택이 비어
큐는 스택과 달리 양쪽 끝에서 데이터의 삽입과 삭제가 각각 이루어진다.데이터를 선입선출(FIFO, First-In-First-Out)의 순서로 다룬다.이미지 출처 : nnnyeong.log add(): 큐의 맨 뒤에 요소를 삽입만약 삽입을 성공하면 true를 반환하고,
큐와 스택이 혼합된 개념양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조이미지 출처 : https://www.programiz.com/dsa/dequeaddFirst(E e) 또는offerFirst(E e): 덱의 맨 앞에 요소를 추가addLast(E e) 또
BufferedReader는 코드가 복잡해보여서 안쓰고 있었는데 백준에서 자꾸 런타임에러가 나서 외우려고 정리한다효율적인 입출력을 위한 클래스내부적으로 데이터를 버퍼에 임시로 저장해두고 효율적으로 읽어오기 때문에 Scanner보다 훨씬 입출력 속도가 빠르다.문자열만 읽
일반적인 객체 참조 방식으로, 객체가 참조되는 동안 가비지 컬렉션의 대상이 되지 않는다. 객체에 대한 강한 참조가 있을 경우, 해당 객체는 참조하는 동안 메모리에서 해제되지 않는다.약한 참조는 가비지 컬렉션의 대상이 될 수 있는 참조이다. 약한 참조를 사용하면 메모리