일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 예제
- 소켓
- Knowledge Graph
- nodejs
- 노드
- 스크럼
- node
- C++
- 파헤쳐보자
- 노드js
- Stream
- node.js
- Django
- Python
- 이벤트 루프
- 개발자
- java
- 지식 그래프
- 특징
- socket.io
- benchmark
- scrum
- 스크럼 마스터
- Groovy
- ngrinder
- 자바
- express
- Router
- 스레드
- RDF
- Today
- Total
목록분류 전체보기 (55)
라봉이의 개발 블로그
1.7 예외의 발생과 catch 블럭 instanceof 연산자로 catch 블록의 () 안의 클래스와 비교해서 맞는 catch 블록의 {} 코드들을 실행함. 예외가 발생했을 때 생성되는 예외클래스의 인스턴스에는 발생한 예외에 대한 정보가 담겨져 있으며 다음 함수로 확인이 가능하다. printStackTrace() - 예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메세지를 화면에 출력 getMessage() - 발생한 예외클래스의 인스턴스에 저장된 메세지를 읽을 수 있다. public class Main { public static void main(String[] args) { PrintStream ps = null; try { ps = new PrintStream("error.log"); S..
1. 예외처리 1.1 프로그램 오류 프로그램 오류는 컴파일 에러와 런타임 에러가 있는데 그 중 런타임 에러는 에러와 예외, 2가지 종류가 있다.에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 1.2 예외처리의 정의와 목적 프로그램 실행도중에 발생하는 에러는 발생하면 복구할 수 없는 심각한 오류지만, 예외는 이에 대한 처리를 미리하면 프로그램의 비정상 종료를 막을 수 있다. 1.3 예외처리구문 try-catch 예외를 처리하기 위한 구문은 다음과 같다. try { // 예외가 발생할 가능성이 있는 문장들을 넣는다. } catch (Exception1 e1) { // Exception1이 발생했을 경우, 이를 처리하기 위한 문장 넣는다..
객체지향은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 7. 인터페이스 7.1 인터페이스란? 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 추상클래스를 '미완성 설계도'라고 한다면 인터페이스는 밑그림만 그려져 있는 '기본 설계도'라고 할 수 있다. 7.2 인터페이스의 작성 인터페이스를 작성하는 것은 클래스와 같지만, 다만 키워드로 class 대신 interface를 사용하는 것만 다르다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수 목록) } 일반적인 클래스와 달리 인터페이스의 ..
객체지향은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 5.다형성 5.1 다형성이란? 객체지향개념에서의 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. => 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다. 5.2 참조변수의 형변환 서로 상속관계에 있는 클래스 사이에서만 가능하다. 자손타입 -> 조상타입(업캐스팅): 형변환 생략가능자손타입
1. void 포인터 c, c++ 언어에서 generic 포인터라고도 알려진 void 포인터는 굉장히 특별한 타입이다. 그 어떤 타입이든 객체든 가리킬 수 있는 포인터이기 때문이다. 심지어 함수도 가리킬 수 있기 때문에 void 포인터를 이용해 함수를 실행할 수도 있다. 선언은 다음과 같이 할 수 있다.void *ptr; 그리고 어떤 데이터든 주소값만 대입하면 된다. ex) int a = 10; float b = 10.1f; void *aPtr = &a; void *bPtr = &b; void 포인터를 사용하기 위해선 대입한 데이터형으로 형변환 시킨 후에 사용해야 한다. 왜냐하면 void 포인터가 뭘 가리키는 지 모르기 때문이다. ex)std::cout
객체지향은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 1. 상속 1.1 상속의 정의와 장점 자바에서 상속을 구현하는 방법은 extends를 사용하면 된다. 1.2 단일 상속 다중 상속은 이름 겹침 등 다양한 문제가 있기 때문에 단일 상속만 허용하였다. => 다중 상속은 interface로 어느정도 대체 가능하다. 1.3 Object 클래스 - 모든 클래스의 조상 Object 클래스는 모든 클래스 상속 계층도의 제일 위에 위치하는 조상클래스이다. 다른 클래스로부터 상속 받지 않는 모든 클래스들은 자동적으로 Object 클래스로부터 상속받게 함으로써 이를 가능하게 한다. Object 클래스에 대해서는 나중에 배우도록 하겠다. 2. 오버라이딩 2.1 오버로딩 vs 오버라이딩 오버로..
객체지향은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 1. 변수와 메서드 1.1 선언 위치에 따른 변수의 종류 변수 종류: 클래스 변수, 인스턴스 변수, 지역 변수 클래스 변수: 멤버변수 중 static이 붙은 변수인스턴스 변수: 멤버변수 중 static이 붙지 않은 변수지역 변수: 멤버변수를 제외한 나머지 변수 class Variable{ int instanceValue; // 인스턴스 변수 static int classValue; // 클래스 변수 void method1() { int localValue = 0; // 지역 변수 } } 1) 인스턴스 변수클래스 영역에서 선언인스턴스가 생성되었을 때 생성인스턴스는 독립적인 저장공간을 가지므로 인스턴스마다 서로 다른 인스턴스 ..
배열은 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 1.1 배열의 생성 배열을 생성하기 위해서는 연산자 new와 함께 배열의 타입과 크기를 지정해 주어야 한다. int[] data; data = new int[5]; 1.2 배열의 초기화 배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화된다. int[] data = new int[5]; System.out.println(data[0]); // 0 변수의 타입에 따른 기본값은 다음과 같다. 자료형 기본값 boolean false char '\u0000' byte 0 short 0 int 0 long 0L float 0.0f double 0.0 or 0.0d 참조형 변수 null 배열을 초기화 하는데 두 가지..
변수는 c++과 유사한 점이 많으니 특징과 다른 점만 짚고 넘어가도록 하겠다. 1. 변수의 타입기본형: 실제 값을 저장하는 데이터 타입참조형: 어떤 값이 저장되어 있는 주소를 값으로 갖는 데이터 타입(실제 연산 불가)※ 기본형 종류: boolean, char, byte, short, int, long, float, double 참조형은 기본형이 아닌 모든 타입 1.1 기본형 논리형, 문자형, 정수형, 실수형이 존재 논리형: boolean문자형: char정수형: byte, short, int, long실수형: float, double 1.2 논리형 boolean 값: true or false크기: 1 byte 1.3 문자형 char 자바에서는 유니코드 문자체계를 사용하기 때문에 char 크기가 2 byte..
대학교 1학년 시절, c++로 첫 개발을 시작했을 때는 검은색 화면에서 무엇인가 컴퓨터로 계산한다는 점이 매우 매력적으로 다가왔다. 하지만 C++이란 러닝커브는 매우매우 극한에 달했고 필자는 c++하다가 너무 힘들어서 한동안 스크립트 언어인 자바스크립트와 node.js를 배웠다. 하지만 그들은 뭔가 언어적으로 배워간다기보다는 남이 만든 것을 내가 잘 쓰는 것을 배우는 것이었다. 뿐만 아니라 c++보다 언어적으로 체계가 있는 것도 아니었다. 그래서 결국 c++보다는 좀 쉽고 자바스크립트보다는 체계가 매우 잡힐 뿐만 아니라 생산성도 좋고, 우리나라에서 제일 많이 쓰는 자바를 배우게 되었다. 이 포스트의 목적은 자바의 정석 책을 읽으면서 공부했던 부분을 머릿 속 더욱 더 깊이 기억할 수 있게 정리하는 목적이다..