JAVA 1.변수 (기본자료형, 참조자료형, 자료의 형변환) 2.연산자 (단항, 산술, 비교, 논리, 삼항, 대입) 3.조건문 (if문, switch~case문) 4.반복문 (for, while, do~while) 5.객체지향 프로그래밍 6.접근 지시 제어자 (private, protected, public, default) 7.캡슐화 (정보은닉, 접근 지시 제어자) 8.static 변수와 메소드 (정적변수, 메소드) 9.생성자 10.메소드 오버로딩 11.상속 (extends, super) 12.생성자 오버로딩과 this 키워드 13.오버라이딩, 추상클래스 (overriding, abstract) 14.인터페이스 (interface) 15.Object 클래스 (toString(), equals() 메소드..
구분설명서버(Server) 여러명의 사용자들에게 서비스를 제공하는 컴퓨터 클라이언트(Client) 서비스를 요청해서 사용하는 컴퓨터 소켓 프로그래밍이란? 소켓을 이용한 통신 프로그램이다. * 소켓(Socket): 프로세스 간의 통신에 사용되는 양쪽 끝단을 의미한다.* java.net 패키지를 통해 소켓프로그래밍을 지원하며 TCP와 UDP를 이용한 소켓프로그래밍이 대표적이다. 항목TCP UDP 연결방식연결기반(Connection-Oriented)연결 후 통신, 1:1 통신 방식 비연결기반(Connectionless-Oriented)연결없이 통신(소포), 1:1, 1:n, n:n 통신 방식 특징- 데이터의 경계를 구분하지 않는다 (byte-stream)- 신뢰성있는 데이터 전송- 데이터의 전송순서가 보장된다..
파일 입출력은 1과 2로 나누어서 공부하도록 하겠습니다. 파일 입출력은 1에서 배운내용을 토대로 이미지 파일 전송 및 불러오기를 실습하도록 하겠습니다. 이미지 파일 전송에 대한 실습입니다.import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class ExampleImageSend{ public static void main(String[] args) throws IOException { // byte [] 스트림은 InputStream, OutputStream // 1) 바이트형태의 파일..
입출력 전에, 스트림에 대해서 공부하겠습니다. 스트림이란? 순서가 있는 데이터를 운반하는데 사용되는 연결 통로이다. 하나의 스트림은 단 방향 통신만 가능하다. * 입력 스트림 : 데이터 소스로부터 데이터를 읽기 위한 스트림이다. * 출력 스트림 : 데이터 소스에 데이터를 소비하기 위한 스트림이다. * 스트림의 종류 바이트 스트림(byte stream) 데이터 종류가 파일, 그림, 동영상 등의 바이트 기반인 경우 8비트의 바이트 단위로 입출력하는 클래스 문자 스트림(character stream) 문자데이터를 입출력하는 클래스 버퍼란? 데이터를 일정 크기 단위로 묶어서 저장하는 창고이다. 자바에서는 버퍼링된 스트림을 제공한다. Why? 문자 하나하나를 처리하기엔 버겁기 때문에(오버헤드) 버퍼에 만들어진 일..
동기화란? 스레드 간섭과 메모리 일치 오류의 문제를 막는 도구 * 스레드는 동일한 자원을 고유하기 때문에 매우 효율적으로 작업을 처리할 수 있는 반면에 다수의 스레드가 공유된 데이터에 접근할 때 방생하는 문제로 스레드 간섭, 메모리 일치 오류 두가지 문제가 발생한다. ˚ 스레드의 동기화동기화된 메소드 (Synchronized Methods) 동기화된 메소드는 동시 호출되더라도 겹치지 않는다. 스레드가 동기화 된 메소드를 실행하면 그 스레드가 종료될 때까지 모든 스레드는 중지된다. 동기화된 메소드가 종료되면 자동으로 이후 동기화된 메소드 호출은 변경된 상태를 볼 수 있다. Class ExampleSynchronized{ private int money = 1000; public synchronized vo..
쓰레드(Thread)란? 하나의 프로세스 내에서 존재하며, 경량 프로세스라 불린다.프로세스의 자원을 공유한다.하나의 프로세스는 한 개 이상의 스레드를 가지며, 한개의 (메인 스레드)로 시작 * 프로세스 - 실행중인 프로그램이다. - 프로그램과 어플리케이션과 같은 의미로 사용 - 자신만의 자원을 갖는다. - 다른 프로세스와 완전히 분리된다. * 스레드멀티 스레드(Multi-Thread) 하나의 프로세스 안에 여러개의 메소드를 사용한다.(작업이 동시에 진행된다.) 단일 스레드(Single-Thread) 하나의 프로세스 안에 메인스레드만 존재한다.(프로세스 = 스레드) 스레드의 생성 스레드의 실행 Thread 클래스 Class ExampleThread extends Thread{ public void run(..
컬렉션 프레임워크란 ? 배열의 단점을 보완한 데이터를 저장하는 클래스들을 표준화한 설계이다.다수의 데이터를 쉽게 처리할 수 있는 방법을 제공하는 클래스들로 구성 * 컬렉션(Collection): 다수의 데이터, 데이터 그룹* 프레임워크(Framework): 표준화, 정형화된 체계적인 프로그래밍 방식 인터페이스 구현 클래스 특징 List ArrayList 순서가 있는 데이터들의 집합, 데이터의 중복을 허용 => 데이터를 추가(add)하면 앞에서 부터 순차적으로 데이터가 삽입된다. 그래서 각각의 저장되어 있는 공간들은 고유한 색인(index)를 가진다. LinkedList Stack Vector Set HashSet 순서를 유지하지 않는 데이터들의 집합, 데이터의 중복을 허용하지 않는다. => 집합이며 데이..
제네릭 하나의 코드를 여러 타입에 대하여 재사용하는 기술 C++의 Template 기법과 비슷 구체적인 타입을 사용하지 않고 변수 형태로 적는다. 타입 매개변수: 클래스 타입, 인터페이스 타입, 배열 타입 등을 나타낼수 있다. * 보통은 대문자를 이용한다 제네릭을 사용하는 이유? 데이터를 꺼낼 때 마다 타입 변환을 해야하는 번거로움이 있을 수 있기 때문이다.(다형성의 Upcasting, Downcasting을 이용한 문제점 보안) 일반 클래스 클래스입니다. class Student{ Object name; void set(Object t){ this.name = t ; } Object get() { return name; } } 일반 클래스에서 제네릭을 이용한 클래스입니다. class Student{ T..
instanceof 란? 객체의 타입을 알아내는 키워드 입니다. A instanceof B : A객체가 B 클래스의 객체가 맞으면 true를 반환하고, 틀리면 false를 반환한다. instanceof 키워드에 대한 기본적인 이론을 마치고 실습을 통해 공부하겠습니다. 기본적인 instanceof 키워드에 대한 이론과 사용 방법을 담은 메인(main) 클래스 public class ExampleInstanceof { public static void main(String[] args) { A a1 = new B(); A a2 = new C(); B b1 = new B(); // 객체가 무엇으로 이루어져 있는지 판단하는 instanceof 연산자 // A instanceof B => A 객체가 B 클래스로 ..
예외처리에 대한 기본적인 공부를 마무리하고 (링크를 통해 예외처리에 대한 기본적인 공부를 하시면 됩니다.) 사용자 정의 예외처리에 대해 실습으로 공부하겠습니다. 사용자 정의 예외를 사용하기 위한 ExceptionTest 클래스 public class ExceptionTest { // Checked Exception : // Exception 클래스 상속받은 예외 public void foo(int n) throws MyException { // foo() 라는 메소드를 호출했을 때 // MyException 예외가 날 수 있으니 처리하라. // 예외가 발생 될 조건 if (n < 0) { // 예외 발생! // 예외 발생 시에 예외 객체를 만들어서 catch문에 던진다. throw new MyExcept..