Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

JAVA SE 개념 정리

No description
by

Liaochen Liyin

on 17 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of JAVA SE 개념 정리

Obstacle II-1
접근 제어자

public > protected > [default] > private
Obstacle I
Obstacle II
Start
자바의 특징
I). Encapsulation (캡슐화)

II). Inheritance (상속)

III). Polymorphism (다형성)
I) Encapsulation (캡슐화)
II) Inheritance (상속)
Java SE 개념 정리
KOSTA 48기 이윤료신
제어자
객체 지향 주요 컨셉
- Public Interface, Private Implementations -
- One Interface, Multiple Implementations -
III) Polymorphism (다형성)
Something abt. Polymorphism
다양한 계총 구조 형성은 가능하게 하지만,
재사용성은 떨어진다
- 자식에게 메서드 오버라이딩 구현을
강제하여 시스템 표준화를 위하여
추상 메서드를 도입시킴
- abstract method 가 하나라도 있어도
abstract class 가 됨
- 객체 생성이 안 됨
- 일반 클래스가 존재할 수 있음
Interface
Obstacle III
Abstract Class
추상 클래스
Collection Interface
하나 이상의 데이터를 담는
배열을 효율적으로 관리하는 Collection
Exception 예외 처리
목적:
시스템 동작하다가 Exception 이 일어나더라도 대처방안을 마련하여 시스템 비정상 종료를 방지하고 정상으로 종료되도록 해 줌
데이터 흐름의 통로 - 입력 및 출력
I/O (Input/Output)
Obstacle 1V
Thread
Obstacle V
Chatting Project
TCP/IP Networking
Goal
javac HelloWorld.java
java HelloWorld
EditPlus
Eclipse -
"src 에서 오른쪽
마우스 클~릭~
Neeew~"
1) JVM 을 통한 실현된 플랫폼 독립성
2) 객체 지향 언어
- 객체 간의 관계를 중심으로의 분석.설계의 기법
3) Multi-tasking 을 위한 Multi-threading 지원
4) Garbage Collector - JVM 이 사용되지 않는 데이터를 알아서 정리
2013.1.14
Object vs. Class vs. Instance
- 클래스와 객체~
실세계 객체
-붕어-
분석.설계도
-붕어빵틀-
프로그래밍세계 객체
-붕어빵-
Tip:
객체를 new 키워드로 생성해야만
데이터를 갖다가 뭔가를 할 수 있다.
- '데이터'란?
속성, 변수 - String name;
- '뭔가를 한다'란?
기능, 메서드 - public void swim(){}
(접근제어자 및 기타 제어자)
Obstacle II-2
Obstacle II-3
1. 정보 보호:
private 한 멤버변수 -> set/get method 활용
2. 유지보수성:
구현부가 바뀌어도 외부 통신을 하기 위한 인터페이스에 영향 최소화
3. 유저 편의성:
외부에서 사용 시 내부 구현부를 알 필요가 없음
- Inherit from One Parent, Add My Own -
1. 부모의 속성과 기능을 물려받아 재사용성 향상
-> 생산성 향상
2. 계층 구조 형성 - 다형성의 기반
특징: 단일상속 <-> 다중상속은 Interface 로~
super

super.blabla: 부모 멤버에 접근
super(): 부모 생성자 호출
Something abt. Inheritance
Overloading vs. Overriding
Obstacle II
기타 제어자

a. static - 객체 생성 없이도 접근 가능~ O O
b. final - 변할 수 없는 상수 만들기~ O O O
c. abstract - 객체 생성권 제한, 오버라이딩 강제~ O O
d. synchronized - 데이터 공유를 위한 스레드 동기화~ O
e. transient - 직렬화 대상 제외~ O
Variable Method Class
Overloading

* 메서드의 재사용성 -> 편의성
* 매개변수가 반드시 달라야 하며,
매개변수만 다르면 된다
ex) public void makingSalad(){}
public String makingSalad(apple){}
public Salad makingSalad(potato){}
Overriding

* 상속 시 부모 메서드 수정
* 구현부를 제외하고 선언부가
반드시 똑같아야 한다
* 접근 제어자 범위가 좁아지면 안 된다
동일한 인터페이스로 다양한 구현을 할 수 있게끔~
Fruits
Banana
Strawberry
Watermelon
부모 타입으로 자식 참조

