yieldJDK 14에서의 switch문에서 나온 키워드break문이 제거됨으로써 기존의 코드와 비교하면 더욱 간결해짐➡️break 문의 누락 실수를 방지switch (city) { case SEOUL -> “Korea”; case NEWYORK -> “America”; case LONDON -> “England”; default -> “unknown”; }; switch expression (=switch 표현식)에서 yield 는 값을 리턴하는 키워드“case L ->” 문법여러 case를 사용하는 경우 해당 코드를 블록으로 묶고 yield 를 통해 리턴 가능값을 명시적으로 리턴하기 위해 새로운 키워드인 yield를 도입 case MONDAY -> yield 0; ➡️컴파일 에러..
논리연산자 AND 연산자& : and연산자, 두가지모두만족&& : and연산자, 두가지모두만족❓&& 와 &의 차이➡️결과값은 같지만 JVM에서는 다르게 동작&&연산자 : 앞의 식이 거짓이면, 뒤에 있는 식은 실행하지 않음. 한쪽만 거짓이어도 실행할 필요가 없기때문이다.&연산자 : 앞의 식이 거짓이라도 뒤의 식이 실행OR 연산자| : or연산자, 둘 중 한가지만 만족|| : or연산자, 둘 중 한가지만 만족❓|| 와 | 의 차이➡️결과값은 같지만 JVM에서는 다르게 동작|| 연산자 : 앞의 식이 참일경우 뒤의 식은 실행되지 않는다. (어느한쪽이라도 참이 있으면 참이기때문)| 연산자 : 앞의 식이 참일경우에도 뒤의 식이 실행XOR 연산자^ : Exclusive OR 라고 부름배타적 논리합 연산자둘의 결과 값..
변수와 리터럴ex. int : 정수 타입 “키워드”int i = 1; 이 있을때➡️int : 정수타입 키워드 ➡️ i : 하나의 값을 가질 수 있는 공간➡️변수 1은 "정수 리터럴(literal) 1"을 말한다.리터럴(literal) : 변수에 입력되는 값컴퓨터는 “정수 하나”를 저장하기위해 메모리에 "4byte 크기의 저장공간"을 필요로함➡️이 메모리의 영역을 변수라고 하는 것❓키워드➡️java에서 정한 “예약어”❓예약어 (=키워드) 종류 ➡️class, public, static, while 등등변수 변수의 타입1.기본형 타입 byte = 1byteshort = 2byteint = 4byte (정수형) : 32비트의 수 표현long = 8byte (정수형) : 64비트의 수 표현➡️리터럴(값)뒤에 L..
Explain스택 (Stack): 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조큐 (Queue): 가로형태의 원통형 구조라고 가정할 수 있고, 맨 좌측 front, 맨 우측 rear(꼬리) 의 자료구조: 데이터가 FIFO(First-In First-Out) = 가장 먼저 들어간 것이 가장 먼저 나오는 구조해시세트 (HashSet): Set 인터페이스의 구현 클래스로 객체를 중복해서 저장할 수 없고: 하나의 null 값만 저장할 수 있는 Set의 성질을 그대로 상속받음>> 저장순서가 중요하지 않음>> 같은 Set 인터페이스의 하위 클래스 중 TreeSet은 데이터를 자동정렬해주는 특징이 있지만 HashSet은 그렇지 않음실습코드 package chapte..
Explain컬렉션 인터페이스 (Collection Interface): 하나의 객체를 관리하기 위한 메서드가 정의된 인터페이스: 하위에 List와 Set 인터페이스를 가짐1. 리스트 인터페이스 (List Interface)- 순서가 있는 자료관리, 중복을 허용 - 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스- 배열의 기능을 구현하기 위한 인터페이스- 이 인터페이스를 구현한 클래스는 ArrayList / Vector / LinkedList / Stack / Queue 등이 있음2. 세트 인터페이스 (Set Interface)- 자료관리에 순서가 없음, 중복을 허용하지 않음 - 이 인터페이스를 구현한 클래스는 HashSet / TreeSet 이 있음- 아이디, 주민번호 등 유일..
Explain스택 (Stack): 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조- 배열이나 연결리스트 둘다 구현가능- 중간에서 데이터의 수정이 일어나지 않음- 맨 위의 위치를 top, 맨 아래의 위치를 bottom 이라 칭함- LIFO (후입선출) 구조로 가장 나중에 넣은것이 가장 먼저 나오는 자료구조- push() = 데이터 삽입, pop() = 데이터 빼기 처럼 사용가능- 실무 사용 예로 게임개발에서 두 수 무르기, 왔던 곳을 되돌아가기 등의 기능을 구현할때 사용- 자바 JDK에서는 Stack 클래스로 구현하거나 ArrayList로 구현이 가능- Peek() : 일종의 get()으로 스택의 맨 위에 있는 원소를 반환 (=실제로 꺼내진 않고 그 값이 ..
Explain제네릭 프로그래밍 (Generic Programmming) : 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환될 수 있도록프로그래밍 하는 방식- 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적- 컬렉션 프레임워크에서 많이 사용되고 있음1. 제네릭 클래스는 여러 참조 자료형으로 대체될 수 있어야하므로 그 부분을 "하나의 문자"로 표현함>> 이 문자를 '자료형 매개변수' 라고함>> 자료형 매개변수 선언은 T 로 하며, 이 T는 Type의 의미로 사용됨 다이아몬드 연산자 안에 T를 사용해 표현static키워드는 매개변수 T에 사용이 불가하다.2. 예시로 T extends 클래스= T가 사용될 클래스를 제한하기 위해 사용하는 기법컬렉션 프레임워크..
강의를 참고해 상속없이, 객체 간의 협업으로 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다.Introduction필요한 클래스 : 학생, 버스, 지하철'학생'클래스의 정보 : 이름, 학년, 돈'학생'클래스의 메서드 : 탄다, 정보'버스'클래스의 정보 : 버스번호, 승객 수, 돈'버스'클래스의 메서드 : 태우다, 정보'지하철'클래스의 정보 : 노선번호, 승객 수, 돈'지하철'클래스의 메서드 : 태우다, 정보첫번째 클래스 (Student.java)package cooperation;public class Student { int grade; int money; String studentName; public Student(String studentName, int money) { this.s..
ExampleStudent studentLee = new Student(); Explain라는 코드에서 Student() 는 "생성자"를 의미한다.그렇다면 public Student() { } 처럼 기본생성자를 넣어주어야하지만 코드에는 없어도 실행이 잘되는 것을 확인할 수 있다.왜냐하면 자바 컴파일러가 자동적으로 추가해 실행해주기 때문인데, 자바 컴파일러는 클래스에 생성자가 하나도 없는 경우에 기본생성자를 알아서 추가해서 실행해주는 특징이 있다.* 특징1. 매개변수가 없음2. 하나의 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야함 3. 프로그래머가 따로 지정하지 않으면 컴파일러가 기본생성자를 자동으로 코드에 추가해줌 4. 만약 매개변수가 있는 생성자를 추가하게 된다면 기본생성자는 제공되지 않음Q..