일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RDF
- nodejs
- ngrinder
- Router
- Knowledge Graph
- Python
- 자바
- 예제
- java
- 이벤트 루프
- 스크럼
- 파헤쳐보자
- express
- 스레드
- 특징
- node.js
- C++
- 노드js
- 스크럼 마스터
- 소켓
- benchmark
- Groovy
- scrum
- socket.io
- Django
- 노드
- node
- 개발자
- 지식 그래프
- Stream
- Today
- Total
목록Java (13)
라봉이의 개발 블로그
Java_Socket클래스_상속하는_법 Java Socket 상속하기 자바를 공부하는 와중에 채팅 서버를 구현해보고 싶었다. 링크 간단하게 Room을 구현하는 도중에 채팅방을 이용하는 유저에게 닉네임을 부여하고 싶었다. 유저 클래스를 생성하고 그 유저 클래스에 소켓 변수 필드를 만들어도 되지만 간단하게 하고 싶어서 Socket 클래스를 상속 받는 새로운 클래스를 만들어 닉네임과 아이디 필드를 생성하고 싶었다. public class UserSocket extends Socket { private String uid;// 아이디 private String name;// 닉네임 private PrintWriter pw;// 소켓 output stream 랩핑 private Buffer..
1. 자바에서의 입출력 1.1 입출력이란? 입출력이란 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 1.2 스트림 스트림이란 일종의 추상적인 개념인데 입출력 기기나 프로세스, 파일 등 데이터가 어디로 가는 지, 어디로 나왔는 지 상관없이 통일된 방식으로 데이터를 다루기 위한 가상의 개념이다. Node.js의 stream을 알고 싶다면 다음의 링크를 타고가면 된다. http://psyhm.tistory.com/26 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간어 건너뜀 없이 연속적으로 데이터를 주고받는다. 큐와 같은 FIFO 구조로 되어 있다고 생각하면 이해하기 편할 것이다. 1.3 바이트기반 스트림 - InputStream, OutputStream 스트림은 바이트..
3. StringBuffer클래스 3.1 StringBuffer클래스의 특징 StringBuffer클래스는 지정된 문자열 변경이 가능하다. 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며, StringBuffer인스턴스를 생성할 때 그 크기를 지정할 수 있다. 버퍼의 크기를 적절하게 정해주지 않으면 만약 문자열의 크기가 버퍼의 크기를 넘어서게 되면 버퍼 크기를 늘려주는 작업을 추가로 해야하기 때문에 작업효율이 떨어진다. 3.2 StringBuffer클래스의 생성자 public StringBuffer(int length) { value = new char[length]; shared = false; } public StringBuffer() { this(16); } public Strin..
자바에서 java.lang 패키지는 기본이 되는 패키지이기 때문에 import 없이 사용할 수 있다. 그 중 많이 사용되는 것들을 알아보자 1. Object 클래스 Object는 모든 클래스의 최고 조상이기 때문에 Object 클래스의 모든 멤버들은 모든 클래스에서 모두 사용할 수 있다. Object 메서드에서 중요한 몇가지를 살펴보자 1.1 equals 메서드 객체의 참조변수를 받아서 비교하여 그 결과를 boolean 값으로 알려주는 역할을 한다. public boolean equals(Object obj) { return (this == obj); } 코드를 보면 알 수 있듯이 서로 다른 두 객체를 equals 메서드로 비교하면 항상 false를 반환한다. equals 메서드는 결국 두 개의 참조변수..
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 참조변수의 형변환 서로 상속관계에 있는 클래스 사이에서만 가능하다. 자손타입 -> 조상타입(업캐스팅): 형변환 생략가능자손타입
객체지향은 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) 인스턴스 변수클래스 영역에서 선언인스턴스가 생성되었을 때 생성인스턴스는 독립적인 저장공간을 가지므로 인스턴스마다 서로 다른 인스턴스 ..