ex) public void makingSalad
(Fruit banana)
class Strawberry{
eat(){}
}

class Watermelon{
eat(){}
peel(){}
}

class Banana{
eat(){}
peel(){}
}
Fruit straw=new Strawberry();
straw.peel(); --> X

Downcasting 반드시 필요!

(Strawberry) straw.peel(); --> V
Obstacle I
Something abt. Encapsulation
ex1) DB
ex2) Web Server
Application
JDBC Interface
Oracle
MS SQL
DB2
DBMS
Quantities of data here...
Driver, Connection, Statement,
PreparedStatement,
ResultSet...
Tomcat, JBOSS, WebLogic, WebSphere
동일한 interface 로 통신 -
Servlet, HttpServletRequest, HttpServletResponse...
About me...
Garbage Collector
+ Energy
환난견진정
public void goDrinking(StudyGroup 술조)
throws 료신Exception{ }
public Energy seekHelp(료신){ }
구성 요소를 보면 추상 클래스와 비슷함
1) 추상 메서드
2) 시스템 표준화를 위함
Abstract class vs. Interface
1) 추상 메서드와 상수만 존재 가능
2) 재사용성이 떨어짐
3) 다양한 계층 구조 형성 가능
4) 다형성의 기반
List Interface
순서 O
중복 O
ex) Arraylist, LinkedList...
Set Interface
순서 X
중복 X
ex) HashSet
Map Interface
(key, value) 형태로 존재
Collection 에서 제외
ex) HashTable, HashMap...
Iterator Interface
데이터 열거하기 위한 표준을 제공
Map의 key를 set으로 열거
Exception 관련 5 개의 Keywords:
try (block) - Exception 발생 예상 지점
catch (block) - Exception 처리 지점;
여러 개 나열 가능;
자식에서 부모로 순서를 보장해야 함
finally (block) - Exception 처리 여부와 상관없이 항상 수행
throw - Exception을 고의로 발생시킴
throws - Exception을 해당 메서드를 호출한 곳으로 던짐
>> 4가지 abstract class:
8 bit (node 계열)
16 bit (process 계열)
InputStream, OutputStream
바이트 기반
Reader, Writer
문자 기반
>> 일반 스트림
보조 스트림
* 직접 장치에 연결되는 스트림
* 독립적인 사용 가능
* 부가 기능을 제공하는 스트림
* 독립적인 사용 불가
(생성자에서 다른 스트림 명시 필요)
정의:
프로세스 내에 세부적 실행 단위
자주 쓰이는 클래스들
I/O (Input/Output)
8 bit (node 계열)
바이트 기반
16 bit (process 계열)
문자 기반
* InputStream/OutputStream
(System.in)
* FileInputStream/FileOutputStream
* BufferedInputStream/
BufferedOutputStream(보조)
** ObjectInputStream(InputStream in)/
ObjectOutputStream(InputStream out)
[객체 직렬화에 쓰임]
* FileReader/FileWriter
* InputStreamReader/
OutputStreamWriter
* BufferedReader/
PrintWriter(보조)
생성 방식:

1. extends Thread 2. implements Runnable
구동 방식:

start() --> 스레드 스케줄러 --> run()
개발자는 스레드를 start() 명령을 내리고
JVM 의 스레드 스케줄러가 thread 를 실행 (run) 시킨다
Thread Synchronized (스레드 동기화)
* Why?
스레드가 동작하는 동안에 여러 스레다가 같은 데이터를 공유하는 경우가 발생하여 문제가 생긴다.
* How?
synchronized 를 통하여 코드 일부를 단일 스레드 환경을 구축하여 데이터 처리의 안정성을 보장
두 가지 방식:

1. public synchronized void reserve(){}
2. public void reserve(){
synchronized(this){}
}
java.net package API 로 개발
기본 통신 주체: Socket
Server 쪽
Client 쪽
인터넷과 연결되는 InputStream & OutputStream 을 갖고 있음
* ServerSocket(portNum)
(portNum 은 서비스 번호, 80은 web service)
* Socket=ServerSocket serverSocket.accept();
(대표 전화의 역할, 이것을 갖다가 통신 시작)
* Socket (serverIp, port)
* socket.getOutputStream();
* socket.getInputStream();
# 마지막에 자원을 반환하기 위하여 close(); 를 잊지 않도록... #
Full transcript