일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코테
- 티스토리챌린지
- 정처기
- 오블완
- 자바
- MySQL
- select
- 안드로이드
- 혼공챌린지
- CS
- 혼공파
- doitandroid
- groupby
- 스터디
- 안드로이드스튜디오
- Android
- Til
- 기술면접
- 코틀린
- SQL
- 인프런
- 알고리즘
- java
- 정보처리기사
- Kotlin
- join
- 자료구조
- 프로그래머스
- 혼공단
- 카카오코테
- Today
- Total
목록자격증 및 기타 활동/J2KB (13)
Welcome! Everything is fine.
📌 타입 변환 타입 변환 : 데이터 타입을 다른 데이터 타입으로 변환하는 것. 자동(묵시적) 타입 변환 강제(명시적) 타입 변환 📌 자동 타입 변환(Promotion) 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것. 큰 크기 타입 = 작은 크기 타입 → 자동 타입 변환 byte(1) < short(2) < int(4) < long(8) < float(4) < double(8) byte byteValue = 10; int intValue = byteValue; // 자동 타입 변환이 일어남. int intValue = 200; double doubleValue = intValue; // 200.0 char charValue = 'A'; int intValue = charValue; // 65가 ..
📌JVM(Java Virtual Machine) : 자바가상기계 ✔ 자바 프로그램 개발 순서 자바소스파일 작성 (.java) 컴파일러(javac.exe)로 컴파일 바이트코드파일 생성 (.class) 자바가상기계(java.exe)를 통해 기계어로 번역 실행 자바 프로그램은 완전한 기계어가 아니라 중간 단계의 바이트 코드라서 이것을 해석하고 실행할 수 있는 가상의 운영체제(=JVM)가 필요하다. 자바 프로그램을 운영체제별로 개발하기보다는 운영체제와 자바 프로그램 사이에 JVM을 두어 자바 프로그램이 여러 운영체제에서 동일한 실행 결과가 나오도록 설계한 것이다. 단, JVM은 운영체제에 맞게 설치되어야 한다. JVM은 JDK나 JRE를 설치하면 자동으로 설치된다. 📌JDK(Java Development Kit..
📌 접근지정자 어떤 클래스로부터 다른 클래스의 메소드와 필드의 수준을 통제하는 역할을 한다. 중요한 멤버에 대해서는 제한적 접근을 설정, 즉 뚜렷한 이유가 없다면 가능한 private를 사용한다. 일반적으로 상수를 제외하고 가능한 public 필드는 사용하지 않는 것이 좋다. public 필드로 인해 코드 수정이나 확장과 같은 변경에 있어서 융통성에 제약을 줄 수 있기 때문이다. 📌 클래스 접근지정자 ✔ 클래스 앞에 붙는 접근지정자는 2가지 → public, 접근지정자 생략(default) 접근지정자 설명 public 외부의 다른 클래스로부터 접근 가능 default(package-private) 같은 패키지 내에 있는 클래스에서만 접근 가능 ✔ 패키지란? 공통된 특성을 가진 클래스들의 모임! 📌 멤버 ..
💡 컬렉션 프레임워크 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 라이브러리이다. java.util 패키지에 구현되어 있다. 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있다. 여러 인터페이스와 구현 클래스 사용 방법을 이해해야 한다. 💡 Collection 인터페이스 하나의 객체를 관리하기 위한 메서드가 선언된 인터페이스. 하위에 List 인터페이스와 Set 인터페이스가 있다. 📃 List와 Set의 차이? List Map 요소가 중복되어도 상관없음 요소의 중복을 허용하지 않음 순서가 있음 순서는 상관없음 배열, Linked Lidt, Stack, Queue 등 HashSet, TreeSet 등 여러 클래스들이 Collection 인터페이스를 구현한다..
💡 제네릭 프로그래밍 제네릭 프로그래밍이란 여러 자료형이 대체될 수 있도록 프로그래밍하는 것이다. 즉, 하나의 자료형에 국한하지 않고 여러 자료형이 쓰일 수 있도록 프로그래밍 하는 것이다. 대부분의 컬렉션 프레임워크가 제네릭 프로그래밍 방식으로 구현되어있다. 제네릭 클래스 정의하기 제네릭 프로그래밍 방식으로 만든 제네릭 클래스에 는 매개변수 타입을 의미한다. 만들 때는 사용할 타입이 대체 될 곳에 문자 하나를 동일하게 쓰고 사용할 때는 그 문자 대신에 사용할 참조형 타입(클래스)을 쓴다. 자료형 매개변수 T type의 의미로 T를 많이 사용한다. 에서 는 다이아몬드 연산자라고 한다. 다이아몬드 연산자 내부에서 자료형은 생략이 가능하다. static 키워드는 T에 사용할 수 없다. T extends 클래스..
💡 인터페이스 요소 기존에는 상수와 추상메서드가 인터페이스의 구성요소였지만, 자바8 부터 다른 요소들이 추가되었다. 추가된 메서드는 다음과 같다. 메서드 설명 디폴트 메서드 default 키워드를 사용하며, 기본 구현을 가지는 메서드. 구현 클래스에서 재정의할 수 있다. 만약 재정의 하지 않으면 디폴트 메서드의 기존 내용이 들어간다. 하지만 재정의 할 수 있어도 인터페이스를 인스턴스화 할 수는 없다. 정적(static) 메서드 인스턴스 생성과 상관없이 인터페이스 타입으로 사용할 수 있는 메서드. 어떤 클래스가 그 인터페이스를 구현하지 않아도 인터페이스에 선언된 메서드를 new하지 않고 호출해서 쓸 때 사용한다. private 메서드 인터페이스 내부에서만 기능을 제공하기 위해 구현하는 메서드. 인터페이스를..
💡 추상클래스(abstact class) 추상클래스는 구현코드 없이 메서드의 선언만 있는 추상메서드를 포함한 클래스를 말한다. 물론 추상메서드뿐만 아니라 구현메서드도 들어갈 수 있다. abstract 키워드를 사용하며, 추상클래스는 new(인스턴스화) 할 수 없다. 추상클래스는 상속을 하기 위해 만드는 클래스이기 때문에 자기 혼자 돌아가는 클래스가 아니다. 따라서 상위 클래스에서는 어떤 것을 보여줄지 정의하고, 하위 클래스에서 구체적으로 어떤 것을 보여줄지 구현한다. 즉, 상위 클래스에서 구현하지 못하고 하위 클래스에 위임해야하는 부분을 추상메서드로 만든다. 다음 코드는 구현 코드는 없지만 구현부는 존재하는 메서드다. public void display() {}; 그러나 다음 코드는 구현코드는 물론 구현..
💡 가상 메서드(virtual method) 가상 메서드란 인스턴스의 메서드가 호출되는 것을 말한다. 재정의가 되어있지 않은 경우 부모 클래스의 메서드를 호출하지만, 재정의가 되어있을 경우 메서드 영역은 2개가 된다. 이때 재정의된 자식 클래스의 메서드를 호출하는 것이다. 이 가상메서드에 의해서 다형성이 구현된다. 아래 코드를 예시로 들면, 부모 클래스인 Customer 클래스에서의 calcPrice()메서드는 자식 클래스인 GoldCustomer 클래스에서 기능이 더 추가되어야한다. 보너스 포인트 비율도 다르고, 할인도 해주기 때문이다. 그래서 GoldCustomer 클래스를 보면, calcPrice()메서드를 재정의하여 사용했다. public class Customer { protected int c..