JAVA 정리

2012. 11. 26. 10:47NOTE/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