2012. 11. 26. 10:47ㆍNOTE/IT
JAVA by 김성박 (urstory@gmail.com)
- 1995년 JAVA 등장
- 객체지향 - 현실을 그대로.. (미국에서.. 시뮬라..), 재사용 하기위해 사용함
- 문법 - 절차지향 문법(if,for,....)
- 객체지향 문법 (JAVA,Object C, C#...)
- 추상화 - 객체에서 중요한 부분만 남기고 버리는 작업 (이런 이유로 모든 객체가 재 사용되지 않는다!)
- 객체지향 프로그래밍에서 생성, 구조 , 행위 의 패턴이 있다
- 객체 프로그램 중요 용어 : Class , Object(Instance) , Reference
Class : Field (속성)
Method(기능)
- UML 표기법
> 속성
예) - A : B
+ (Public) , - (Private:자기만 암) , # (Protected:같은 Package에서 암:상속된경우는 암) , ~ (Default:같은 Package에서 암:상속시 모름)
- JAVA 실행
> CLASSPATH (OS) 에서 실행 Class를 찾음 > 찾은 Class를 PERM 메모리 영역에 올림
> 디스크에서 PERM으로 올릴때 static한 부분은 별도로 static만 관리하는 메모리 저장 ( static한 필드(class변수)는 바로 사용)
◎ 설치
1-1 SDK 설치
http://www.oracle.com/technetwork/java/javase/downloads/index.html
java se down
1-2 JAVA DOC 설치 (
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Additional Resources - Java SE 6 Documentation
1-3 eclipse 설치
http://www.eclipse.org/downloads/
Eclipse IDE for Java EE Developers
압축 해제 후 (JAVA 설치 Dir 에 옮긴후) 바탕화면에 eclipse.exe 바로가기 만들기
- window-open perspective - java
** perspective 는 개발환경 을 말함
- project - properties - encording : MS949 -> UTF-8 로 설정
- package 명은 보통 거꾸로 쓴다 com.minswa.TestPackage
- ctrl + / 주석
- ctrl + space 완선 (sysout - ctrl + space 하면 완성)
- ctrl + shift + o(영문) 관련 package 자동 import 해줌
- Source - override ~ generation~ 등 코드 생성 기능
- @Override 표시가 생기면 부모의 메소드 변경시 자식에게서 에러 발생시킴
1-4 환경 설정
환경 변수 추가
JAVA_HOME : C:\Java\jdk1.6.0_37\
CLASSPATH : .;%JAVA_HOME%\lib\tools.jar
PATH : %JAVA_HOME%\bin;
◎ Class를 메모리에 한번 올리는 방법 Singleton 패턴
public class CarFactory {
private static CarFactory instance=new CarFactory(); //다른 class 에서 intance.null 하면 지워져서 private함
private CarFactory(){} // 다른 class에서 이 class를 생성 할 수 없음
public static CarFactory getInstance(){
return instance;
}
public ~~~{
}
}
CarFactory cf1=CarFactory.getInstance(); //메모리에 1번만 올리는 방법
//CarFactory cf1=new CarFactory(); // 일반적 방법
◎ Interface로 구현된 자료구조 관계
Collection[add(Ojbect):void, size():int, iterator():iterator] - Iterator [hasNext():boolean, next():Object]
*순서기억 못함 (자료가 있다 없다만 알음) *Collection failmily에서 자료를 모두 가져오기위함
| |
List[get(int):Object] Set[] - Map[get(..):object , ketset():set, put(object,object):void]
*순서 기억 자료구조 * 중복허용 안함 자료구조
| |
ArrayList[.....] MAP[get(Object):Object, keySet():Set , put(object key,object value):void]
- 하나의 File에는 Public class는 하나만 있어야 한다
◎ JAVA I.O
-추상 Class InputStream (byte)
OuputStream(byte)
Reader(char)
Writer(char)
* 표준 입출력 System.in/out/error
- File~,ByteArray~,CharArray~,String~ 으로 시작되는 놈들(생성자가 Input/outputStream이 아닌놈들)
data의 대상체(근원지)를 다루는 class들이며
- 이외는 Adapter형식으로 기능을 위해 (기능확장을 위해) 사용됨)
- Data** : 기본형 Data처리,UTF(Unicode Transformation Format),Network 문자열
- Bufferd*** : 병목,한줄씩,
- Object*** : 객체 직렬화
- InputStreamReader : InputStream 을 Reader로 변형 (Adapter형식)
OutPutStreamWriter : OutputStream 을 Writer 로 변형
-InputStream : 1byte 입력, byte[]입력
-Reader : 1 char, char[] 입력
-OutputStream : 1byte, byte[] 출력
-Writer : 1char, char[] 출력
◎ JAVA Network pgm
http://mina.apache.org/
https://netty.io/
http://vertx.io (Netty, 를 기반으로 한 서버 Frame work)
http://www.nodejs.org (javascript (V8) 기반으로 만든 서버 framework)
http://socket.io/
웹 서버 - 클라이언트 통신 기술
1) 리플레쉬 ( 정해진 시간 바다 접속해서 가져옴)
2) 롱플링 방식 ( 한번 접속해서 끊지 않고 계속 유지함) COMET
3) Web Socket (HTML5 기술) Javascript 가 서버와 직접 통신함
4) Flash 로 서버와 통신 (Active X는 MS거만 됨 )
'NOTE > IT' 카테고리의 다른 글
JAVA GC 튜닝 (0) | 2012.11.29 |
---|---|
압축 프로그램 - 반디집 (0) | 2012.11.27 |
[UNIX] GREP 사용법 (0) | 2012.10.25 |
MP3 파일 용량 줄이기 (0) | 2012.09.28 |
어플 모음 for Android (0) | 2012.09.03 |