일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JIT
- DAO
- DAO의 분리
- 파이썬
- 자바
- Spring Framework
- select
- 121
- 외부조인
- spring
- 개발기록
- defaultdict
- null
- 청크
- 리스트 자르기
- 싱글톤
- 오버라이딩
- 스프링
- 데이터베이스
- java
- react
- 쓰는이유
- orderedDict
- Oracle
- overriding
- 백준
- GCP Storage
- 싱글톤 레지스트리
- PYTHON
- ChainMap
- Today
- Total
목록Java (8)
PengTory
예외처리 (Exception) 예외: 잘못된 사용 또는 코딩으로 인한 오류 개발자가 예외 처리를 통해 계속 실행 상태를 유지할 수 있다. (프로그램이 중단되지 않도록 하기 위해) 일반 예외(Exception): 컴파일러가 예외처리 코드를 검사하는 예외를 말함 실행 예외(Runtime Exception): 컴파일러가 예외처리 코드 여부를 검사하지 않는 예외를 말함 구조 try { 예외 발생 가능성이 있는 코드 } catch (Exception e) { 예외가 발생하면 실행되는 코드 } finally { 무조건 실행되는 코드 } public class ExceptionEx { public static void main(String[] args) { System.out.println("시작"); try { S..
1. 상속의 특징 상속은 부모가 자식에게 물려주는 행위를 말한다. 우리가 흔히 생각하는 부모가 자식에게 주는 상속과 달리 프로그램에서는 자식이 부모를 선택한다. 또한 다른 언어와 달리 자바는 다중 상속을 허용하지 않는다. 아래 코드를 보면 자식 객체만 생성하고 있고 부모 객체를 따로 생성하고 있지 않다. 그러나 자식 객체에 "자식 객체 생성" 그리고 부모 객체에 "부모 객체 생성"이라는 코드를 넣고 실행해보면 다음 사진과 같은 실행 결과가 나온다. 자바에서 자식 객체를 생성하면 부모 객체가 먼저 생성된 다음에 자식 객체가 생성된다는 것을 알 수 있다. 또한 부모 객체의 실행이 먼저인 것도 확인 가능하다. public class SmartPhoneExample extends Object { public s..
1. Instance (객체) - static 키워드가 없으면 Instance - 객체 생성 후 객체를 통해서 사용 2. Static(정적/ 고정) - static 키워드가 있으면 static - 클래스 명으로 사용 - 필드는 객체간의 공유가 된다. => (myCalcu2, 3, 4는 값을 건들이지 않았음에도 불구하고 하나의 값이 변경되었기 때문에 공유로 인해 다른 것들도 값이 바뀌는 것을 볼 수 있다.) public class CalculatorExample { public static void main(String[] args) { System.out.println("main 메서드 시작"); Calculator myCalcu = new Calculator(); double result1 = myCa..
1. 클래스의 구성 멤버 필드 - 변수와 비슷하지만 기본 초기값이 있음-> 기본 자료형 - 0, 참조자료형 - null로 초기화 - 클래스 내 전체 영역에서 사용 가능 생성자(constructor) - 초기화 - return 타입이 없고, 이름이 클래스명과 동일함 - 객체를 생성할 때 사용됨 - 기본 생성자(매개변수가 없는 것)는 생성자가 하나도 없으면 컴파일러가 자동으로 생성해줌 다음과 같이 생성자를 따로 만든다면 컴파일러가 생성자를 자동으로 만들지 않기 때문에 아래처럼 오류가 난다. public class ClassEx { // 생성자 ClassEx(int a) { } } 메서드 - 하나의 기능 단위로 - 목적: 다른데 사용하기 위해서 예를 들어 구구단을 만드는 코드가 필요하다고 생각해보자. 만약 구..
참조타입 참조타입이란 기본타입과 다르게 객체의 번지(주소)를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스가 있다. - 배열, 클래스, 인터페이스 등 - 동등비교 (== , !=)를 하는 경우에는 메모리 주소값으로 비교한다. (저장된 값으로 비교하는게 아님!) - null(참조하는 주소가 없는 경우)이 가능하다. 그렇다면 참고자료형인 객체를 비교하는 예시를 알아보자. RefType rt = new RefType(); RefType rt2 = new RefType(); System.out.println(rt == rt2); // 결과값: false RefType rt3 = rt2; System.out.println(rt3 == rt2); // 결과값: true System.out.println(rt ..
1. Compile 언어 특징: 소스 -> 컴파일 -> 실행 소스파일을 컴파일이라는 행위를 하게되면 기계어로 변환되고, 기계어가 실행이 되는 방식이다. 장점: Interpreter언어에 비해 속도가 빠르다. 단점: 수정사항이 일어나면 수정이 불편하기때문에 편리성이 좋지 않다. 컴파일러는 OS마다 다르다. 따라서 기계어가 OS마다 달라지게 된다. (OS 구분이 있다.) 종류: C, C++ 2. Interpreter 언어 특징: 소스 -> 실행 인터프리터가 소스 한 줄을 해석에서 실행하고, 다음 줄을 해석해서 실행하는 방식으로 반복한다. 단점: Compile언어에 비해 속도가 느리다. 장점: 수정사항이 일어나도 수정이 편리하기 때문에 편리성이 좋다. 소스만 있으면 돌릴 수 있기 때문에 OS의 구분이 없다. ..
이 글은 [객체지향의 사실과 오해] 라는 책을 읽으며 개인적으로 정리한 글이다. 몇달 전에 객체란 무엇인가? 라는 질문을 받은적이 있었는데 확실히 대답하지 못했다. 객체지향의 대표적인 언어인 Java를 공부하고 있지만 객체가 뭔지 정확히 설명할 수 없었고 그 결과 간단하지만 중요한 개념을 잡고 가야겠다고 생각했다. 객체 그리고 이상한 나라 책에서는 이상한 나라의 앨리스를 예시로 들어 객체를 설명한다. 간단히 이상한 나라의 앨리스 이야기를 해보자. 앨리스는 토끼를 따라가 이상한 굴에 들어가고 작은 문을 통해 정원으로 들어가기 위해 케이크, 음료 등을 먹으며 키를 조절한다. 앨리스가 음료를 마시는 것은 행위(behavior)이다. 그리고 앨리스가 음료를 마셔 키가 작아지는 것은 상태(status)이다. 앨리..
오버라이딩이란? 오버라이딩이란 상속 관계에 있느 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것을 말한다. 자바에서 자식 클래스는 부모 클래스의 private을 제외하고는 모든 메소드를 상속받는다. 상속받은 메소드는 그대로 사용할 수 도 있지만 필요에 의해 재정의해 사용할 수 있다. 따라서 메소드 오버라이딩이란 상속받은 부모 클래스의 메소드를 재정의해 사용하는 것을 말한다. 오버라이딩의 조건 오버라이딩은 메소드의 내용만 새로 작성하는 것이기 때문에 메서드의 선언부는 부모의 것과 완전히 일치해야 한다. 따라서 오버라이딩 성립을 위해서는 아래 조건이 만족되어야한다. 1) 메소드의 선언부는 기존 메소드와 완전히 같아야한다. 2) 메소드의 반환 타입은 부모 ..