HashSet 선언저장 공간보다 값이 추가로 들어오면 저쟝용량을 약 두배로 늘림 , 그러므로 초기에 데이터 저장 개수를 알고 있다면 Set의 초기용량을 지정해 주는 것이 좋다.값 추가값 삭제크기 구하기값 출력값 검색
StringBuffer 클래스의 인스턴스는 그 값을 변경, 추가 할 수 있다.StringBuffer 클래스의 reverse 메서드를 사용해 문자열 뒤집기Ex)
상속이란 ? 기존의 클래스를 재활용 하여 새로운 클래스를 작성하는 자바의 문법 요소 Ex) 두 클래스를 상위클래스와 하위클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 하는 것을 의미함. 하위 클래스의 멤버 개수는 항상 상위 클래
클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것city와 country 를 Employee 클래스의 인스턴수 변수로 정의해 주어야 하지만 Address 클래스로 해당 변수들을 묶어준다음 Employee 클래스의 안에서 참조변수를 선언하는 포함관계로 재사용 함
메서드 오버라이딩이란 ? 상위 클래스로 부터 상속 받은 메서드와 동일한 이름의 메서드 재정의
super 상위 클래스의 객체 호출 super() 상위 클래스의 생성자 호출 공통적으로 모두 상위 클래스의 존재를 상정하며 상속관계를 전제로 함 super 예시 super키워드를 붙이지 않으면 자신이 속한 인스턴스 객체의 멤버를 먼저 참조함. 자기에게서 가장 가
Object 클래스란 ? 자바 클래스 상속 계층도에서 최상위에 위치한 상위클래스 자바의 모든 클래스는 Object 클래스로부터 확장된다 자바 컴파일러는 컴파일 과정에서 다른 클래스로 부터 아무런 상속을 받지 않는 클래스에 자동으로 extends Object를 추가하
캡슐화란 ? 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것 캡슐화를 하는 이유 데이터 보호의 목적 내부적으로만 사용되는 데이터의 불필요한 외부 노출 방지
특정한 목적을 공유하는 클래스와 인터페이스의 묶음패키지는 클래스들을 그룹 단위로 묶어 효과적으로 관리하기 위한 목적이 있음자바에서 패키지는 하나의 디렉토리이다. 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지에 속해있다.이 디렉토리는 하나의 계층구조를
자바에서 제어자는 클래스,필드,메서드,생성자 등에 부가적인 의미를 부여하는 키워드크게 접근 제어자와 기타 제어자로 나눔접근제어자 : public, protected, (dafault), private기타제어자 : static, final, abstract, native
캡슐화를 시키면서 데이터 변경이 필요한 경우Ex) private 접근제어자가 포함되어 있는 객체 변수의 값을 추가하거나 수정하고 싶을 때setter 메서드를 통해 외부에서 변경하고자 하는 값을 넣어주고 getter 메서드는 이렇게 변경한 값을 읽어옴
하나의 객체가 여러가지의 형태를 가질 수 있는 성질한 타입의 참조변수를통해 여러타입의 객체를 참조할 수 있도록 만든 것상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한 것rash의 참조변수 타입을 Rashford로 하지않고 상위 클래스
서로 상속관계에 있는 상위 - 하위 클래스 사이에서만 타입 변환이 가능하위 클래스 타입에서 상위 클래스 타입으로의 타입 변환(업캐스팅)은 형변환 연산자(괄호)를 생략가능상위 클래스에서 하위 클래스 타입으로 변환(다운캐스팅)은 형변환 연산자(괄호)를 반드시 명시해야함다운
참조변수의 타입 변환(캐스팅)이 가능한지 여부를 boolean 타입으로 확인할 수 있음참조\_변수 instanceof 타입을 입력했을 때 리턴 값이 true이면 타입 변환 가능flase 면 불가능, 참조변수가 null 이면 false를 반환
다형성의 특징에 따라 개별적인 커피의 타입이아니라 상위 클래스인 Coffee의 타입을 매개변수로 받으면 그 하위 클래스의 참조변수이면 어떤 것이든 매개변수로 전달 될 수 있다 그래서 매번 다른 타입의 참조변수를 매개변수로 전달 안해도 된다.
기존 클래스들의 공통적인 요소를 뽑아서 상위 클래스를 만드는 것자바는 추상클래스와 인터페이스라는 문법 요소를 통해 추상화를 구현함
기타 제어자미완성 클래스메서드 앞에 붙으면 추상 메서드클래스 앞에 붙으면 추상 클래스어떤 클래스에 추상 메서드가 포함되어있는 경우 해당 클래스는 자동으로 추상 클래스가 된다추상 클래스는 미완성 클래스이기 때문에 바디가 완성되기 전까진 객체 생성이 불가함.추상 클래스는
필드, 지역변수, 클래스 앞에 위치 할 수 있으며 그 위치에 따라 의미가 달라진다.공통점 : 변경 불가, 확장 불가
서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어주는 부분 또는 그런 접속 장치인터페이스는 추상 메서드와 상수만을 멤버로 가질 수 있는 점에서 추상클래스에 비해 추상화 정도가 더 높다.인터페이스를 작성하는 것은 기본적으로 클래스를 작성하는 것과 유사하지만, c
타입을 구체적으로 지정하는게 아니라 추후에 지정할 수 있도록 일반화 해놓는 것작성한 코드 및 메서드 코드가 특정 데이터 타입에 얽메이지 않도록 해둔 것Basket 클래스 내의 T를 String 으로 바꾼다는 뜻 위의 코드에서 T를 타입 매개변수라고 함클래스 옆에 를 작
여러 상수들을 편리하게 선언할 수 있도록 만들어진 자바의 문법 요소ex)각각의 열거 상수들은 객체이다. Seasons라는 이름의 열거형은 SPRING, SUMMER, FALL, WINTER 4개의 열거 객체를 포함한다.각각의 상수들에게 따로 값을 지정해 주지 않아도 자
클래스 전체를 제네릭으로 선언할 수 있는 것처럼, 클래스 내부의 특정 메서드만 제네릭으로 선언 할 수도 있음.제네릭 메서드의 타입 매개변수 선언은 반환 타입 앞에서 이루어지며, 해당 메서드 내에서만 타입매개변수를 사용할 수 있음.제네릭 메서드의 타입 매개변수는 제네릭
어떠한 타입으로든 대체 될 수 있는 타입 파라미터를 의미. 기호 ?로 와일드카드를 사용함.< ? extends T >는 와일드카드에 상한 제한을 두는 것으로서, T와 T를 상속받는 하위 클래스 타입만 타입 파라미터로 받을 수 있도록 지정< ? super T
예기치 않게 발생하는 에러에 대응할 수 있는 코드를 미리 사전에 작성하여 프로그램의 비정상적인 종료를 방지하고, 정상적인 실행 상태를 유지하기 위한 것.컴파일 할 때 생기는 에러컴파일 에러가 자바 컴파일러에 의해 발견되는 것주로 세미콜론 생략, 오탈자, 잘못된 자료형,
자바에선 예외가 발생하면 예외 클래스로부터 객체를 생성하여 해당 인스턴스를 통해 예외 처리를 함.예외 클래스의 상속 계층도모든 예외의 최상위 클래스는 Exception 클래스임.Exception 클래스는 일반 예외 클래스와 실행 예외 클래스로 나뉘어짐.런타임 시 발생하
try - catch 예외 처리 = 잠재적으로 발생할 수 있는 비정상 종료나 오류에 대비하여 정상 실행을 유지할 수 있도록 처리하는 코드 작성 과정 자바에서 예외 처리는 try - catch 블럭을 통해 구현이 가능
try - catch 문 외에 예외를 호출한 곳으로 다시 떠넘기는 방법메서드의 선언부 끝에 아래와 같이 throws 키워드와 발생할 수 있는 예외들을 쉽표로 구분하여 나열해주면됨특정 메서드에서 모든 종류의 예외가 발생할 가능성이 있는 경우 아래와 같이 작성할 수 있음E
컬렉션 : 여러 데이터들의 집합컬렉션 프레임 워크 : 컬렉션을 다루는 데에 있어 편리한 메서드들을 미리 정의해놓은 것컬렉션 프레임 워크의 주요 인터페이스 : List, Set, MapList는 데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는 데에 사용됨
List 인터페이스는 배열과 같이 객체를 일렬로 늘어놓은 구조를 가짐객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동으로 인덱스가 부여되고, 인덱스로 객체를 검색, 추가, 삭제할 수 있는 등의 여러 기능을 제공함List인터페이스에서 사용 가능한 메서드 + 컬렉션메서
컬렉션에 저장된 요소들을 순차적으로 읽어오는 역할Collection 인터페이스에 정의된 iterator()를 호출하면, Iterator 타입의 인스턴스가 반환 Collection 인터페이스를 상속받는 List와 Set 인터페이스를 구현한 클래스들은 iterator()
요소의 중복을 허용하지 않고, 저장 순서를 유지하지 않는 컬렉션대표적인 Set을 구현한 클래스 HashSet, TreeSet 이 있음Set 인터페이스에 정의된 메서드중복된 값을 허용하지 않으며, 저장 순서를 유지하지 않는다.HashSet에 값을 추가할 때, 해당 값이
문제KeySet, values(), entrySet 이렇게 3가지 방법을 이용해 풀어 보겠다.hashMap은 iterator를 사용하려면 Set을 이용해야한다.keySet 이용시 it.next가 hashmap의 key를 가르키므로 hashMap.get(it.next)로
소스 코드가 컴파일되거나 실행될 때에 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해주는 문법 요소@Override가 애너테이션이다.애너테이션은 @로 시작하며, 클래스, 인터페이스, 필드, 메서드 등에 붙여서 사용할 수 있다.예시에서 @Override는 exampl
함수형 프로그래밍 기법을 지원하는 자바의 문법요소 메서드를 하나의 식(expression)으로 표현한 것 코드를 매우 간결하면서 명확하게 표현할 수 있다는 큰 장점이 있음 람다식에서는 기본적으로 반환타입과 이름을 생략할 수 있다 그래서 익명 함수(anonymous f
자바에서 함수는 반드시 클래스 안에서 정의되어야 하기 때문에 메서드가 독립적으로 있을 수 없고 반드시 클래스 객체를 먼저 생성한 후 생성한 객체로 메서드를 호출해야한다.람다식은 객체이다. 정확히는 이름이 없기 때문에 익명 객체라고 부른다.익명 객체는 익명 클래스를 통해
StringBuffer와 Builder의 차이를 궁금해 하던도 중 그냥 String까지 넣어서 문자열 클래스의 차이를 알아 보고 싶었다. 간단하게 정리하자면 아래와 같다.String : 문자열 연산이 적고, 멀티쓰레드 환경일 경우StringBuffer : 문자열 연산이
Stackpush(): 스택에 데이터를 추가할 수 있어야 합니다.pop(): 가장 나중에 추가된 데이터를 스택에서 삭제하고 삭제한 데이터를 리턴해야 합니다.size(): 스택에 추가된 데이터의 크기를 리턴해야 합니다.peek(): 가장 나중에 추가된 데이터를 리턴해야
예를 들어 1원, 2원, 5원 을 가지고 총 5원을 만들 수 있는 모든 경우의 수를 따질 때이미 계산한 값을 저장해놓고 그 저장한곳에서 다시 추가적으로 계산 해 나가는 dp를 활용.1원으로만 1, 2, 3, 4, 5원을 만들 수 있는 방법2원을 사용하여 액수를 만들었을
API -> Application Programming Interface 클라이언트와 서버가 데이터를 주고받는 방법REST API -> 메뉴판과 같음 , 클라이언트와 서버가 데이터를 주고 받을 때 더 쉽게 알아볼 수 있도록 하는 방법, API를 이렇게 만들면 좋다라는
CORS
SQL은 Structured Query Language 의 약자로 주로 관계형 데이터베이스에서 사용하는 언어이다.SQL은 구조와 된 쿼리 언어이다.여기서 쿼리(query)는 질의문 이라는 뜻을 가지고 있다고 본다. 간단하게 저장된 데이터를 필터하기 위한 질의문이라고 생
관계형 데이터베이스에는 여러관계가 존재한다하나의 레코드가 다른 테이블의 레코드 한개와 연결된 경우하나의 레코드가 서로 다른 테이블의 여러개의 레코드와 연결된 경우여러개의 레코드가 다른 테이블의 여러개의 레코드와 관계가 있는 경우다대다 경우에는 조인 테이블을 만들어 관리
DI : 객체 관의 관계를 느슨하게 하는 방법특징클래스의 내부에서 다른 클래스의 객체를 생성 하게 되면 두 클래스간의 의존 관계가 성립 된다.클래스 내부에서 new를 사용해 참조할 객체를 직접 생성 하지 않고, 생성자 등을 통해서 외부에서 다른 클래스의 객체를 전달 받
싱글톤 패턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하고, 이 인스턴스에 접근 할 수 있는 방법을 제공 한다. 객체가 하나만 생성되도록 해서 동일 인스턴스를 재사용 하는 패턴.Ex) 여러명의 사람이 각자 자기의 아이폰을 사용하면 아이폰이라는 똑같은 폰을 사용하지만
스프링의 가장 기본적인 능력 : 객체생성, 객체 조립 -> (생성 및 조립 시 사용되는 용어) : DI, IOC컨테이너스프링 프레임 워크 기능 : 종속 객체를 생성, 조립해주는 도구DI : 부품(의존해야할 객체)을 조립 한다고 생각하면 편하다.Ex)스프링을 쉽게 생각하
1. 정적 컨텐츠 정적 컨텐츠는 말그대로 resources/static에 파일을 만들어주면 그 파일 자체를 웹브라우저에 띄어주는 방법이다. 간단하게 설명해서 localhost
DTO의 장점1\. DTO 클래스를 만들어서 핸들러 메서드의 파라미터들을 모아 주면 코드가 굉장히 간결해 진다.2\. 데이터 유효성 검증을 에너테이션으로 단순하게 할 수 있다.3\. DTO를 사용하는 목적은 비용이 많이드는 HTTP 요청의 수를 줄이기 위함이다.4\.