학교 수업/자바프로그래밍
-
자바 개념 6(thread)학교 수업/자바프로그래밍 2020. 4. 23. 18:50
1:1 채팅프로그램이 아닌 다인원 채팅프로그램을 구현하려면서버가 여러 클라이언트와 통신하면서 요청을 처리하기 위해 필요한 쓰레드에 대해 알아야한다.( 서버&클라이언트 1:1이면 thread사용 불필요 but 서버 & 클라이언트1 & 클라이언트2 & 클라이언트3... 이면 thead사용해야함)그래서 therad란 무엇인가? thread 쓰레드 - 개념 : 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미 프로세스(Process) : 실행중인 프로그램, 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 그림으로 자세히 보자면 - 쓰레드의 생명 주기 1. Runnable (준비상태) 스레드가..
-
자바 개념 5(socket programming의 바탕 TCP/IP)학교 수업/자바프로그래밍 2020. 4. 23. 18:14
네트워크? 데이터를 교환하기 위해 전송 매체를 매개로 서로 연결되어 있는것인터넷? 전세계 컴퓨터들이 서로 연결되어 있는 거대한 네트워크 자바수업에서 마지막으로 다루는 것이 채팅프로그램인데채팅프로그램은 소켓 프로그래밍(=네트워크 프로그래밍)과 thread를 이용해 구현한다 socket 소켓 - 개념: 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 단자 즉 프로세스 통신 간에 사용되는 양쪽 끝단을 의미한다. 소프트웨어 차원에서 원격에 존재하는 두 호스트를 연결해주는 매개체 - 자바 안에서 소켓의 종류에는 서버소켓과 클라이언트소켓이 있다.- 소켓은 통신하기 위해 대표적으로 TCP와 UDP를 이용한다. 그렇다면 소켓을 이용한 프로그래밍에 대해 더 자세히 설명하기 전에소켓이 통신하는..
-
자바 개념 4 (입출력)학교 수업/자바프로그래밍 2020. 4. 18. 18:25
자바 입출력 - 자바에서는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림(stream)이라는 흐름을 통해 다룸. 스트림 ? 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름.순서있는 데이터의 연속적인 흐름자료의 입출력을 도와주는 중간매개체 한 방향으로만 통신할 수 있어서, 입력과 출력을 동시에 처리할 수 없음.두 작업을 동시에 하고 싶다면, 스트림 객체 2개를 생성해야한다. 입출력 스트림은 객체 형태로 사용하며 읽기,쓰기,바이트 개수 계산 등 미리 정의된 유용한 메서드를 제공. 스트림의 종류?문자단위로 처리하느냐, 바이트 단위로 처리하느냐에 따라 나뉨 바이트 스트림 - 입력의 경우 InputStream 이 붙으며 출력의 경우 OutputStream 이 붙는다이미지나 동영상 등을 송수신 할때 주로..
-
자바개념3 (상속)학교 수업/자바프로그래밍 2020. 4. 16. 21:35
자바의 상속- 자바는 하나의 클래스만을 상속받는 단일 상속만 가능 (다중 상속일 경우, 메소드 출처의 모호성 문제 때문에)- 상속을 통해 기존해 작성된 클래스 재활용 가능하고, 클래스 간 계층적 관계를 구성함으로써 다형성 문법적 토대 마련 코드 예시 1234567891011121314151617181920class Parent { private int a = 10; // private 필드 public int b = 20; // public 필드} class Child extends Parent { public int c = 30; // public 필드 void display() { // System.out.println(a); // 상속받은 private 필드 참조, 오류 발생 System.out.p..
-
자바 개념2 (클래스, 필드, 메소드, 제어자)학교 수업/자바프로그래밍 2020. 4. 16. 21:19
자바 프로그램은 한 개 이상의 클래스로 구성 클래스(Class) ? 객체 지향 프로그래밍의 추상화(abstraction)라는 개념을 직접 구현한 것 선언방법접근제어자 class 클래스이름 { 접근제어자 필드1의타입 필드1의이름; 접근제어자 필드2의타입 필드2의이름; ... 접근제어자 메소드1의 원형 접근제어자 메소드2의 원형 ...}실제 코드 12345678910111213141516class Car { private int currentSpeed; private int accelerationTime; public void accelerate(int speed, int second) { System.out.println(second + "초간 속도를 시속 " + speed + "(으)로 가속함!!"); ..
-
자바 개념학교 수업/자바프로그래밍 2020. 4. 16. 19:01
자바 Java개념 : c언어 + 객체 지향성 = c++가 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어특징 : 자바가상머신(java virtual machine, JVM)을 사용해, 운영체제와 독립적으로 동작 가능 그래서 어느 운영체제에서나 같은 형태로 실행됨역사 가전제품 내에서 동작하는 임베디드 프로그램을 위한 언어로 썬 마이크로시스템즈사의 제임스 고슬링 팀에 의해 개발1991년 오크(oak)라는 이름으로 시작해 1996년 개발된 1.0.2 버전부터 자바라는 이름을 사용2009년에 썬마이크로시스템즈사가 오라클과 인수 합병됨에 따라 자바 또한 오라클의 소유가 됨장점 ① 운영체제와 독립적으로 실행② 불필요한 기능을 과감히 제거해 다른 언어에 비해 배우기 쉬움③ 자동 메모리 관리 등을 지원해 다른..