Java/Theory 29

[Java/Theory]19. interface기반, Inner class, instanceof

19. interface기반, Inner class, instanceof- Programming based on interface Method의 Datatype을 최상위의 Class로 지정하는 것. Method 내부에서는 그 어떠한 하위의 Datatype으로 움직이는지는 관심이 없다. 반환되어 받는 Datatype도 최상위로 해두도록 한다. OOP의 Capsulation을 위한 것. Method의 Signature만을 확인하여 개발의 생산성을 올린다. - Inner ( Member / Local / Anonymous ) class Meber : Class에 Field에 정의된 Class. 외부에서 접근이 가능하나 작성의미가 없어짐 this를 접근하게 되면 내부 Class에 정의된 Field를 참조한다. ..

Java/Theory 2016.05.31

[Java/Theory]18. Exception Handling

18. Exception Handling JVM에서 실행중인 프로그램이 예외가 발생하여 Bytecode에서 처리하는 과정. Exception Handling의 목적은 견고한 Application을 만드는 것이다. Object 밑에 있는 Throwable Class에서 제공된다. Throwable에는 다양한 Exception Class가 있다. (0으로 나눌때, 배열 색인 이탈, wrong casting...) * 처리 원리 최초 예외가 발생한 시점을 출발점을 두어 관련된 구문을 추척하면서 Call Stack에 저장한다. Call Stack : Stack의 자료구조 형태로서 최초에 발생한 예외시점을 최하위단부터 저장한다. Call Stack에서 최상위에 있는 예외에서 catch로 인하여 처리가 되면 끝나겠..

Java/Theory 2016.05.31

[Java/Theory]17. AutoBoxing, Unboxing

17. AutoBoxing, Unboxing(JDK 1.5) Wraping의 번거로움을 해결한 과정. 일일이 Implicit, Explicit Casting하였지만 직접 대입해도 무관 Ex 1 : 12345int intValue = 1;ArrayList arrayList = new ArrayList(); arrayList.add(intValue); //==>autoboxingint i = arrayList.get(0); //==>autounboxingcs Ex 2 : 123456789101112131415161718public void add15(int intValue,double doubleValue,boolean boo){ //==> Autoboxing 기능 이해 :: Method add14() 비교..

Java/Theory 2016.05.31

[Java/Theory]16. Data Structure

16. Data Structure * Vector 배열에 있는 단점을 보완한 자료구조중 하나. (배열의 단점 : 관리해야 하는 Datatype은 하나뿐이다. 크기를 수정하거나 중간에 추가할 Data가 있으면 Instance를 삭제, 생성해야 되는 불편함) List라는 Interface를 구현하고 있다. => Vector는 List 자료구조중 하나이다. List에 있는 모든 Method들이 Vector에 Override되어 있다. Ex 1 : capacity() : 허용된 크기 size() : 현재 들어있는 크기 : Generic이라 부른다. 특정 DataTypea만으로 List를 관리하도록 하는 Keyword. add()에 들어갈 Argument는 Object다. 그러므로 Wrap되어 있는 Primiti..

Java/Theory 2016.05.31

[Java/Theory]15. StringBuffer, Calander, WrapperClass

15. StringBuffer, Calander, WrapperClass - StringBuffer String으로 생성된 Instance는 그 안에 있는 상태가 Immutable한 특징이 있다. 때문에 Append나 Method를 통해 상태값이 바뀐다면 매번 Instance를 생성, 삭제해야된다. 이러한 반복적인 경우를 줄이기 위한 것이 StringBuffer라는 Class다. 이 Class의 default constructor는 char의 배열이 16개로 선언된다. 이에 따라 문자를 추가, 삭제하는 Method를 통해 배열이 줄어들고 늘어나는 성질이 있어 Mutable한 특징이 있다. Precondition, Postcondition을 보고 이 둘을 활용하도록 한다. - Calander 선언부에 ab..

Java/Theory 2016.05.31

[Java/Theory]14. Object

14. Object 자바에 있는 모든 class의 Super class다. Java API에 있는 문서에 따르면 이 Class는 Heirachy가 없다. 사용자가 만든 class에도 Object가 extends 되어있고 생성자의 super method는 Object에 있는 생성자를 호출한다. Object에서 주로 사용 되는 Method는 toString, equals가 있다. Object는 String과 같은 타 Class에서 이 method들을 overriding하여 응용된다. 확장하지 않는 클래스는 묵시적으로 오브젝트가 확장되어 있다. =>toString() : 해당 클래스의 상태값을 스트링으로 반환. 이 메소드를 오버라이딩 하여 활용 가능. 스트링 변수에 값을 집어넣고 출력시 이 메소드를 참조하지 ..

Java/Theory 2016.05.31

[Java/Theory]13. null, Garbage collection

13. null, Garbage collection Reference type의 변수가 참조 되지 않은 값. 이 값을 출력하면 Object에 있는 쓰레기 값이 출력된다. 생성된 Instance에 의해 참조된 변수가 다른 Instance를 참조 하면 처음 만들어진 Instance의 참조 횟수는 하나 줄어든다. 이 참조 횟수가 0이 되면 그 Instance는 garbage가 된다. JVM 혹은 JRE는 이 garbage를 처리하는 garbage collecter가 있다. garbage를 한번에 모아 처리한다는 것을 garbage collecting, 이를 총괄하여 garbage collection이라고 한다. JRE 1.1에서는 이렇게 까지만 명시하였으나 버전이 높아지면서 메모리 관리에 효율을 증대시키고 있었다

Java/Theory 2016.05.31

[Java/Theory]12. Access Modifier

12. Access Modifier public : 자신 / 동일 Package / 상속 관계 / 그 외 영역 접근 가능 peotected : 자신 / 동일 Package / 상속 관계 / 접근 가능 default : 자신 / 동일 Package / / 접근 가능 private : 자신 / / / 접근 가능 => public, private만 주로 사용됨 * Field를 private로 정보 은닉하여 Getter, Setter를 사용한 것 처럼, class자체의 정보 은닉을 위해 class의 생성자를 private로 선언한다면 외부 class (타 class)에서 Instance 생성이 불가능하게 둘 수 있다. getInstatnce()라는 Method로 Getter를 생성하여 정보 은닉을 활용 할 수 ..

Java/Theory 2016.05.30

[Java/Theory]10. API

10. API 자바 개발자들이 유용하게 코딩하도록 Bean들을 모아둔 집합체. 자바 시스템을 제어하기 위해서 자바에서 제공하는 명령어들을 의미한다. Java SE(JDK)를 설치하면 자바 시스템을 제어하기 위한 API를 제공한다. 자바 개발자들은 자바에서 제공한 API를 이용해서 자바 애플리케이션을 만들게 된다. 패키지 java.lang.*의 클래스들도 자바에서 제공하는 API 중의 하나라고 할 수 있다. API의 내용이 설명된 Source Code에는 /** */로 주석이 설명되어 있다 https://docs.oracle.com/javase/7/docs/api/

Java/Theory 2016.05.30